国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

ES6特性概述 - ES6 - ECMAScript特性 - Javascript核心

Ali_ / 1657人閱讀

摘要:特性概述比較新特性更多。之后后分篇描述目前已經比較成熟的語法特性例如和。同上,但返回該元素的索引號。和對象的屬性行為一致。不將參數強制轉行為。判斷是否為在范圍內的正整數。不少層面的特性可以通過進行兼容性支持。

  

原文: http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_api_extension.html

  

源代碼: https://github.com/RobinQu/Programing-In-JavaScript/blob/master/chapters/Javascript_Core/ECMAScript/es6/es6_api_extension.md

本文需要補充更多例子

本文存在批注,但該網站的Markdown編輯器不支持,所以無法正常展示,請到原文參考。

ES6特性概述

ES6比較ES5新特性更多。新加入的特性大致氛圍三類:

擴展已有的原生對象API

Object上的新方法

String上的新方法

Math上的新方法

...

全新的數據結構

WeakMap

Set

...

語法特性:新表達式、語法糖等

arrow function

const

let

rest parameters, default parameters

spread call, spread array

class

computed properties

Modules

for-of loop

Array comprehensions

Generator

Iterator

Block-level function

Destructuring

由于新的語法特性非常復雜,本篇只描述部分ES6中新加入的API。之后后分篇描述目前已經比較成熟的語法特性(例如Generator和Iterator)。

String String.fromCodePoint(n1,n2,n3,...)

從UTF16代碼轉換字符。這里筆者也不太清楚,應該和UTF編碼有關1

String.prototype.codePointAt

從字符串的字符上取CodePoint。

String.prototype.repeat
"abc".repeat(2) // "abcabc"
String.prototype.startsWith(a,p)2

判斷字符串是否以a開頭;檢索的起始位置p是可選的。

String.prototype.endWith(a,p)3

判斷字符串是否以a結尾;檢索的起始位置p是可選的。

String.prototype.contains(a,p)4

判斷字符串是否包含子串a;檢索的起始位置p是可選的。

Array Array.from(arrayLike,map,thisArg)5

根據類數組對象arrayLike創建數組;一個可選的map方法和其上下文對象thisArg

Array.of(...items)6

從給定參數創建數組。

Array.prototype.find(cb,thisArg)7

尋找通過指定函數cb測試的第一個元素。

Array.prototype.findIndex(cb,thisArg)

同上,但返回該元素的索引號。

Array.prototype.fill(v,s,e)8

在數組索引se之間添入多個元素v

Object Object.getOwnPropertyDescriptors(o,p)9

獲取對象o上屬性p的特性描述對象。在搜尋屬性時,不在原型鏈上搜索。

Object.getPropertyDescriptor(o,p)10

獲取對象o上屬性p的特性描述對象。

Object.getOwnPropertyNames(o)

獲取對象自身上可枚舉和不可枚舉的鍵名數組。注意,該方法會返回那些enumerable屬性已經設置為false的propety。

Object.is(a, b)11

檢測兩個給定對象的值是否相同。該方法不會進行如同==操作符那樣去進行數值轉換。與===也有細微差別。僅當符合下面任意條件才返回true

都是undefined

都是null

都是truefalse

都是等長、內容相同的字符串

都是同一個對象

都是number,并且滿足以下任一條件:

都是+0

都是-0

都是NaN

都是非零、非NaN,并且數值一樣

Object.setPrototypeOf(o, proto)

將對象o的原型修改為proto。和對象的__proto__屬性行為一致。修改單個對象的prototype一般是不被推薦的。

Object.assign(target, source1, source2, ...)

類似underscore和lodash的_.extend。將多個對象的值合并到一個對象。

Number

數字和算數的API復雜而且不常用,但是卻必備。

Number.isFinite(v)

判斷數字是否為有窮。判斷過程不嘗試將參數轉換為number

Number.isFinite(Infinity);  // false
Number.isFinite(NaN);       // false
Number.isFinite(-Infinity); // false

Number.isFinite(0);         // true
Number.isFinite(2e64);      // true
Number.isInteger(v)

判斷是否為正整數。

Number.isNaN(v)

不將參數強制轉行為number。判斷是否確實為NaN

Number.isSafeInteger()12

判斷是否為在MAX_SAFE_INTEGER范圍內的正整數。這里說明一下,NUMBER.MAX_SAFE_INTEGER2^53-1NUMBER.MAX_VALUE1.7976931348623157 × 10308,這是IEE754中定義的double的最大值[^13]。

Number.EPSILON13

一個常量,代表正整數1與大于1的最小值之差。大約為: 2.2204460492503130808472633361816 x 10?^16

Math Math.clz32(v)

CountLeadingZeroes32。計算一個數字在32位無符號位整形數字的二進制形式開頭有多少個0

Math.imul(v)

以32位正數的乘法方式來計算給定參數。該方法的一種可能的Javascript實現:

function imul(a, b) {
  var ah  = (a >>> 16) & 0xffff;
  var al = a & 0xffff;
  var bh  = (b >>> 16) & 0xffff;
  var bl = b & 0xffff;
  // the shift by 0 fixes the sign on the high part
  // the final |0 converts the unsigned value into a signed value
  return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0)|0);
}
Math.sign(v)

判斷一個數的符號位

Math.sign(3)     //  1
Math.sign(-3)    // -1
Math.sign("-3")  // -1
Math.sign(0)     //  0
Math.sign(-0)    // -0
Math.sign(NaN)   // NaN
Math.sign("foo") // NaN
Math.sign()      // NaN
Math.log10(x)

lg(x)

Math.log2(x)

log2(x)

Math.log1p(x)

ln(1+x)

Math.expm1(x)

e^x-1

Math.cosh(x) Math.sinh(x) Math.tanh(x) Math.acosh(x) Math.asinh(x) Math.atanh(x) Math.hypot(v1,v2,v3....)

計算給定參數的平方平均數

Math.trunc(v)
function trunc(x) {
  return x < 0 ? Math.ceil(x) : Math.floor(x);
}
Math.fround(v)

返回數值的最接近的單精度浮點。

Math.cbrt(x)

求x的立方根

關于ES及其他

ES標準13在快速發展之中,部分討論14都已經擴展到ES8的規劃之內。就像W3C的新版標準一樣,他們的出現往往被開發者輕視。前段開發者以兼容性、實用性為借口選擇性忽略,但是不知不覺中,這些開發者已經成為了守舊者,那些曾經被視為華而不實的Canvas、ApplicationStorage、Websocket等技術,如今已是大量在線應用的基礎設施。

ES6標準中部分已經被廣泛應用到node應用的開發之中,也許不久的未來,nodejs的開發者所寫的Javascript已經和瀏覽器端開發者使用的Javascript是兩種不同的語言了。

ES6不少API層面的特性可以通過shim15進行兼容性支持。部分語法特性,通過二次編譯16,可以支持。所以,已經不是找理由不了解ECMAScript的時候了。

http://stackoverflow.com/questions/3744721/javascript-strings-outside-of-the-bmp??

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith??

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith??

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/contains??

http://people.mozilla.org/~jorendorff/es6-draft.html#sec-22.1.2.1??

http://people.mozilla.org/~jorendorff/es6-draft.html#sec-22.1.2.1??

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find??

http://people.mozilla.org/~jorendorff/es6-draft.html#sec-22.1.3.6??

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor??

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor??

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is??

https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.issafeinteger??

http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts

? ?

http://esdiscuss.org/topic/es6-es7-es8-and-beyond-a-proposed-roadmap??

https://github.com/paulmillr/es6-shim/??

https://github.com/addyosmani/es6-tools??

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/78137.html

相關文章

  • ES6語法特性 - ES6 - ECMAScript特性 - Javascript核心

    摘要:前三個是為了解決變量聲明定義的問題,而最后一個則影響最大。下文只介紹前三個特性。這是因為的的不支持塊級作用域,變量僅僅被限制到函數作用域內。 原文: http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_syntax_features.html 源代碼: https://github.com/RobinQu/P...

    Joyven 評論0 收藏0
  • ES6語法特性 - ES6 - ECMAScript特性 - Javascript核心

    摘要:前三個是為了解決變量聲明定義的問題,而最后一個則影響最大。下文只介紹前三個特性。這是因為的的不支持塊級作用域,變量僅僅被限制到函數作用域內。 原文: http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_syntax_features.html 源代碼: https://github.com/RobinQu/P...

    StonePanda 評論0 收藏0
  • ES6語法特性 - ES6 - ECMAScript特性 - Javascript核心

    摘要:前三個是為了解決變量聲明定義的問題,而最后一個則影響最大。下文只介紹前三個特性。這是因為的的不支持塊級作用域,變量僅僅被限制到函數作用域內。 原文: http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_syntax_features.html 源代碼: https://github.com/RobinQu/P...

    jas0n 評論0 收藏0
  • ES6引入的數據結構 - ES6 - ECMAScript特性 - Javascript核心

    摘要:引入的數據結構新加入的數據類型有這些數據結構的支持并不廣泛,在寫這篇文章的時候。是或其他可枚舉的對象,其每個元素是的元數組。開頭的和不對持有引用,不影響。因此,他們沒有辦法對自身的進行直接的枚舉。目前新版的和支持。 原文:http://pij.robinqu.me/JavaScript_Core/ECMAScript/es6/es6_data_types.html 源代...

    fobnn 評論0 收藏0
  • [譯] ES6 學習筆記:關于 ES2015 特性的詳細概述

    摘要:將轉換成常見的使用實現的基于迭代器的迭代。處停止迭代器基于鴨子模型接口這里使用語法僅僅為了說明問題使用支持為了使用迭代器屬性需要引入。生成器是迭代器的子類,包含了附加的與。 原文地址:http://babeljs.io/docs/learn-...本文基于Luke Hoban精妙的文章《es6features》,請把star獻給他,你可以在此嘗試這些特性REPL。 概述 ECMAScr...

    leoperfect 評論0 收藏0

發表評論

0條評論

Ali_

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<