一个键盘码代码,两只黄鹂名翠柳

ES6简介

ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。ECMAScript 和 JavaScript 的关系一个常见的问题是,ECMAScript 和 JavaScript 到底是什么关系?要讲清楚这个问题,需要回顾历史。1996 年 11 月,JavaScript 的创造者 Netscape 公司,决定将 JavaScript 提交给标准化组织 ECMA,希望这种语言能够成为国际标准。次年,ECMA 发布 262 号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为 ECMAScript,这个版本就是 1.0 版。该标准从一开始就是针对 Java 查看全文

ES6的部署与使用

部署进度各大浏览器的最新版本,对 ES6 的支持可以查看kangax.github.io/compat-table/es6/。随着时间的推移,支持度已经越来越高了,超过 90%的 ES6 语法特性都实现了。Node 是 JavaScript 的服务器运行环境(runtime)。它对 ES6 的支持度更高。除了那些默认打开的功能,还有一些语法功能已经实现了,但是默认没有打开。使用下面的命令,可以查看 Node 已经实现的 ES6 特性。// Linux & Mac $ node --v8-options | grep harmony// Windows $ node --v8-options | findstr&nb 查看全文

es6中的let 命令用法

let 命令基本用法ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。{   let a = 10;   var b = 1; } a // ReferenceError: a is not defined. b // 1上面代码在代码块之中,分别用let和var声明了两个变量。然后在代码块之外调用这两个变量,结果let声明的变量报错,var声明的变量返回了正确的值。这表明,let声明的变量只在它所在的代码块有效。for循环的计数器,就很合适使用let命令。for (let i  查看全文

ES6块级作用域

ES6 的块级作用域let实际上为 JavaScript 新增了块级作用域。function f1() {   let n = 5;   if (true) {     let n = 10; } console.log(n); // 5}上面的函数有两个代码块,都声明了变量n,运行后输出 5。这表示外层代码块不受内层代码块的影响。如果两次都使用var定义变量n,最后输出的值才是 10。ES6 允许块级作用域的任意嵌套。{{{{{let insane = 'Hello World'}}}}};上面代 查看全文

ES6 const 命令

基本用法const声明一个只读的常量。一旦声明,常量的值就不能改变。const PI = 3.1415; PI // 3.1415 PI = 3; // TypeError: Assignment to constant variable.上面代码表明改变常量的值会报错。const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值。const foo; // SyntaxError: Missing initializer in const declaration上面代码表示,对于const来说,只声明不赋值,就会报错。c 查看全文

ES6 顶层对象的属性

顶层对象的属性 顶层对象,在浏览器环境指的是window对象,在 Node 指的是global对象。ES5 之中,顶层对象的属性与全局变量是等价的。window.a = 1; a // 1 a = 2; window.a // 2上面代码中,顶层对象的属性赋值与全局变量的赋值,是同一件事。顶层对象的属性与全局变量挂钩,被认为是 JavaScript 语言最大的设计败笔之一。这样的设计带来了几个很大的问题,首先是没法在编译时就报出变量未声明的错误,只有运行时才能知道(因为全局变量可能是顶层对象的属性创造的,而属性的创造是动态的);其次,程序员很容易不知不觉地就创建了全局变量(比如打字出错);最后,顶层对象的属性是到处可以读写的,这非常不利于模块化编程。另一方面,window 查看全文

ES6 global 对象

global 对象ES5 的顶层对象,本身也是一个问题,因为它在各种实现里面是不统一的。浏览器里面,顶层对象是window,但 Node 和 Web Worker 没有window。浏览器和 Web Worker 里面,self也指向顶层对象,但是 Node 没有self。Node 里面,顶层对象是global,但其他环境都不支持。同一段代码为了能够在各种环境,都能取到顶层对象,现在一般是使用this变量,但是有局限性。全局环境中,this会返回顶层对象。但是,Node 模块和 ES6 模块中,this返回的是当前模块。函数里面的this,如果函数不是作为对象的方法运行,而是单纯作为函数运行,this会指向顶层对象。但是,严格模式下,这时this会返回undefined。不管是严格模式,还是普通模式,new Function('return 查看全文

ES6 数组的解构赋值

数组的解构赋值基本用法ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。以前,为变量赋值,只能直接指定值。let a = 1; let b = 2; let c = 3;ES6 允许写成下面这样。let [a, b, c] = [1, 2, 3];上面代码表示,可以从数组中提取值,按照对应位置,对变量赋值。本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。下面是一些使用嵌套数组进行解构的例子。let [foo, [[bar], baz]] = [1, 查看全文
加载更多
其它 ( 244 )
python ( 199 )
java ( 174 )
算法 ( 136 )
linux ( 112 )
mysql ( 82 )
js ( 82 )
android ( 56 )
c/c++ ( 47 )
信息技术 ( 41 )
php ( 41 )
nginx ( 23 )
css ( 23 )
shell ( 22 )
教育 ( 21 )
操作系统 ( 19 )
html ( 19 )
设计模式 ( 18 )
node ( 14 )
tcp/udp ( 11 )
hive ( 11 )
es6 ( 10 )
es ( 10 )
编码 ( 9 )
redis ( 8 )
unix ( 5 )
SpringBoot ( 5 )
数据库 ( 5 )
hadhoop ( 4 )