Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【20170330】ES6语法入门 #87

Closed
zhongxia245 opened this issue Mar 30, 2017 · 1 comment
Closed

【20170330】ES6语法入门 #87

zhongxia245 opened this issue Mar 30, 2017 · 1 comment

Comments

@zhongxia245
Copy link
Owner

zhongxia245 commented Mar 30, 2017

学习的教程

  1. 阮一峰-《ECMAScript 6 入门》

0. ECMAScript 和 JavaScript 的区别? ES2015 和 ES6 的区别?

  • ECMAScript 和 JavaScript 的区别?

ECMAScript 是一个规范标准, JavaScript 是这个规范的具体实现。 同样 ECMAScript 规范的还有 ActionScript 等

  • ES2015 和 ES6 的区别?

ECMAScript 的版本是从 ES1 ,ES2 .... ES5, ES6

由于ES6 新增了大量的新规范,因此没有办法一次性全部集成进ES6的规范标准里面,理论上是应该 ES6.1 ,ES6.2 。。。。

但是规范是允许任何人任何时间申请加入新的内容(当然需要通过审核),因此W3C协会开会讨论后,改成每年6月份,定稿之前通过审核新增的内容。

因此有了 ES2015, ES2016,ES2017 。。。。 等等

所以 ES2015 其实是 ES6 中的一个小版本。 ES6 代表ES5 后的一个大版本

1. 如何对数组进行去重?

ES6提供了一个新的数据结构 Set, 类似数组,只是每个值都是唯一的

let arr = [1,2,3,1,2,3,1,1,1,2,3,4,5,6]
arr = [...new Set(arr)]

console.log(arr)     // [1,2,3,4,5,6]
@zhongxia245
Copy link
Owner Author

zhongxia245 commented Mar 30, 2017

2. var let const 的区别?

var 定义的变量作用域是全局的,会存在变量提升
let, const 定义的变量是局部的( {} 里面的作用域),不存在变量提升(因此变量的使用必须先定义才能用)

console.log(name)     //undefined
var name

console.log(age)    //Uncaught ReferenceError: age is not defined
let age

3. const 声明的变量是否可以改变值?

可以,const 声明一个对象,保证的是对象的地址不变,不能重新引用其他对象,但是值是可以改变的。

const obj = {name:'zhongxia',age:18}

obj.age = 19

console.log(obj)    // Object {name: "zhongxia", age: 19}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant