JavaScript ES6

ECMAScript 6 是什么?

ECMAScript 6 也称为 ES6 和 ECMAScript 2015。

一些人把它称作 JavaScript 6。

本章介绍 ES6 中的一些新特性。

  • JavaScript let
  • JavaScript const
  • 幂 (**)
  • 默认参数值
  • Array.find()
  • Array.findIndex()

对 ES6(ECMAScript 2015)的浏览器支持

Safari 10 和 Edge 14 是首先完全支持 ES6 的浏览器:

Chrome 58 Edge 14 Firefox 54 Safari 10 Opera 55
Jan 2017 Aug 2016 Mar 2017 Jul 2016 Aug 2018

JavaScript let

let 语句允许您使用块作用域声明变量。

ƙanamori

var x = 10;
// Here x is 10
{ 
  let x = 2;
  // Here x is 2
}
// Here x is 10

Dauka shi ɗaya

JavaScript const

const 语句允许您声明常量(具有常量值的 JavaScript 变量)。

常量类似于 let 变量,但不能更改值。

ƙanamori

var x = 10;
// Here x is 10
{ 
  const x = 2;
  // Here x is 2
}
// Here x is 10

Dauka shi ɗaya

请在我们的 JavaScript Let / Const 章节中阅读更多关于 letconst 的内容。

指数运算符

取幂运算符(**)将第一个操作数提升到第二个操作数的幂。

ƙanamori

var x = 5;
var z = x ** 2;          // 结果是 25

Dauka shi ɗaya

x ** y 的结果与 Math.pow(x,y) 相同:

ƙanamori

var x = 5;
var z = Math.pow(x,2);   // 结果是 25

Dauka shi ɗaya

默认参数值

ES6 允许函数参数具有默认值。

ƙanamori

function myFunction(x, y = 10) {
  // y is 10 if not passed or undefined
  return x + y;
}
myFunction(5); // 将返回 15

Dauka shi ɗaya

Array.find()

find() 方法返回通过测试函数的第一个数组元素的值。

此例查找(返回)第一个大于 18 的元素(的值):

ƙanamori

var numbers = [4, 9, 16, 25, 29];
var first = numbers.find(myFunction);
function myFunction(value, index, array) {
  return value > 18;
}

Dauka shi ɗaya

يرجى ملاحظة أن هذه الوظيفة تأخذ 3 معاملات:

  • قيمة العنصر
  • مؤشر العنصر
  • مجموعة نفسها

Array.findIndex()

findIndex() 方法返回通过测试函数的第一个数组元素的索引。

هذا المثال يحدد مؤشر العنصر الأول الذي هو أكبر من 18:}

ƙanamori

var numbers = [4, 9, 16, 25, 29];
var first = numbers.findIndex(myFunction);
function myFunction(value, index, array) {
  return value > 18;
}

Dauka shi ɗaya

يرجى ملاحظة أن هذه الوظيفة تأخذ 3 معاملات:

  • قيمة العنصر
  • مؤشر العنصر
  • مجموعة نفسها

خصائص هائفيز الجديده

ES6 أضاف إلى هائفيز الخاصية التالية:

  • EPSILON
  • MIN_SAFE_INTEGER
  • MAX_SAFE_INTEGER

ƙanamori

var x = Number.EPSILON;

Dauka shi ɗaya

ƙanamori

var x = Number.MIN_SAFE_INTEGER;

Dauka shi ɗaya

ƙanamori

var x = Number.MAX_SAFE_INTEGER;

Dauka shi ɗaya

هائفيز جديده

ES6 أضاف 2 هائفيز جديده لعدد

  • Number.isInteger()
  • Number.isSafeInteger()

Number.isInteger() هائفيز

إذا كان المفردات عدد Number.isInteger() 方法返回 true

ƙanamori

Number.isInteger(10);        // تورو تورو
Number.isInteger(10.5);      // تورو فالز

Dauka shi ɗaya

Number.isSafeInteger() هائفيز

هائفيز أمان يمكن أن يعبر عنه بوضوح كعدد ثنائي

إذا كان المفردات أمان Number.isSafeInteger() 方法返回 true

ƙanamori

Number.isSafeInteger(10);    // تورو تورو
Number.isSafeInteger(12345678901234567890);  // تورو فالز

Dauka shi ɗaya

هائفيز أمان يعني جميع الأعداد الصحيحة من -(253 - 1) إلى +(253 - 1).

هائفيز أمان: 9007199254740991. هائفيز غير أمان: 9007199254740992.

هائفيز جديده كعالم

ES6 زاد 2 هائفيز جديده كعالم

  • isFinite()
  • isNaN()

isFinite() هائفيز

إذا كان المفردات Infinity أو NaN,则全局 isFinite() هائفيز تورو فالز

فالسا تورو فالز

ƙanamori

isFinite(10/0);       // تورو فالز
isFinite(10/1);       // تورو فالز

Dauka shi ɗaya

NaN() هائفيز

如果参数是 NaN,则全局 isNaN() 方法返回 true。否则返回 false

ƙanamori

isNaN("Hello");       // 返回 true

Dauka shi ɗaya

箭头函数(Arrow Function)

箭头函数允许使用简短的语法来编写函数表达式。

您不需要 function 关键字、return 关键字以及花括号

ƙanamori

// ES5
var x = function(x, y) {
   return x * y;
}
// ES6
const x = (x, y) => x * y;

Dauka shi ɗaya

箭头功能没有自己的 this。它们不适合定义对象方法

箭头功能未被提升。它们必须在使用进行定义。

使用 const 比使用 var 更安全,因为函数表达式始终是常量值。

如果函数是单个语句,则只能省略 return Karakuna da ƙabara. Koyaya, kare su yana ƙarfi ƙarfi ƙarfi ƙarfi:

ƙanamori

const x = (x, y) => { return x * y };

Dauka shi ɗaya