ES7新特性

ES7在ES6的基礎(chǔ)上添加了三項內(nèi)容:求冪運算符(**)Array.prototype.includes()方法、函數(shù)作用域中嚴格模式的變更。

1.Array.prototype.includes()方法

includes()的作用,是查找一個值在不在數(shù)組里,若在,則返回true,反之返回false。 基本用法:

['a', 'b', 'c'].includes('a')// true

['a', 'b', 'c'].includes('d')// false

Array.prototype.includes()方法接收兩個參數(shù):要搜索的值和搜索的開始索引。當?shù)诙€參數(shù)被傳入時,該方法會從索引處開始往后搜索(默認索引值為0)。若搜索值在數(shù)組中存在則返回true,否則返回false。 請看下面示例代碼:

['a', 'b', 'c', 'd'].includes('b')? ? ? ? // true

['a', 'b', 'c', 'd'].includes('b', 1)? ? ?// true

['a', 'b', 'c', 'd'].includes('b', 2)? ? // false

那么,我們會聯(lián)想到ES6里數(shù)組的另一個方法indexOf,下面的示例代碼是等效的:

['a', 'b', 'c'].includes('a')? ? ? ? ? ? ?//true

['a', 'b', 'c'].indexOf('a') > -1? ? ? //true

比較兩者的優(yōu)缺點和使用場景:

? ? 簡便性:

? ? ? ?從這一點上來說,includes略勝一籌。熟悉indexOf的都知道,indexOf返回的是某個元素在數(shù)組中的下標值,若想判斷某個元素是否在數(shù)組里,我們還需要做額外的處理,即判斷該返回值是否>-1。而includes則不用,它直接返回的便是Boolean型的結(jié)果。

? ? ?精確性:

? ? ? ?兩者使用的都是 === 操作符來做值的比較。但是includes()方法有一點不同,兩個NaN被認為是相等的,即使在NaN === NaN結(jié)果是false的情況下。這一點和indexOf()的行為不同,indexOf()嚴格使用===判斷。請看下面示例代碼:

let? demo= [1, NaN, 2, 3]

demo.indexOf(NaN)? ? ? ? //-1? ? 找到就返回-1

demo.includes(NaN)? ? ? ?//true

2.求冪運算符(**)

? ?基本用法:

? ? ? ? 3 ** 2? ? ? ? ? // 9

? ?效果同:

? ? ? ? ?Math.pow(3, 2)? ? ? ?// 9

**的意思是什么?

? ? ? ?** 是一個用于求冪的中綴算子,比較可知,中綴符號比函數(shù)符號更簡潔,這也使得它更為可取。?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • ECMAScript6 的開發(fā)花費了四年之久,之后TC-39決定縮短開發(fā)周期,采用年度周期來發(fā)布語言的新特性...
    Alex灌湯貓閱讀 3,415評論 0 1
  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,596評論 0 13
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,688評論 19 139
  • 最近我寫了一篇博客文章,甚至做一篇關(guān)于ES6/ES2015在線課程。你猜怎么樣?TC39-JavaScript最強...
    sunnyRube閱讀 1,817評論 1 2
  • 今天讀了兩個咖的故事。 有點像之前在讀書群里討論過的牛人,詳見發(fā)現(xiàn)牛人。 挑一個咖說說感受,大橘子,公眾號“大橘子...
    大林_Rbenefit閱讀 260評論 0 0

友情鏈接更多精彩內(nèi)容