ES6新特征數(shù)字、數(shù)組、字符串
一、let和const
let:聲明變量,只在聲明的塊級(jí)作用域(大括號(hào))內(nèi)起作用[注意:let不向var那樣可以自動(dòng)提升]
如果一個(gè)區(qū)塊內(nèi)存在let或const命令,該區(qū)塊就被解析成封閉作用域(暫時(shí)性死區(qū),必須先聲明再使用) [所以一個(gè)區(qū)塊內(nèi)只要有l(wèi)et,就可能存在死區(qū),就可能會(huì)出現(xiàn)變量聲明使用順序的錯(cuò)誤]
let為JavaScript增加了塊級(jí)作用域
ES6中在塊級(jí)作用域聲明的函數(shù)不能在外部被引用,但在ES5中可以(ES5中的函數(shù)聲明可以提升到全局作用域或函數(shù)作用域頭部,ES6中不行,但是ES6位了避免對(duì)老代碼的沖擊放開了新的規(guī)定)
const聲明值不能被改變的常量
const聲明對(duì)象的時(shí)候指向的是地址而不是具體數(shù)據(jù),所以不可變的是地址
let、class、const在全局聲明的變量不再是全局變量,不再掛載到window對(duì)象上
二、變量的解構(gòu)賦值
解構(gòu)賦值:模式匹配,左右兩側(cè)通過數(shù)組的模式匹配復(fù)制,不需要一個(gè)個(gè)賦值了,如:
var [a, b, c] = [1, 2, 3] [這種事數(shù)組解構(gòu),按位置賦值]
還可以對(duì)象解構(gòu),沒有次序要求,按照變量名賦值:
var {bar, foo} = {foo: “aaa”, bar: “bob”};
字符串解構(gòu):const [a, b, c, d, e] = ‘hello';
三、字符串的擴(kuò)展
\uxxxx表示一個(gè)字符,后加字符的四位碼點(diǎn)
codePointAt:正確處理4個(gè)字節(jié)儲(chǔ)存的字符
String.fromCharCode():將碼點(diǎn)返回成對(duì)應(yīng)的字符串
for…of可以遍歷字符串 比如for(let a of “hello”){console.log(a);} 打印出hello各個(gè)字母
類似indexOf()的方法:includes()是否找到參數(shù)字符串;startsWith/endsWith是否在字符串頭/尾部
repeat():將原字符串復(fù)制n次返回新字符串 ‘x'.repeat(3) //xxx
模版字符串:使用反引號(hào)
字符串中可以使用正則表達(dá)式的方法:match()/replace()/search()/split()
可以為正則表達(dá)式添加u字符,用來處理中文等
四、數(shù)值的擴(kuò)展
0b開頭二進(jìn)制;0o開頭八進(jìn)制
Number.isNaN()/Number.inFinite() 檢測(cè)一個(gè)數(shù)是否是NaN/有限值,只對(duì)數(shù)值有效
Number.isInteger() 判斷是否是整數(shù)
Math.trunc() 去除一個(gè)數(shù)的小數(shù)部分;Math.sign() 判斷一個(gè)數(shù)是正數(shù)、負(fù)數(shù)、零
Math.cbrt() 計(jì)算一個(gè)數(shù)的立方根;Math.hypot() 求所有參數(shù)的平方和的平方根
五、數(shù)組的擴(kuò)展
Array.from():將類數(shù)組對(duì)象轉(zhuǎn)換成數(shù)組,還可以傳入第二個(gè)參數(shù),作用類似map,對(duì)每個(gè)元素操作
ES6中:var arr = Array.from(arrayLike);
ES5中:var arr = [].slice.call(arrayLike);
Array.of():將一組值轉(zhuǎn)換為數(shù)組
find()方法:找到第一個(gè)符合條件的數(shù)組成員,參數(shù)是一個(gè)回調(diào)函數(shù),每個(gè)成員都執(zhí)行一次回調(diào)函數(shù)
[1, 5, 10, 15].find(function(value, index, arr) { //當(dāng)前值、索引、原數(shù)組 return value > 9; })
fill()方法:用來填充一個(gè)數(shù)組,fill(value, start, end),表示從start開始end截止使用value填充
ES6規(guī)定數(shù)組中空位的值是undefined,注意不是這個(gè)位置是undefined而事這個(gè)位置的值的undefined
以上所述是小編給大家介紹ES6新特征數(shù)字、數(shù)組、字符串,希望對(duì)大家有幫助,如果大家有任何疑問歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的。
相關(guān)文章
YUI Compressor壓縮JavaScript原理及微優(yōu)化
最近寫一個(gè)jQuery插件,在最后完成優(yōu)化時(shí),對(duì)比發(fā)現(xiàn)壓縮后文件比較大,就思考那些是可以被修改和優(yōu)化的,發(fā)現(xiàn)壓縮原理也有很大的空間可以學(xué)習(xí)2013-01-01jquery及js實(shí)現(xiàn)動(dòng)態(tài)加載js文件的方法
這篇文章主要介紹了jquery及js實(shí)現(xiàn)動(dòng)態(tài)加載js文件的方法,結(jié)合實(shí)例形式分別講述了基于jQuery以及基于JavaScript的文件動(dòng)態(tài)加載方法,需要的朋友可以參考下2016-01-01原生JS實(shí)現(xiàn)天氣預(yù)報(bào)
這篇文章主要為大家詳細(xì)介紹了原生JS實(shí)現(xiàn)天氣預(yù)報(bào),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06微信小程序分享海報(bào)生成的實(shí)現(xiàn)方法
為了吸引更多的用戶,設(shè)計(jì)好一個(gè)分享海報(bào)還是很有必要的,這篇文章主要介紹了微信小程序分享海報(bào)生成的實(shí)現(xiàn)方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2018-12-12JavaScript this指向相關(guān)原理及實(shí)例解析
這篇文章主要介紹了JavaScript this指向相關(guān)原理及實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07Js如何判斷客戶端是PC還是手持設(shè)備簡(jiǎn)單分析
在工作過程中,許多朋友會(huì)經(jīng)常用到j(luò)s判斷客戶端是PC還是手持設(shè)備,今天將提供以下方法,需要的朋友可以參考下2012-11-11JavaScript Generator函數(shù)使用分析
生成器Generator是JavaScript ES6引入的特性,它讓我們可以分段執(zhí)行一個(gè)函數(shù)。但是在談?wù)撋善鳎℅enerator)之前,我們要先了解迭代器Iterator2022-10-10QT與javascript交互數(shù)據(jù)的實(shí)現(xiàn)
本文主要介紹了QT與javascript交互數(shù)據(jù)的實(shí)現(xiàn),主要包括數(shù)據(jù)從QT流向JS以及數(shù)據(jù)從JS流向QT的幾種方法,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05