ES6最重要的3个改变:let、const、箭头

ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScriptJScript,但实际上后两者是ECMA-262标准的实现和扩展。

let是学习es6第一个需要理解的关键字。

let

  1. let 使用let声明的变量,没有变量提升
    使用let声明的变量,有块级作用域
for(let i=0;i<5;i++){
}
console.log(i);

这段代码会输出错误,因为let声明的i只在for循环中生效。

  1. let不能重复声明变量。
let c=10;
let c=20;

这段代码会报错,说c已经被declared。

  1. let有暂时性死区。
var e= 100;
function fun(){
    e = 200;
    let e;
    console.log(e);
}
fun();

这段代码运行会报错,提示e没有定义。
因为使用了let后,全局变量不在影响此块内的变量。使用let声明的变量不受外部同名变量的影响。

总结:let比var要严格,要好用。


const

在js没有常量的概念时,程序员常用全大写的单词表示常量。但这仅是程序员的约定,编译器并没有对其做任何处理。
如:
var PI = 3.14;

  1. es6中使用const关键字来定义常量。
const PI2 = 3.14;
PI2 = 3.15;

运行会报错: Assignment to constant variable.

  1. 一旦声明const,必须立即赋值。
    const p2;
    这句话运行会报错: Missing initializer in const declaration

箭头函数

function fun(){
    return 10;
}

var foo = ()=>10;

我们可以把上面的第一个函数改写成第二个函数这样的形式,在代码上简单了很多。
箭头函数的小括号也是可以省略的,但省略后可读性差。

箭头函数作用域

箭头函数能保留当前的作用域,使用箭头函数声明的函数,其作用域为声明时所在的位置(作用域)。
箭头函数没有自己的作用域,其作用域来自声明时所在的作用域。

箭头函数tips

箭头函数不能使用new
箭头函数不能使用arguments

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • let 和 const 命令 let 命令 块级作用域 const 命令 顶层对象的属性 gl...
    安小明阅读 4,529评论 0 0
  • let 命令 块级作用域 const 命令 顶层对象的属性 global 对象 let 命令 基本用法 ES6 新...
    嘉奇呦_nice阅读 5,530评论 0 2
  • let 命令 块级作用域 const 命令 顶层对象的属性 global 对象 let 命令 基本用法 ES6 新...
    卞卞村长L阅读 3,733评论 0 0
  • 本文属个人笔记,不做详解,仅供参考! let命令 基本用法 ES6 新增了let命令,用来声明变量。它的用法类似于...
    R_yan阅读 29,201评论 6 18
  • 【咏荷塘飞鹭】 凯利·麦格尼格尔教授(Kelly McGonigal,Ph.D.)在《在自控力:和压力做朋友》一书...
    士儿阅读 2,880评论 0 0