一個(gè)html頁面由那幾部分組成的骄噪?
html(超文本標(biāo)記語言)踩麦、css(層疊樣式表)瞻佛、js(動(dòng)態(tài)腳本語言)(操作頁面上所有元素畏腕,讓元素具有動(dòng)態(tài)的效果)
前端工程師工作的內(nèi)容:
拿到UI設(shè)計(jì)圖:切圖---->html+css靜態(tài)布局----->用js寫一些動(dòng)態(tài)效果----->ajax和后臺(tái)進(jìn)行交互岗照,把數(shù)據(jù)綁定到頁面上---->用nodejs服務(wù)平臺(tái)做源代碼的管理---->用nodejs做后臺(tái)
用到的開發(fā)工具有:
Dw虏缸、sublime良姆、webstrom、hbuild遭居、eclipse......
將css引入到頁面中的幾種方式啼器?
1、行內(nèi)樣式 style=””
2俱萍、內(nèi)嵌式(將css樣式寫在style標(biāo)簽塊中端壳,放到head里面)
3、外鏈?zhǔn)? <link>
4枪蘑、導(dǎo)入式 @import “index.css”(不常用)
將js引入到頁面中的幾種方式损谦?
1、行內(nèi)引入(不推薦)onclick=”alert(‘xxx’)”
2岳颇、內(nèi)嵌式 <script> </script> 將js代碼寫在script腳本塊中間
3照捡、外鏈?zhǔn)?將js代碼寫在外面的文件中,通過src引入
(在外鏈?zhǔn)街谢安啵瑂cript腳本塊中間不可以寫js代碼栗精,寫了也不執(zhí)行)
為什么先加載css,后加載js?
1悲立、如果在網(wǎng)速慢的情況下鹿寨,不先加載css,會(huì)先出現(xiàn)html結(jié)構(gòu)然后出現(xiàn)css薪夕,會(huì)有短暫的亂碼狀態(tài)
2脚草、js通常是獲取html標(biāo)簽給予動(dòng)態(tài)操作效果的
Js中常用的四種輸出方式?
alert() 瀏覽器的彈框
document.write() 頁面中輸出內(nèi)容
console.log() 控制臺(tái)輸出
innerHTML/innerText:向指定元素中添加內(nèi)容
Js層級(jí)關(guān)系寥殖?
瀏覽器---->文檔--->html----->head/body--->....
瀏覽器-----在js中叫做window玩讳,我們把window稱為瀏覽器對(duì)象
文檔------在js中叫做document,我們把document稱為文檔對(duì)象
Html嚼贡、head、body叫做元素對(duì)象
js主要有哪幾大部分同诫?
Js:javascript是一門輕量級(jí)的腳本語言粤策,主要分為三大模塊:
1、ECMAScript:定義了js里面的命名規(guī)范误窖、變量叮盘、數(shù)據(jù)類型、基本語法霹俺、操作語句等最核心的東西
2柔吼、DOM document object model 文檔對(duì)象模型
3、BOM browser object model 瀏覽器對(duì)象模型
Js有哪些命名規(guī)范丙唧?
1愈魏、js嚴(yán)格區(qū)分大小寫
2、使用駝峰命名法
1>首字母小寫想际,其余每個(gè)有意義的單詞首字母大寫
2?可以使用數(shù)字培漏、字母、下劃線胡本、$(數(shù)字不能作為首位
3牌柄、不能使用關(guān)鍵字和保留字
Js中的變量和數(shù)據(jù)類型?
Js中的變量是一個(gè)抽象的概念侧甫,變量是用來存儲(chǔ)值和代表值珊佣。
在js中定義一個(gè)變量非常簡(jiǎn)單:
var name=’張三’; 定義一個(gè)變量name,把字符串張三賦給這個(gè)變量 披粟。
Js中的變量是松散類型的:通過var變量名就可以存儲(chǔ)任何數(shù)據(jù)類型咒锻。
比如:
var num=12;
var name=”張三”
var boo=true
var n=null
var m=undefined
var obj={} //對(duì)象數(shù)據(jù)類型
var ary=[1,2,3] //數(shù)組 也是對(duì)象數(shù)據(jù)類型
var reg=/^\d$/ //正則 也是對(duì)象數(shù)據(jù)類型
var fn=function(){} //函數(shù)數(shù)據(jù)類型
js中的數(shù)據(jù)類型分類:
1、基本數(shù)據(jù)類型:
數(shù)字(number)僻爽、字符串(string)虫碉、布爾(boolean)、null胸梆、undefined/2敦捧、须板、引用數(shù)據(jù)類型:
2、對(duì)象數(shù)據(jù)類型(object)
函數(shù)數(shù)據(jù)類型(function)
數(shù)據(jù)類型詳細(xì)解讀:
number數(shù)據(jù)類型中的NaN兢卵、isNaN习瑰、Number、parseInt/parseFloat
boolean數(shù)據(jù)類型中的!和!!的作用
object數(shù)據(jù)類型是由屬性名和屬性值組成的
Js中常用的內(nèi)置類:Object秽荤、Array甜奄、Date、ReExp窃款、String
number數(shù)據(jù)類型:整數(shù)课兄、負(fù)數(shù)、0晨继、小數(shù)烟阐、NaN (NaN != NaN )
isNaN():檢測(cè)一個(gè)值是否為有效數(shù)字,是有效數(shù)字返回false
思考:isNaN('123')紊扬;
Number():強(qiáng)制將其他的數(shù)據(jù)類型轉(zhuǎn)換為number類型蜒茄,要求如果是字符串,字符串中一定都需要是數(shù)字才可以轉(zhuǎn)換
非強(qiáng)制數(shù)據(jù)類型轉(zhuǎn)換
parseInt() 從左到右餐屎,一個(gè)個(gè)字符查找檀葛,把是數(shù)字的轉(zhuǎn)換為有效數(shù)字,中途如果遇到了一個(gè)非有效數(shù)字腹缩,就不繼續(xù)查找了
parseFloat()和上面一樣屿聋,可以多識(shí)別一個(gè)小數(shù)點(diǎn)
boolean數(shù)據(jù)類型:true false
! 一個(gè)嘆號(hào)是取反,首先將值轉(zhuǎn)換為布爾類型的庆聘,然后再取反
!! 兩個(gè)嘆號(hào):相當(dāng)于轉(zhuǎn)換為布爾類型
數(shù)據(jù)類型轉(zhuǎn)換的規(guī)則:
1胜臊、如果只有一個(gè)值,判斷這個(gè)值是真假伙判,遵循:只有0 NaN “” null undefined,返回的是false象对,其余的是true
2、如果兩個(gè)值比較是否相等宴抚,遵循這個(gè)原則:val1==val2 兩個(gè)值可能不是同一類型的勒魔,如果是==比較的話,會(huì)進(jìn)行默認(rèn)類型轉(zhuǎn)換
1>對(duì)象==對(duì)象 永遠(yuǎn)不相等
2>對(duì)象==字符串 先將對(duì)象轉(zhuǎn)換為字符串(調(diào)用toString()方法)菇曲,然后在進(jìn)行比較冠绢。
注意:[] 轉(zhuǎn)換為字符串是”” {}轉(zhuǎn)換成字符串"[object Object]"
3>對(duì)象==布爾類型 對(duì)象先轉(zhuǎn)換為字符串(toString()),然后把字符串再轉(zhuǎn)換為數(shù)字(Number())類型,布爾類型也轉(zhuǎn)換為數(shù)字(true是1 false是0),最后讓兩個(gè)數(shù)字比較常潮。
注意:Number("")空字符串轉(zhuǎn)換成Number類型---->0
思考: []==0 []==false [""]==false ?
4>對(duì)象==數(shù)字 對(duì)象先轉(zhuǎn)換為字符串(toString()),然后把字符串轉(zhuǎn)換為數(shù)字(Number)
5>數(shù)字==布爾 布爾類型轉(zhuǎn)換為數(shù)字 思考:2==true
6>數(shù)字==字符串 字符串轉(zhuǎn)換為數(shù)字
7>字符串==布爾 都換為數(shù)字
8>null==undefined 結(jié)果是true
9> null或者undefined和其他數(shù)據(jù)類型比較都不相等
3弟胀、除了==是比較,===也是比較(判斷是否絕對(duì)相等),如果數(shù)據(jù)類型不一樣
例如:var1===val2 如果數(shù)據(jù)類型不一樣孵户,肯定不相等 思考:0==false 0===false
數(shù)據(jù)類型-object對(duì)象數(shù)據(jù)類型
特點(diǎn):由多組鍵值對(duì)組成萧朝,由多組[屬性名和屬性值]組成
屬性名和屬性值是用來描述這個(gè)對(duì)象特征的比如:var obj={name:’張三’,age:18}
創(chuàng)建對(duì)象有2種方式:
1、字面量創(chuàng)建方式 var obj={}
2夏哭、實(shí)例創(chuàng)建方式 var obj=new Object();
1>給對(duì)象添加屬性名和屬性值 obj.name=’張三’ 或者 obj[“name”]=’張三’
2>修改對(duì)象的屬性名和屬性值 obj[“name”]=’李四’
3>獲取屬性名和屬性值 console.log(obj[“name”]) 或者 console.log(obj.name) 如果屬性民不存在默認(rèn)返回undefined
4>刪除屬性名和屬性值 obj.name=null//假刪除 delete obj.name//真刪除
對(duì)象數(shù)據(jù)類型中的object對(duì)象數(shù)據(jù)類型检柬,還可以細(xì)分:對(duì)象類(Object)、數(shù)組類(Array)竖配、正則類(RegExp)何址、時(shí)間類(Date)、Math數(shù)學(xué)函數(shù)等等對(duì)應(yīng)的實(shí)例對(duì)象进胯、數(shù)組用爪、正則、時(shí)間等等
Js對(duì)象胁镐、類项钮、實(shí)例的區(qū)別:對(duì)象是泛指,js中萬物皆對(duì)象希停,類是對(duì)象的組成部分,實(shí)例是類中的一個(gè)具體的事物
基本數(shù)據(jù)類型和引用數(shù)據(jù)類型的區(qū)別
思考:
var num1=12;
var num2=num1;
num2++;
console.log(num1);
var obj1={name:’張三’};
var obj2=obj1;
obj2.name=’李四’
console.log(obj1.name)
發(fā)現(xiàn):基本數(shù)據(jù)類型沒有跟著改變署隘,引用數(shù)據(jù)類型跟著改變了宠能。
結(jié)論:基本數(shù)據(jù)類型和引用數(shù)據(jù)類型的本質(zhì)區(qū)別:基本數(shù)據(jù)類型操作的是值,而引用數(shù)據(jù)類型操作的是內(nèi)存地址
typeof檢測(cè)數(shù)據(jù)類型
typeof
返回值是字符串磁餐,包含了數(shù)據(jù)類型字符 “number”违崇、 “string” 、“boolean” 诊霹、“undefined” “object” 羞延、“function”
typeof的局限性:不能檢查object下細(xì)分的類型,檢查返回的都是“object”
思考:console.log(typeof (typeof (typeof [])) )
js中的三個(gè)判斷
If else脾还、三元運(yùn)算符伴箩、switch case
1>If else if else 最常用的判斷,能都解決所有的判斷需求
2>三元運(yùn)算符:應(yīng)用于簡(jiǎn)單的if else情況
3>switch case:應(yīng)用于不同情況下的不同操作
作業(yè):背景切換
Js中的三個(gè)循環(huán)
For循環(huán)
For in循環(huán)
While循環(huán)
for循環(huán)四部曲:
1鄙漏、設(shè)置初始值 var i=0
2嗤谚、設(shè)置循環(huán)執(zhí)行條件 i<5
3牺勾、執(zhí)行循環(huán)體中的內(nèi)容 {包起來的部分}
4泌辫、每一輪循環(huán)完成后都執(zhí)行我們的i++累加操作
break、continue
相同點(diǎn):
在循環(huán)體中愉阎,只要遇到這2個(gè)關(guān)鍵字桦踊,循環(huán)體中break椅野、continue后面代碼就不執(zhí)行了
不同點(diǎn):
break:在循環(huán)體中,出現(xiàn)break竟闪,整個(gè)循環(huán)就直接的結(jié)束了,i++最后的累加操作也不執(zhí)行
continue:在循環(huán)體中,出現(xiàn)continue瘫怜,當(dāng)前的這一輪循環(huán)結(jié)束,繼續(xù)進(jìn)行下一輪的循環(huán),
I++繼續(xù)執(zhí)行
思考:
for(var i=0;i<10;i++){
if(i<=5){
i+=2;
continue;
}
i+=3;
break;
console.log(i);
}
console.log(i);
for in 循環(huán):用來循環(huán)一個(gè)對(duì)象中的屬性名和屬性值
對(duì)象中有多少鍵值對(duì)我們就循環(huán)多少次
順序問題:首先循環(huán)數(shù)字的屬性名(按照從小到大)鲸湃,在把剩下的屬性名按照我們寫的順序循環(huán)
for(var key in value){
console.log(key)//每一次循環(huán)獲取的屬性名
console.log(value[key])//獲取屬性值
}
作業(yè):隔行變色
選項(xiàng)卡切換
隔行變色的99乘法表
數(shù)據(jù)類型中的函數(shù)數(shù)據(jù)類型
1赠涮、function 函數(shù)---->具備某個(gè)功能的一個(gè)方法,方法本身沒有什么意義的暗挑,只有執(zhí)行這個(gè)方法實(shí)現(xiàn)了對(duì)應(yīng)功能才有自己的價(jià)值
2、函數(shù)由兩部分組成:創(chuàng)建一個(gè)函數(shù)炸裆、執(zhí)行這個(gè)函數(shù)
3、創(chuàng)建一個(gè)函數(shù)可以執(zhí)行多次烹看,一般情況下国拇,每次執(zhí)行函數(shù)和上一次執(zhí)行沒有任何的關(guān)系
舉例:
function sum(){
var total=null;
total=1+1;
console.log(total);
}
sum;//sum后面不加(),代表的就是當(dāng)前函數(shù)本身 sum
sum();//sum后面加(),代表的是執(zhí)行當(dāng)前函數(shù)
函數(shù)執(zhí)行的目的:把函數(shù)之前存儲(chǔ)的那些字符串編程js代碼惯殊,讓后讓js代碼從上到下依次執(zhí)行
當(dāng)瀏覽器加載頁面的時(shí)候首先會(huì)提供一個(gè)供js代碼執(zhí)行的環(huán)境--->全局作用域
創(chuàng)建一個(gè)函數(shù) 3個(gè)步驟
1>開辟新的內(nèi)存空間酱吝,瀏覽器為其分配一個(gè)16進(jìn)制的地址,我們假設(shè)地址是xxxfff000
2>把函數(shù)體中的js代碼當(dāng)做字符串存儲(chǔ)到內(nèi)存當(dāng)中,創(chuàng)建的時(shí)候都是一堆字符串务热,函數(shù)本身沒有任何意義
3>在把這個(gè)地址賦值給當(dāng)前的函數(shù)名sum->sum
函數(shù)執(zhí)行 2個(gè)步驟
1>當(dāng)函數(shù)執(zhí)行的時(shí)候己儒,首先會(huì)提供一個(gè)函數(shù)體中代碼執(zhí)行的環(huán)境--->私有作用域
2>把函數(shù)體中的代碼字符串變?yōu)閖s代碼從上到下執(zhí)行
函數(shù)執(zhí)行的時(shí)候崎岂,首先會(huì)形成一個(gè)新的私有作用域闪湾,供函數(shù)體中的代碼從上往下執(zhí)行,形成的那個(gè)私有的作用域响谓,保護(hù)了里面的私有變量的成員不受外界的干擾(外界也獲取不到也修改不了)-->我們把函數(shù)執(zhí)行的時(shí)候形成的這種保護(hù)機(jī)制叫做‘閉包’;
形參
案例:隨便傳入兩個(gè)數(shù),求和
注意:如果是兩個(gè)形參(入口)娘纷,調(diào)用的時(shí)候只傳入一個(gè)實(shí)參,另一個(gè)默認(rèn)的形參值是undefined赖晶。
返回值
return:當(dāng)前函數(shù)提供的出口辐烂,因?yàn)椴惶峁┏隹谖婊撸]包機(jī)制導(dǎo)致了函數(shù)外面無法獲取函數(shù)里面的這個(gè)值,如果想在外面用這個(gè)值的話厂僧,需要用return 把這個(gè)值返回出來——>返回值機(jī)制(外面想用哪個(gè),就把哪個(gè)值返回)
函數(shù)中如果沒有return默認(rèn)返回的是undefined
return;--->返回undefined
在函數(shù)體中return后面代碼都不會(huì)執(zhí)行了
arguments
案例:任意數(shù)求和:隨便給我?guī)讉€(gè)數(shù)(具體幾個(gè)不知道颜屠,就沒有辦法定義形參的個(gè)數(shù)了),求出和甫窟。
arguments:不管寫不寫形參,也不管是否傳遞值粗井,arguments始終是存在的,用來接收函數(shù)傳來進(jìn)來參數(shù)的的一個(gè)集合
匿名函數(shù):
1>自執(zhí)行函數(shù):定義函數(shù)和執(zhí)行函數(shù)一起執(zhí)行了 (+ - ! ~) ()()
2>函數(shù)表達(dá)式 odiv.onclick= function () {}
數(shù)組
數(shù)組也是對(duì)象懒构,我們看到的是它的屬性值耘擂,屬性名是索引痴脾。
length:數(shù)組的長(zhǎng)度。 通過.或者[]來訪問 數(shù)組中有一個(gè)叫做length的屬性梳星,這個(gè)屬性是瀏覽器天生就給數(shù)組添加的(不是我們自己編寫的屬性)
案例:for循環(huán)數(shù)組 for in循環(huán)
數(shù)組中的常用15個(gè)方法
1.方法的作用
2.需要傳遞那些參數(shù)
3.是否有返回值滚朵,返回值的什么
4.通過此方法是否對(duì)原來的數(shù)組產(chǎn)生了什么影響
關(guān)于數(shù)組的增加、修改辕近、刪除
添加數(shù)組末尾一項(xiàng): arr.push() 或 arr[x] 或 arr[arr.length] 或splice()
刪除數(shù)組最后一項(xiàng):arr.pop() 或 arr.length--
刪除數(shù)組中的首項(xiàng):arr.shift()
向數(shù)組開頭增加一項(xiàng):arr.unshift()
增、刪归粉、改 arr.splice(n,m) 從索引n開始,刪除m個(gè)元素糠悼,把刪除的內(nèi)容以一個(gè)新的數(shù)組返回浅乔,原來的數(shù)組改變
刪除
arr.splice(n) 從索引n開始倔喂,刪除到數(shù)組末尾
arr.splice(0); 清空數(shù)組,把之前的數(shù)組克隆了一份一模一樣的
arr.splice();一個(gè)參數(shù)也沒有班缰,返回的是一個(gè)空數(shù)組
修改
arr.splice(n,m,x)從索引n開始,刪除m個(gè)元素埠忘,用x替換刪除的部分
增加
arr.splice(n,0,x)從索引n開始馒索,一個(gè)都不刪(返回的是一個(gè)空數(shù)組)莹妒,把x增加到索引n的前面双揪,原來的數(shù)組改變
思考:用splice的方法完成添加數(shù)組末尾一項(xiàng),刪除一項(xiàng)
如果直接是arr[n]=m; 如果n是前面不連續(xù)渔期,數(shù)組中會(huì)出現(xiàn)undefined
關(guān)于數(shù)組的截取和拼接
arr.slice(n,m) 從索引n開始,一直到索引m(不含m)拘哨,將找到的部分?jǐn)?shù)組返回信峻,原來的數(shù)組不變
arr.slice(n) 從索引n開始周一直找到數(shù)組末尾
arr.slice(0) 把原來的參數(shù)克隆一模一樣的
arr.concat(arr1):把兩個(gè)數(shù)組拼接到一起倦青,原來的數(shù)組不變
arr.concat()把a(bǔ)rr克隆一份一模一樣的數(shù)組
把數(shù)組轉(zhuǎn)換為字符串
arr.toString()把數(shù)組轉(zhuǎn)換為字符串盹舞,原來的數(shù)組不變
arr.join('+') 把數(shù)組按照指定的分隔符拼接成字符串,原來的數(shù)組不變
eval() js中把字符串變成js表達(dá)式執(zhí)行的一個(gè)方法
思考:給數(shù)組中的每一項(xiàng)進(jìn)行相加求和
排序和排列
arr.reverse()把數(shù)組倒過來排序踢步,原來的數(shù)組改變
arr.sort()按照數(shù)組的第一位從小到大排序(只能處理10以內(nèi)的數(shù)組進(jìn)行排序)
由小到大
arr.sort(function (a,b) {
return a-b;
});
由大到小
arr.sort(function (a,b) {
return b-a;
})
只有在標(biāo)準(zhǔn)瀏覽器中兼容的方法,在ie6~8下不兼容
indexOf()述雾、lastIndexOf() (字符串中也有這兩個(gè)方法,字符串中的這兩個(gè)方法兼容所有的瀏覽器兼丰,而數(shù)組的這兩個(gè)方法是不兼容的)
indexOf()玻孟、lastIndexOf() 當(dāng)前內(nèi)容在數(shù)組中第一次/最后一次出現(xiàn)位置的索引鳍征,如果數(shù)組中沒有這一項(xiàng),返回的結(jié)果是-1艳丛,如果有這一項(xiàng)斗忌,索引是幾就返回幾旺聚,原來的數(shù)組不變
forEach和map
forEach:數(shù)組中有幾項(xiàng),我們的函數(shù)就執(zhí)行幾次砰粹,原來的數(shù)組不變
map和forEach的語法是一樣的,但是比forEach多加了一個(gè)把原來內(nèi)容進(jìn)行替換的功能,原來的數(shù)組不變碱璃,返回的新數(shù)組會(huì)變化
遞歸:當(dāng)前函數(shù)自己調(diào)用自己執(zhí)行 (了解)
思考:實(shí)現(xiàn)1-100之間求和(用遞歸的方法實(shí)現(xiàn))
DOM
DOM:document object model 文檔對(duì)象模型
在DOM中提供了很多獲取元素的方法和之間的關(guān)系屬性以及操作這些元素的方法
DOM模型就是描述整個(gè)html頁面中節(jié)點(diǎn)關(guān)系的圖譜
document.getElementById('tab');
document.getElementsByTagName('div')
document.getElementsByName('a') //通過name來獲取一組元素 //在ie下只對(duì)表單元素起作用
document.getElementsByClassName('tab')//獲取多個(gè)這幾個(gè)方法,即使你獲取的一個(gè)肛真,它也是一個(gè)集合
document.documentElement//獲取html元素
document.body//獲取body元素
獲取頁面的寬度 兼容所有瀏覽器的獲取當(dāng)前屏幕的寬度
var curWidth=document.documentElement.clientWidth||document.body.clientWidth;
在移動(dòng)端獲取元素的常用方法(因?yàn)閕e6~8下不兼容)
document.querySelector();//獲取一個(gè)
document.querySelectorAll();//獲取多個(gè)
練習(xí):全選反選
獲取關(guān)系的屬性
odiv.childNodes 獲取元素所有子節(jié)點(diǎn)
odiv.children 獲取元素所有子元素
odiv.parentNode 獲取元素父親節(jié)點(diǎn)
odiv.previousSibling 獲取上一個(gè)哥哥節(jié)點(diǎn)
odiv.previousElementSibling獲取上一個(gè)哥哥元素
odiv.nextSibling 獲取下一個(gè)弟弟節(jié)點(diǎn)
odiv.nextElementSibling 獲取下一個(gè)弟弟元素
odiv.firstChild獲取所有子節(jié)點(diǎn)中的第一個(gè)節(jié)點(diǎn)
odiv.lastChild獲取所有子節(jié)點(diǎn)中的最后一個(gè)節(jié)點(diǎn)
節(jié)點(diǎn):元素 標(biāo)簽 文字 注釋……都是節(jié)點(diǎn)
在js中我們需要掌握的節(jié)點(diǎn)類型
nodeType nodeName nodeValue
Js中的節(jié)點(diǎn)類型:
元素節(jié)點(diǎn)(元素標(biāo)簽) 1 大寫的標(biāo)簽名 null
文本節(jié)點(diǎn)(文字) 3 #text 文字內(nèi)容
注釋節(jié)點(diǎn)(注釋) 8 #comment 注釋內(nèi)容
document 9 #document null
動(dòng)態(tài)創(chuàng)建一個(gè)元素對(duì)象
對(duì)節(jié)點(diǎn)的操作
添加
父級(jí).appendChild(要添加的元素) 追加子元素
父級(jí).insertBefore(添加誰,被插入到誰之前) 在指定元素前面添加一個(gè)新的元素
刪除
父級(jí).removeChild 刪除子節(jié)點(diǎn)
克隆
Obj.cloneNode()//克隆元素 true把元素里面的所有元素都克隆爽航,默認(rèn)是false,只克隆當(dāng)前的
替換
父級(jí).replaceChild(新節(jié)點(diǎn)讥珍,被替換的節(jié)點(diǎn))
增加元素的屬性名和屬性值
1>Obj.setAttribute(屬性名,屬性值) 更改頁面的結(jié)構(gòu) ,移除用removeAttribute
getAttribute獲取
2>通過.的形式設(shè)置 不改結(jié)構(gòu)
練習(xí):動(dòng)態(tài)創(chuàng)建遮罩層
Math方法和應(yīng)用
Math.abs();
Math.ceil();
Math.floor();
Math.round();
Math.max();
Math.min();
Math.random(); //范圍是 >=0 <1
Math.round();
思考:隨機(jī)取出0 或1
隨機(jī)取出0-10之間的整數(shù)
隨機(jī)取出10-20之間的整數(shù)
隨機(jī)取出20-30之間的整數(shù)
隨機(jī)取出n-m之間的整數(shù)
結(jié)論:Math.round(Math.random()*(m-n)+n);
作業(yè):點(diǎn)擊隨機(jī)出現(xiàn)驗(yàn)證碼
字符串常用的方法及應(yīng)用(String類介紹 )
一個(gè)字符串是由多個(gè)字符組成的
str.length 獲取字符串中字符的個(gè)數(shù)
字符串中存在索引趟卸,也是從0開始的
空格氏义、換行這些特殊符號(hào)也是一個(gè)字符
str.charAt(n); 獲取指定索引位置的字符
str.charCodeAt(n);獲取指定位置的字符對(duì)應(yīng)的ASII值
ASII值:每一個(gè)字母、漢字惯悠、特殊符號(hào)都有一個(gè)對(duì)應(yīng)的碼值(Unicode)
字符串的截取
var str='wo sohi zhaonwg xiao huoan';
str.substr(n,m)從索引n截取m個(gè)字符
str.substring(0,5);//從索引n開始,找到索引m處(不包含m)吮螺,將找到的字符返回
str.slice(n,m);//從索引n開始帕翻,找到索引m處(不包含m),將找到的字符返回 slice支持負(fù)值索引
查找字符的索引
str.indexOf(字符)//獲取指定字符在字符串中第一次出現(xiàn)的索引的位置
str.lastIndexOf(字符)//獲取指定字符在字符串中最后一次出現(xiàn)的索引位置
如果沒有這個(gè)字符嘀掸,返回的是-1,基于這個(gè)理念睬塌,我們經(jīng)常用這兩個(gè)方法來判斷字符串中是否包含某個(gè)字符
大小寫轉(zhuǎn)換
str.toLowerCase();
str.toUpperCase()
替換
str.replace(要替換的老字符歇万,替換成的新字符);
在不使用正則的情況下勋陪,調(diào)用一次方法,只能替換一次
一般情況下诅愚,都是作用正則來替換的
字符串轉(zhuǎn)換為數(shù)組
將字符串按照指定的分隔符拆分成數(shù)組
string.split('+');根據(jù)+來拆分成數(shù)組
string.split('');將每一個(gè)字符拆分成數(shù)組
作業(yè):
var time="2017-2-9 11:59:3";
2017年02月09日 11點(diǎn)59分03秒
Date日期
練習(xí)1:獲取當(dāng)前時(shí)間
練習(xí)2:倒計(jì)時(shí)
練習(xí)3:鐘表
js基礎(chǔ)
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來衔掸,“玉大人,你說我怎么就攤上這事敞映×赘” “怎么了振愿?”我有些...
- 文/不壞的土叔 我叫張陵弛饭,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我侣颂,道長(zhǎng),這世上最難降的妖魔是什么藻肄? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮嘹屯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘抚垄。我一直安慰自己,他們只是感情好呆馁,可當(dāng)我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著阴挣,像睡著了一般。 火紅的嫁衣襯著肌膚如雪畔咧。 梳的紋絲不亂的頭發(fā)上揖膜,一...
- 文/蒼蘭香墨 我猛地睜開眼忿峻,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼辕羽!你這毒婦竟也來了逛尚?” 一聲冷哼從身側(cè)響起逛漫,我...
- 序言:老撾萬榮一對(duì)情侶失蹤赘艳,失蹤者是張志新(化名)和其女友劉穎克握,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體菩暗,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡旭蠕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了掏熬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
- 正文 年R本政府宣布呢蔫,位于F島的核電站,受9級(jí)特大地震影響咐刨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜定鸟,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望啼县。 院中可真熱鬧,春花似錦季眷、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽挺峡。三九已至,卻和暖如春橱赠,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背狭姨。 一陣腳步聲響...
- 正文 我出身青樓纺裁,卻偏偏與公主長(zhǎng)得像司澎,于是被迫代替她去往敵國(guó)和親欺缘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子挤安,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- JavaScript基礎(chǔ)知識(shí)復(fù)習(xí) JavaScript包含:ECMAScript:規(guī)定js的語法規(guī)范;DOM:Do...
- 1.判斷數(shù)字:用!isNaN(需要判斷的值)返回一個(gè)布爾值if(!NaN('33')){//alet('是數(shù)字')...
- 1.CSS和JS在網(wǎng)頁中的放置順序是怎樣的?為什么會(huì)出現(xiàn)白屏和FOUC穆刻? 在寫HTML代碼時(shí)置尔,我們都是將CSS文件...
- 1.函數(shù)聲明和函數(shù)表達(dá)式有什么區(qū)別 朵锣? 1.函數(shù)聲明必須有標(biāo)識(shí)符,也就是常說的函數(shù)名诚些;函數(shù)表達(dá)式可以省略函數(shù)名。2...
- 參 照:http://www.reibang.com/p/554454d951d9http://blog.csdn...