ES6
文章平均质量分 67
Talon不会写代码
I'm just a lonely loner on a lonely road alone.
展开
-
【ES6】Babel转码器及常用Babel工具
Babel 转码器Babel 是一个广泛使用的 ES6 转码器,可以将 ES6 代码转为 ES5 代码,从而在现有环境执行。这意味着,你可以用 ES6 的方式编写程序,又不用担心现有环境是否支持。下面是一个例子。// 转码前input.map(item => item + 1);// 转码后input.map(function (item) { return item + 1...原创 2018-12-15 10:20:12 · 608 阅读 · 0 评论 -
【ES6】let命令详解
let 命令ES6 新增了 let 命令,用来声明变量。用法类似于 var,但是所声明的变量,只在 let 命令所在的代码块内有效。{ let a = 10; var b = 5;}alert(a) // Uncaught ReferenceError: a is not definedalert(b)for 循环for 循环的计数器,很合适使用 let 命...原创 2018-12-15 15:46:07 · 378 阅读 · 0 评论 -
【ES6】块级作用域
为什么需要块级作用域ES5 只有全局作用域和函数作用域,没有块级作用域,这带来很多不合理的场景:第一种场景,内层变量可能会覆盖外层变量。var tmp = new Date();function f() { console.log(tmp); if (false) { var tmp = 'hello world'; }}f(); // undefined上...原创 2018-12-15 16:35:40 · 153 阅读 · 0 评论 -
【ES6】块级作用域与函数声明
块级作用域与函数声明ES5 规定,函数只能在顶层作用域和函数作用域之中声明,不能在块级作用域声明。// 情况一if (true) { function f() {}}// 情况二try { function f() {}} catch(e) { // ...}上面两种函数声明,根据 ES5 的规定都是非法的。但是,浏览器没有遵守这个规定,为了兼容以前的旧代码,还...原创 2018-12-15 16:37:30 · 272 阅读 · 0 评论 -
【ES6】const命令
基本用法const 声明一个只读的常量。一旦声明,常量的值就不能改变。const一旦声明变量,就必须立即初始化,不能留到以后赋值。const的作用域与let命令相同:只在声明所在的块级作用域内有效。const命令声明的常量也是不提升,同样存在暂时性死区(let命令详解中有暂时性死区的解释),只能在声明的位置后面使用。const声明的常量,也与let一样不可重复声明。const PI =...原创 2018-12-15 17:03:16 · 125 阅读 · 0 评论 -
【ES6】顶层对象的属性
顶层对象的属性顶层对象,在浏览器环境指的是window对象,在 Node 指的是global对象。ES5 之中,顶层对象的属性与全局变量是等价的。window.a = 1;a // 1a = 2;window.a // 2上面代码中,顶层对象的属性赋值与全局变量的赋值,是同一件事。顶层对象的属性与全局变量挂钩,被认为是 JavaScript 语言最大的设计败笔之一。这样的设计带来...原创 2018-12-15 17:14:37 · 205 阅读 · 0 评论 -
【ES6】数组解构赋值
1. 数组的解构赋值基本用法ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。// ES5let a = 1;let b = 2;let c = 3;// ES6let [a, b, c] = [1, 2, 3]本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。下面是一些使用嵌套数组...原创 2018-12-22 16:10:18 · 554 阅读 · 0 评论 -
【ES6】对象的解构赋值
对象的解构赋值解构不仅可以用于数组(数组解构赋值),还可以用于对象。let { foo, bar } = { foo: "aaa", bar: "bbb" };foo // "aaa"bar // "bbb"对象的解构与数组的解构的区别:数组的元素是按次序排列的,变量的取值由他的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。let { bar, foo } ...原创 2018-12-22 17:22:25 · 242 阅读 · 0 评论