国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

ES6中非常實用的新特性介紹

2019-11-20 10:25:25
字體:
來源:轉載
供稿:網友

ECMAScript 6離我們越來越近了,作為它最重要的方言,Javascript也即將迎來語法上的重大變革,InfoQ特開設“深入淺出ES6”專欄,來看一下ES6將給我們帶來哪些新內容。

寫在前面

ES6 已經提交給 Ecma 大會審查了,也就是說,我們將迎來一大波 javascript 的最新標準,還有一些語法糖。ES6 中有很多值得我們關注的東西,下面是我發現的一些我們最常用的一些新特性,進行記錄一下。

1. for-of循環

這個東西用來循環數組很爽,原因呢,是因為它彌補了目前 es5 中循環數組的一切缺陷。

比如 for-in,它會遍歷數組對象的附加屬性,而不僅僅是遍歷數組值。還有一點是,for-in 中的索引是 string 類型的,這一點尤其重要。

var arrObj=['alexchen',1,{}];arrObj._name='attr-AlexChen';for(var i in arrObj){console.log(arrObj[i]) // 會把_name屬性也遍歷出來 console.log(typeof(i)) // 全部輸出 string}

當然我們還有 forEach() 函數,它也有問題,比如你不能在里面 break return 之類的:

var arrObj = ['alexchen','boy','great'];arrObj.forEach(function (v) {if (v == 'boy') {return 'can not return';}console.log(v) //會輸出alexchen great})

這樣看起來要比 for-in 簡便很多。但就像上面說的一樣,它有也有不足的地方。那么我們來試試 for-of 吧:

var arrObj = ['alexchen',1,{}];arrObj._name = 'attr-alexchen';for (var i of arrObj) {console.log(i);//這里只會輸出,alexchen,1,object{},不會輸出attr-alexchenconsole.log(typeof(i))//這里會輸出 string,number,objectif (i == 1) {break;}console.log(i)//只會輸出 alexchen,滿足條件之后就不在繼續循環,提高了效率并且可以自由控制跳出循環或繼續循環}

可以看到:

當使用 for-of 的時候,循環的是數組內部的元素且不會出現 for-in 中將附加屬性也遍歷的情況,其次,循環變量的類型和其在數組中的類型保持一致,而不是全部是 string 的情況。

就這兩點就值得我們選擇 for-of 而不是 forEach() 或 for-in 當然,現在還有些瀏覽器不支持。不過以上代碼可以在最新版本的 FireFox 執行成功并得到預期結果。當然 for-of 并不是只在數組上使用,你可以用在任何類數組類型的對象上,比如 DOM NodeList, 字符串 等。

2. 模版字符串

這個東西也非常好玩,用在字符串拼接的地方。從名稱上我們就知道是干啥的了。在前端開發過程中難免會遇到要動態拼接字符串的情況(動態dom生成,數據格式化)等:

(function sayHello(name, words) { console.log(`hello: ${name},welcome es6,your words is: ${words}`); //})('alexchen','im admin')//運行之后將會輸出:hello: alexchen,welcome es6,your words is: im admin

注意,被當作模版的字符串使用 ` 號包裹的。其中 $(paramenter) 是占位符,而且支持對象,eg:$(obj.name) 這種形式。與普通字符串相比模版字符串可以寫成多行而不需要用 + 連接:

hello:$(name),welcome es6,your words is $(words)

值得注意的是,模版字符串不會轉義特殊字符,因此需要自己處理其中的安全隱患。模版字符串并不能夠代替模版框架,原因是模版字符串沒有內置的循環語法和條件語句。因此,對于常規的普通的字符串拼接,我們可以使用它來完成,會讓你的代碼看起來更酷一點。PS(除此之外,我覺得它并沒有什么卵用。ψ(

主站蜘蛛池模板: 台湾省| 怀柔区| 文安县| 珲春市| 曲阜市| 荣昌县| 长武县| 博湖县| 深水埗区| 二连浩特市| 手游| 博罗县| 大洼县| 金平| 都昌县| 四会市| 永昌县| 广宗县| 云梦县| 平昌县| 马公市| 聂拉木县| 南汇区| 滕州市| 搜索| 大姚县| 宁阳县| 岑溪市| 常德市| 尉氏县| 杭锦旗| 新郑市| 大理市| 阜康市| 罗源县| 岳阳市| 芷江| 长宁县| 寻甸| 普格县| 皋兰县|