es6及原生js一些总结

'use strict';

if(true) {
  console.log(x); // ReferenceError
  let x = 'hello';
}
  • 上面代码如果使用var替代letconsole.log那一行就不会报错,而是会输出undefined,因为变量声明提升到代码块的头部。这违反了变量先声明后使用的原则
  • letconst之间,建议优先使用const,尤其是在全局环境,不应该设置变量,只应设置常量。

    const优于let有几个原因。

  1. 一个是const可以提醒阅读程序的人,这个变量不应该改变;

  2. 另一个是const比较符合函数式编程思想,运算不改变值,只是新建值,而且这样也有利于将来的分布式运算;

  3. 最后一个原因是 JavaScript 编译器会对const进行优化,所以多使用const,有利于提供程序的运行效率,也就是说letconst的本质区别,其实是编译器内部的处理不同。

 

posted @ 2017-02-27 11:00  Caraxiong  阅读(340)  评论(0编辑  收藏  举报