千鋒web前端開發(fā)項(xiàng)目教程_1000集完全零基礎(chǔ)入門HTML5+CSS3+JS到

1.正則相關(guān)函數(shù)
// 正則對(duì)象的相關(guān)方法 # test # 功能:判斷目標(biāo)字符串是否滿足正則對(duì)象 # 參數(shù):test(目標(biāo)字符串) # 返回值:布爾值 // var str = "bbbbc"; // console.log(reg.test(str)); # exec # 功能:返回值目標(biāo)字符串滿足正則對(duì)象的子串 # 參數(shù):exec(目標(biāo)字符串) # 返回值:滿足條件的子串,存儲(chǔ)的數(shù)據(jù)放在長度為一的數(shù)組中 # 修飾符:g # glabal全局,會(huì)記錄每次運(yùn)行的位置,下一次作為起始位置 // var reg = /\d+/g; // var str = "a111b2222c333d4444"; // console.log(reg.exec(str)[0]); //111 // console.log(reg.exec(str)[0]); //2222 // console.log(reg.exec(str)[0]); //333 # search方法 返回與正則表達(dá)式查找內(nèi)容匹配的第一個(gè)子字符串的位置 # 用法:str.search(reg) # 修飾符:i # 忽略大小寫 // var str = "Hello Cai Xu Kun"; // var reg = /cai/i; // console.log(str.search(reg)); # replace 批量替換內(nèi)容 // var str = "wangtongjian de ge bi shi wangtongjian"; // str = str.replace(/wangtongjian/g,"caixukun"); // console.log(str); # match:返回滿足正則對(duì)象的子串(exec的強(qiáng)化版) // var reg = /\d+/g; // var str = "a111b2222c333d4444"; // console.log(str.match(reg));
2.let
let標(biāo)識(shí)符;功能和var一樣,都是用來定義變量的關(guān)鍵字 var具備變量聲明提升 # 1.必須先定義后使用 // console.log(a); // let a = 123; # 2.不能定義重復(fù)變量 // var a = 123; // var a = 456; // let a = 123; // let a = 456; # 3.塊級(jí)作用域:在塊級(jí)作用域下->該變量不被丟失,也不能被外界使用 // let oLis = document.getElementsByTagName("li"); // for(let i=0; i<oLis.length; i++){ //??oLis[i].onclick = function(){ //????console.log(i); //??} // } # 4.暫時(shí)性死區(qū):當(dāng)內(nèi)部變量與外部變量同名時(shí),內(nèi)部變量屏蔽外部變量 // let a = 123; // { //??let a = 456; //??console.log(a); // }
3.const
# const標(biāo)識(shí)符;修飾只讀變量的關(guān)鍵字 # 1.只讀變量 // const a = 123; // a = 666; // console.log(a); # 2.被const修飾的常量,必須初始化 // const a; // a = 123; # 3.塊級(jí)作用域 # 4.暫時(shí)性死區(qū) # 5.不能重復(fù)定義 # 6.必須先定義后使用 # 面試題? # var,let,const的異同? # 1.都是用來定義變量的關(guān)鍵字 # 2.var擁有聲明提升 # 3.const修飾只讀變量,且必須被初始化 # 4.let和const都具備 ??# a.塊級(jí)作用域 ??# b.暫時(shí)性死區(qū) ??# c.不能重復(fù)定義 ??# d.必須先定義后使用 const arr = [5,4,6,3,7,8]; arr[1] = 0; console.log(arr[1]); arr = [111]; # 注意事項(xiàng):const修飾棧空間
4.this指向
# this:函數(shù)體內(nèi)的內(nèi)置對(duì)象->作用域?yàn)楦鞣N函數(shù)體 # 1.當(dāng)this與事件體連用,代表觸發(fā)該事件的元素本身 // document.onclick = function(){ //??console.log(this); // } // var oInput = document.querySelector("input"); // oInput.onblur = function(){ //??console.log(this.value); // } # 2.當(dāng)this與普通函數(shù)(除了事件體和構(gòu)造函數(shù))連用,代表調(diào)用該函數(shù)的對(duì)象本身 // function fun(){ //??console.log(this); // } // window.fun(); // let data = { //??"name":"李玟", //??"f":function(){ //????console.log(this); //??} // } // data.f(); # 3.當(dāng)this與箭頭函數(shù)連用時(shí),代表其父元素的前綴 # 4.與構(gòu)造方法連用,代表new出來的對(duì)象
5.bind
# 需求:改變this的指向 # bind改變this的指向 # bind是函數(shù)對(duì)象的函數(shù) # 函數(shù)對(duì)象.bind(被修改的this指向) // let fun = function(){ // } // fun == function(){} // fun.bind() == function(){}.bind();
6.JSON.parse_JSON.stringify
# json對(duì)象和字符串的相互轉(zhuǎn)換 let data = { ??"name":"ikun", ??"age":23 } # 注意事項(xiàng):無論是對(duì)象還是字符串,key都必須添加雙引號(hào) # 對(duì)象轉(zhuǎn)json字符串 let str = JSON.stringify(data); console.log(typeof str); # json字符串轉(zhuǎn)對(duì)象 let str1 = `{ ??"name":"ikun", ??"age":23 }` console.log(JSON.parse(str1)); //------------------------------------------ # ES6模板字符串添加變量 # 1.支持換行 # 2.ES6模板字符串添加變量:${變量} # 字符串 "" '' `` var oUl = document.querySelector("ul"); var test = "hahah" oUl.innerHTML = ` ??<li class='heihei'> ????<span id='${test}'>iKun</span>?? ??</li> ??<li>11</li> ??<li>11</li> ??<li>11</li> ` for(var i=0; i<10; i++){ ??oUl.innerHTML += `<li>${i}</li>`; }
7.for...in和for...of
# for...in:遍歷容器的下標(biāo),通常只用于遍歷json # for...of:遍歷容器的內(nèi)容(不能遍歷json),主要遍歷沒有下表的容器(set和map) var arr = [6,4,7,3,8]; for(let item of arr){ ??console.log(item); }
8.ES6新增查詢字符串API
// 判斷字符串是否包含在另一個(gè)字符串中 // 在ES5 中使用的是 indexOf() 方法,在ES6中可以使用includes()、startsWith()、endsWith()三個(gè)方法。 // str.includes(參數(shù)): 返回布爾值,表示是否找到了參數(shù)字符串。 // str.startsWith(參數(shù)):返回布爾值,參數(shù)是否在源字符串的頭部。 // str.endsWith(參數(shù)): 返回布爾值,參數(shù)是否在源字符串的尾部。 // var str = "cai xun kun yingyingying.js"; // console.log(str.includes("c111ai")); // console.log(str.startsWith("cai123")); // console.log(str.endsWith("123.js")); //----------------------------- // 中文生僻字 let str = "??";?//21c56 console.log(str.charAt(0)); console.log("\u{21c56}");
9.箭頭函數(shù)
# 箭頭函數(shù)是匿名函數(shù)的另一種寫法 # this的第三用法:當(dāng)this與箭頭函數(shù)連用時(shí),代表其父元素的前綴 // document.onclick = ()=>{ //??console.log(this); // } // function fun(){ //??if(){ //????this //??} // } // xxx.fun(); // let data = { //??"name":"李玟", //??"f":()=>{ //????console.log(this); //??} // } // data.f(); //------------------------- # 1.當(dāng)箭頭函數(shù)只有一個(gè)參數(shù)時(shí),可以省略參數(shù)的小括號(hào) // let fun = a=>{ //??return a + 10; // } // console.log(fun(56)); # 2.當(dāng)箭頭函數(shù)只有一條語句,可以省略花括號(hào) // let fun = a=>console.log(a+10); // fun(5); # 3.當(dāng)箭頭函數(shù)只有一條語句,自帶return let fun = a=>a+10; // function(a){ //??return a + 10; // } console.log(fun(8));
標(biāo)簽: