es6学习1

来源:互联网 发布:三菱fx3ga编程手册 编辑:程序博客网 时间:2024/06/02 05:55
由于最近在学习node.js的koa框架,里面涉及到es6的语法,所以就来学习学习es6,通过阮一峰的 《ECMAScript6入门》能提高自己的编程思想
一、es6
  1. 在我看来,es6就是将js的语言简洁化
  2. Babel转码器是一个广泛使用的 ES6 转码器,可以将 ES6 代码转为 ES5 代码,从而在现有环境执行。
二、let和var
  1.let也是用来什么变量,但只在所在代码块内有效
  2.var在一个函数体内,而不是我们其他语言理解的大括号{ }内。
  3.ES6明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错。这在语法上,称为“暂时性死区”(temporal dead zone,简称 TDZ)
  4.let不允许在相同作用域内,重复声明同一个变量。
  5.ES5 只有全局作用域和函数作用域,没有块级作用域,这带来很多不合理的场景。
  6.块级作用域的出现,实际上使得获得广泛应用的立即执行函数表达式(IIFE)不再必要了。
// IIFE 写法
(function () {
var tmp = ...;
...
}());

// 块级作用域写法
{
let tmp = ...;
...
}
7.块级作用域与函数声明
ES5 规定,函数只能在顶层作用域和函数作用域之中声明,不能在块级作用域声明。
ES6 规定,块级作用域之中,函数声明语句的行为类似于let,在块级作用域之外不可引用。
二、do表达式
  现在有个提案,块级作用域可以变为表达式,也就是说可以返回值,办法就是在块级作用域之前加上do,使它变为do表达式。
let x = do {
let t = f();
t * t + 1;
};
上面代码中,变量x会得到整个块级作用域的返回值。
三、const
  声明一个只读的常量。一旦声明,常量的值就不能改变。
  对于const来说,只声明不赋值,就会报错。
  const的作用域与let命令相同:只在声明所在的块级作用域内有效。
四、ES6 声明变量的六种方法
  1.var
  2.function
  3.let
  4.const
  5.import
  6.class
原创粉丝点击