ECMAScript 6 - ECMAScript 2015

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 的浏览器:
在这里插入图片描述

JavaScript let

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

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

const 语句允许您声明常量(具有常量值的 JavaScript 变量)。
常量类似于 let 变量,但不能更改值。

var x = 10;
// Here x is 10
{ 
  const x = 2;
  // Here x is 2
}
// Here x is 10
指数运算符

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

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

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

var x = 5;
var z = Math.pow(x,2);   // 结果是 25
默认参数值

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

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

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

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

var numbers = [4, 9, 16, 25, 29];
var first = numbers.find(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}

请注意此函数接受 3 个参数:

项目值
项目索引
数组本身
Array.findIndex()

findIndex() 方法返回通过测试函数的第一个数组元素的索引。
此例确定大于 18 的第一个元素的索引:

var numbers = [4, 9, 16, 25, 29];
var first = numbers.findIndex(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}

请注意此函数接受 3 个参数:

项目值
项目索引
数组本身
新的数字属性

ES6 将以下属性添加到 Number 对象:

EPSILON
MIN_SAFE_INTEGER
MAX_SAFE_INTEGER
var x = Number.EPSILON;
var x = Number.MIN_SAFE_INTEGER;
var x = Number.MAX_SAFE_INTEGER;
新的数字方法

ES6 为 Number 对象添加了 2 个新方法:

Number.isInteger()
Number.isSafeInteger()
Number.isInteger() 方法

如果参数是整数,则 Number.isInteger() 方法返回 true。

Number.isInteger(10);        // 返回 true
Number.isInteger(10.5);      // 返回 false
Number.isSafeInteger() 方法

安全整数是可以精确表示为双精度数的整数。

如果参数是安全整数,则 Number.isSafeInteger() 方法返回 true。

Number.isSafeInteger(10);    // 返回 true
Number.isSafeInteger(12345678901234567890);  // 返回 false

注:Math.pow(2,53)是js中可能取到的最大值
JS中只有一种类型数,即64位(1bit 的符号位,11bits 的指数部分 ,以及52bits 的小数部分)双精度浮点数,当整数数值过大时,就会发生精度丢失。
所谓安全整数即能够唯一确定的数字,即能够使用64位二进制数唯一确定的整数。考虑253,转换成对应表示方式后其小数部分总共包括53位,发生了精度丢失,所以在JS中无法区别253与2^53+1;
安全整数与JS是否能够正确进行运算关系密切,当运算数与运算结果都处于安全整数的范围内时,才能保证JS运算结果正确

安全整数指的是从 -(253 - 1) 到 +(253 - 1) 的所有整数。
这是安全的:9007199254740991。这是不安全的:9007199254740992。

新的全局方法

ES6 还增加了 2 个新的全局数字方法:

isFinite()
isNaN()
isFinite() 方法

如果参数为 Infinity 或 NaN,则全局 isFinite() 方法返回 false。
否则返回 true:

isFinite(10/0);       // 返回 false
isFinite(10/1);       // 返回 true
isNaN() 方法

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

isNaN("Hello");       // 返回 true
箭头函数(Arrow Function)

箭头函数允许使用简短的语法来编写函数表达式。
您不需要 function 关键字、return 关键字以及花括号。

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

箭头功能没有自己的 this。它们不适合定义对象方法。
箭头功能未被提升。它们必须在使用前进行定义。
使用 const 比使用 var 更安全,因为函数表达式始终是常量值。
如果函数是单个语句,则只能省略 return 关键字和花括号。因此,保留它们可能是一个好习惯:

const x = (x, y) => { return x * y };
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值