js基礎(chǔ)

一個(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:鐘表


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市刹前,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌喇喉,老刑警劉巖校坑,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異撒踪,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)制妄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來衔掸,“玉大人,你說我怎么就攤上這事敞映×赘” “怎么了振愿?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵弛饭,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我侣颂,道長(zhǎng),這世上最難降的妖魔是什么藻肄? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮嘹屯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘抚垄。我一直安慰自己,他們只是感情好呆馁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著阴挣,像睡著了一般。 火紅的嫁衣襯著肌膚如雪畔咧。 梳的紋絲不亂的頭發(fā)上揖膜,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天誓沸,我揣著相機(jī)與錄音壹粟,去河邊找鬼。 笑死趁仙,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的雀费。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼忿峻,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼辕羽!你這毒婦竟也來了逛尚?” 一聲冷哼從身側(cè)響起逛漫,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤赘艳,失蹤者是張志新(化名)和其女友劉穎克握,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體菩暗,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡旭蠕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了掏熬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡舌胶,死狀恐怖疮丛,靈堂內(nèi)的尸體忽然破棺而出幔嫂,到底是詐尸還是另有隱情誊薄,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布呢蔫,位于F島的核電站,受9級(jí)特大地震影響咐刨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜定鸟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望啼县。 院中可真熱鬧,春花似錦季眷、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽挺峡。三九已至,卻和暖如春橱赠,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背狭姨。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留赡模,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓纺裁,卻偏偏與公主長(zhǎng)得像司澎,于是被迫代替她去往敵國(guó)和親欺缘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子挤安,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容