ES6--基础语法(一)
生活随笔
收集整理的這篇文章主要介紹了
ES6--基础语法(一)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、支持環(huán)境:node.js完全支持,標(biāo)準(zhǔn)瀏覽器完全支持。
二、測試環(huán)境:
chrome下需要在script標(biāo)簽的最先開始的地方需要添加"use strict"。
firefox下需要在script標(biāo)簽的type="application/javascript;version=1.7"。 三、基本語法:
1.變量let:
1.不能重復(fù)申明變量(var 可以)。
2.沒有預(yù)解析的過程。(var 有)。 console.log(a);var a = 2;//console.log();undefined; let會(huì)報(bào)錯(cuò)。
b.name = "seafuwg";//對象的話可以修改。 3、解構(gòu)賦值:es6 允許按照一定的規(guī)則,從數(shù)組和對象中取值,對變量賦值。(目前firfox支持詞語法,chrome低版本不支持)
3.1 數(shù)組:按照順序賦值。
var arr = [1,2,3]; var [a,b,c] = arr; console.log(a);//1 //eg: 值的交換 let x = 2; let y = 3; let [x,y] = [y,x]; 3.2 對象:是按照鍵的名字賦值;方便從對象中取值,值的交換等 let obj = {fn : function() {},name : "assassion",arr : [],obj1 : {}};let {fn,name,obj1} = obj;console.log(fn,name,obj1); 4.字符串的擴(kuò)展
4.1對一些特殊漢字,及表情的支持占四個(gè)字節(jié)的長度 var a1 = "?";console.log(a1.length);console.log(String.fromCodePoint(134071));str.at();//找到對應(yīng)的字符,有些瀏覽器不支持String.codePointAt();//返回漢字所對應(yīng)的碼點(diǎn)(碼值)String.fromCodePoint()//根據(jù)碼點(diǎn)返回對應(yīng)的漢字str.repeat(n);//傳遞一個(gè)參數(shù),表示字符串重復(fù)的次數(shù)
4.3.1 str.includes();參數(shù): 1、要查找的字符串
2、起始位置
返回布爾值,表示是否找到了參數(shù)字符串 let aa = "assassin";console.log(aa.includes("i"));//trueconsole.log(aa.includes("i",5));//trueconsole.log(aa.includes("i",7));//false 4.3.2 str.startsWith()
參數(shù):
1、要查找的字符串
2、起始位置
返回布爾值,表示參數(shù)字符串是否在源字符串的頭部。 console.log(aa.startsWith("ass"));//trueconsole.log(aa.startsWith("ass",3));//trueconsole.log(aa.startsWith("ass",4));//false 4.3.3str.endsWith()
參數(shù):
1、要查找的字符串
2、起始位置(針對的是n個(gè)字符)
返回布爾值,表示參數(shù)字符串是否在源字符串的尾部。 console.log(aa.endsWith("in"));//trueconsole.log(aa.endsWith("i"));//falseconsole.log(aa.endsWith("i",7));//true 字符串的索引都是從1開始。 5.數(shù)值的擴(kuò)展
5.1 二進(jìn)制和八進(jìn)制的表示方法:0b和0o;
5.2 Math函數(shù)的擴(kuò)展:
5.2.1. Math.trunc();去掉小數(shù)點(diǎn),Math.trunc(1.92344) = 1;簡單的去掉小數(shù)。
5.2.2. Math.sign();判斷一個(gè)數(shù)是正數(shù),負(fù)數(shù),正0,負(fù)0;
5.2.3. Math.hypot(a,b);返回兩個(gè)數(shù)的平方和的平方根(勾股定理) 6.數(shù)組的擴(kuò)展
6.1 Array.from();//把類數(shù)組的數(shù)據(jù)轉(zhuǎn)換成數(shù)組 var str1 = "assassin";var str2 = [].slice.call(str1);//以前的方法 console.log(Array.from(str1));console.log(Array.from(str2)); 6.2 Array.of();//將一組參數(shù)轉(zhuǎn)換成數(shù)組;類似于new Array(1,2,3,4,5); var arr = Array.of(1,2,3,4,5); 6.3 arr.find();//找出第一個(gè)符合條件的數(shù)組元素。 找出第一個(gè)符合條件的數(shù)組元素
參數(shù):
1、回調(diào)函數(shù)
2、回調(diào)函數(shù)內(nèi)this的指向
遍歷整個(gè)數(shù)組,遍歷過程中調(diào)用回調(diào)函數(shù),如果回調(diào)函數(shù)的返回值為true,則返回當(dāng)前正在遍歷的元素。如果所有元素都不符合條件則返回undefined var array = [1,2,3,4,5,6,7,8];var n = array.find(function(val,index) {//函數(shù)里面的參數(shù)1:遍歷的元素,參數(shù)2:遍歷的索引return val < 4;});
console.log(n);//1 6.4 arr.findIndex();找出第一個(gè)符合條件的數(shù)組元素的位置 參數(shù):
1、回調(diào)函數(shù)
2、回調(diào)函數(shù)內(nèi)this的指向
遍歷整個(gè)數(shù)組,遍歷過程中調(diào)用回調(diào)函數(shù),如果回調(diào)函數(shù)的返回值為true,則返回該數(shù)組元素的位置。如果所有元素都不符合條件則返回-1;和arr.find();方法用法相似,知識返回值不一樣,返回的是數(shù)組的索引。 6.5 arr.fill();用來填充數(shù)組 參數(shù):
1、填充的內(nèi)容
2、起始位置
3、結(jié)束位置 let fillArr = [1,2,3,4,5,6,7,8];let fillArr1 = fillArr.fill(9,fillArr.length+1,length+2);//這樣是無法添加的超出原數(shù)組的長度,知識填充,改變里面的不是添加let fillArr2 = fillArr.fill(9,9,10);//這樣是無法添加的超出原數(shù)組的長度let fillArr3 = fillArr.fill(9,7,8);//這樣是無法添加的超出原數(shù)組的長度console.log(fillArr2); //1,2,3,4,5,6,7,9 6.6 for of:遍歷,只要有遍歷接口就可以遍歷。默認(rèn)的對象是沒有遍歷接口的,會(huì)報(bào)錯(cuò) undefined is not a function。 var arrForOf = [1,2,3,4,5,6];for(let value of arrForOf) {console.log(value);//1,2,3,4,5,6 }for(let val in arrForOf) {console.log(val);//它返回的是索引 0,1,2,3,4,5 }//value:表示值,key: 表示鍵(索引);let arrKey = [1,2,3,4,5,6];for(let key of arrKey.keys()) {console.log(key);//返回的索引 }for(let value of arrKey) {//默認(rèn)的后面添加數(shù)組即可let value of arrKey.values();console.log(value);//返回的索引 }//value:表示值,key: 表示鍵(索引);一起遍歷for(let [key,value] of arrKey.entries() ) {console.log(key,value);} 6.7 數(shù)組推導(dǎo):ES6提供簡潔寫法,允許直接通過現(xiàn)有數(shù)組生成新數(shù)組,字符串也可以。谷歌不支持 var arrInfer = [for(value of arrKey) value*2];//還可以使用判斷等。 console.log(arrInfer);//原來的2倍var arrInfer1 = [for( i of arrKey) if(i > 2) i];console.log(arrInfer1);//數(shù)組大于2的元素
二、測試環(huán)境:
chrome下需要在script標(biāo)簽的最先開始的地方需要添加"use strict"。
firefox下需要在script標(biāo)簽的type="application/javascript;version=1.7"。 三、基本語法:
1.變量let:
1.不能重復(fù)申明變量(var 可以)。
2.沒有預(yù)解析的過程。(var 有)。 console.log(a);var a = 2;//console.log();undefined; let會(huì)報(bào)錯(cuò)。
3.塊級作用域的使用{ //塊級作用域;代碼塊}
{//從代碼塊的開始到申明的這段區(qū)域----暫存死區(qū)let a = 2;console.log(a);//可以訪問; }console,log(a);//不可以訪問。應(yīng)用:輸出0-9;的數(shù)字;for(var i = 0;i < 10;i++) {setTimeout(function() {console.log(i);//會(huì)輸出10次10, });}for(let i =0; i < 10;i++) {setTimeout(function() {console.log(i);});//0-9; }for(var i = 0; i < 10;i++) {(function(i) {//閉包函數(shù)(自執(zhí)行函數(shù)),循環(huán)一次執(zhí)行一次,相似一{}塊級作用域。setTimeout(function() {console.log(i);});})(i);} 2、常量const:不變的量。常量保存值的時(shí)候不能改變,保存的是一個(gè)對象的時(shí)候可以改變。 const a = 2; a=5;//會(huì)報(bào)錯(cuò)。 const b = { name = "assassion" };b.name = "seafuwg";//對象的話可以修改。 3、解構(gòu)賦值:es6 允許按照一定的規(guī)則,從數(shù)組和對象中取值,對變量賦值。(目前firfox支持詞語法,chrome低版本不支持)
3.1 數(shù)組:按照順序賦值。
var arr = [1,2,3]; var [a,b,c] = arr; console.log(a);//1 //eg: 值的交換 let x = 2; let y = 3; let [x,y] = [y,x]; 3.2 對象:是按照鍵的名字賦值;方便從對象中取值,值的交換等 let obj = {fn : function() {},name : "assassion",arr : [],obj1 : {}};let {fn,name,obj1} = obj;console.log(fn,name,obj1); 4.字符串的擴(kuò)展
4.1對一些特殊漢字,及表情的支持占四個(gè)字節(jié)的長度 var a1 = "?";console.log(a1.length);console.log(String.fromCodePoint(134071));str.at();//找到對應(yīng)的字符,有些瀏覽器不支持String.codePointAt();//返回漢字所對應(yīng)的碼點(diǎn)(碼值)String.fromCodePoint()//根據(jù)碼點(diǎn)返回對應(yīng)的漢字str.repeat(n);//傳遞一個(gè)參數(shù),表示字符串重復(fù)的次數(shù)
4.2?模板字符串:用反引號,在反引號中用${變量,常量,表達(dá)式,對象...}表示,是增強(qiáng)版的字符串,用反引號(`)標(biāo)識。它可以當(dāng)作普通字符串使用,也可以用來定義多行字符串,或者在字符串中嵌入變量。代碼中的字符串用反引號(`)表示,如果需要引入變量則使用${變量名}, 在{}中可以進(jìn)行運(yùn)算,也可以引用對象屬性。
var name1 = "assassion";var age1 = 23;var str = "name:"+name1+" age:"+age1+"";console.log(str);var str1 = `name:${name1} age:${age1}`;console.log(str1); 4.3字符串查找的擴(kuò)展方法:和indexOf語法規(guī)則基本相似,indexOf(),返回的是值或者-1。擴(kuò)展的都是ture或者false;4.3.1 str.includes();參數(shù): 1、要查找的字符串
2、起始位置
返回布爾值,表示是否找到了參數(shù)字符串 let aa = "assassin";console.log(aa.includes("i"));//trueconsole.log(aa.includes("i",5));//trueconsole.log(aa.includes("i",7));//false 4.3.2 str.startsWith()
參數(shù):
1、要查找的字符串
2、起始位置
返回布爾值,表示參數(shù)字符串是否在源字符串的頭部。 console.log(aa.startsWith("ass"));//trueconsole.log(aa.startsWith("ass",3));//trueconsole.log(aa.startsWith("ass",4));//false 4.3.3str.endsWith()
參數(shù):
1、要查找的字符串
2、起始位置(針對的是n個(gè)字符)
返回布爾值,表示參數(shù)字符串是否在源字符串的尾部。 console.log(aa.endsWith("in"));//trueconsole.log(aa.endsWith("i"));//falseconsole.log(aa.endsWith("i",7));//true 字符串的索引都是從1開始。 5.數(shù)值的擴(kuò)展
5.1 二進(jìn)制和八進(jìn)制的表示方法:0b和0o;
5.2 Math函數(shù)的擴(kuò)展:
5.2.1. Math.trunc();去掉小數(shù)點(diǎn),Math.trunc(1.92344) = 1;簡單的去掉小數(shù)。
5.2.2. Math.sign();判斷一個(gè)數(shù)是正數(shù),負(fù)數(shù),正0,負(fù)0;
5.2.3. Math.hypot(a,b);返回兩個(gè)數(shù)的平方和的平方根(勾股定理) 6.數(shù)組的擴(kuò)展
6.1 Array.from();//把類數(shù)組的數(shù)據(jù)轉(zhuǎn)換成數(shù)組 var str1 = "assassin";var str2 = [].slice.call(str1);//以前的方法 console.log(Array.from(str1));console.log(Array.from(str2)); 6.2 Array.of();//將一組參數(shù)轉(zhuǎn)換成數(shù)組;類似于new Array(1,2,3,4,5); var arr = Array.of(1,2,3,4,5); 6.3 arr.find();//找出第一個(gè)符合條件的數(shù)組元素。 找出第一個(gè)符合條件的數(shù)組元素
參數(shù):
1、回調(diào)函數(shù)
2、回調(diào)函數(shù)內(nèi)this的指向
遍歷整個(gè)數(shù)組,遍歷過程中調(diào)用回調(diào)函數(shù),如果回調(diào)函數(shù)的返回值為true,則返回當(dāng)前正在遍歷的元素。如果所有元素都不符合條件則返回undefined var array = [1,2,3,4,5,6,7,8];var n = array.find(function(val,index) {//函數(shù)里面的參數(shù)1:遍歷的元素,參數(shù)2:遍歷的索引return val < 4;});
console.log(n);//1 6.4 arr.findIndex();找出第一個(gè)符合條件的數(shù)組元素的位置 參數(shù):
1、回調(diào)函數(shù)
2、回調(diào)函數(shù)內(nèi)this的指向
遍歷整個(gè)數(shù)組,遍歷過程中調(diào)用回調(diào)函數(shù),如果回調(diào)函數(shù)的返回值為true,則返回該數(shù)組元素的位置。如果所有元素都不符合條件則返回-1;和arr.find();方法用法相似,知識返回值不一樣,返回的是數(shù)組的索引。 6.5 arr.fill();用來填充數(shù)組 參數(shù):
1、填充的內(nèi)容
2、起始位置
3、結(jié)束位置 let fillArr = [1,2,3,4,5,6,7,8];let fillArr1 = fillArr.fill(9,fillArr.length+1,length+2);//這樣是無法添加的超出原數(shù)組的長度,知識填充,改變里面的不是添加let fillArr2 = fillArr.fill(9,9,10);//這樣是無法添加的超出原數(shù)組的長度let fillArr3 = fillArr.fill(9,7,8);//這樣是無法添加的超出原數(shù)組的長度console.log(fillArr2); //1,2,3,4,5,6,7,9 6.6 for of:遍歷,只要有遍歷接口就可以遍歷。默認(rèn)的對象是沒有遍歷接口的,會(huì)報(bào)錯(cuò) undefined is not a function。 var arrForOf = [1,2,3,4,5,6];for(let value of arrForOf) {console.log(value);//1,2,3,4,5,6 }for(let val in arrForOf) {console.log(val);//它返回的是索引 0,1,2,3,4,5 }//value:表示值,key: 表示鍵(索引);let arrKey = [1,2,3,4,5,6];for(let key of arrKey.keys()) {console.log(key);//返回的索引 }for(let value of arrKey) {//默認(rèn)的后面添加數(shù)組即可let value of arrKey.values();console.log(value);//返回的索引 }//value:表示值,key: 表示鍵(索引);一起遍歷for(let [key,value] of arrKey.entries() ) {console.log(key,value);} 6.7 數(shù)組推導(dǎo):ES6提供簡潔寫法,允許直接通過現(xiàn)有數(shù)組生成新數(shù)組,字符串也可以。谷歌不支持 var arrInfer = [for(value of arrKey) value*2];//還可以使用判斷等。 console.log(arrInfer);//原來的2倍var arrInfer1 = [for( i of arrKey) if(i > 2) i];console.log(arrInfer1);//數(shù)組大于2的元素
?
?轉(zhuǎn)載于:https://www.cnblogs.com/intelwisd/p/7863105.html
總結(jié)
以上是生活随笔為你收集整理的ES6--基础语法(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Struts2-整理笔记(三)结果处理跳
- 下一篇: 洛谷 [P1314] 聪明的质检员(NO