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