美文网首页码农
JS/ES6新关键字let是否在任何情况下都优于var

JS/ES6新关键字let是否在任何情况下都优于var

作者: 潜水的旱鸭子 | 来源:发表于2019-05-10 13:01 被阅读0次

一、区别

  ES6新版中增加的let有这么几大特性:
    1.不允许变量提升;
    2.同一作用域内不允许重复声明;
    3.暂时性的死区;
    4.块级作用域;

  与let相比老版本中的var声明的变量就显得比较宽松了:
    1.省略不写的时候表示全局变量;
    2.声明的变量会提升到作用域开始的位置;
    3.可以重复声明;
    4.只有全局和局部作用域,除非在闭包环境下,否则不会产生类似块级作用域的效果

二、场景举例

  一般在使用let的时候,除了使我们的语法更严格之外,还利用了块级作用域的特性,在不产生闭包环境的情况下,让要声明的变量成为私有变量,如for循环中的点击事件要访问for循环的计数器i,此时使用let声明计数器,会在for循环中产生一个块级作用域,所有在这个块级作用域中的代码段都可以访问到每次i的值

  而如果用var声明这个计数器的话,就需要一个闭包环境来实现这个操作,那么闭包环境又需要消耗大量的内存。所以在此种情况下更适合使用let



  那什么时候适合使用var而不适合用let呢,目前来看,好像还没有这种情景,几乎所有能用var实现的需求,使用let都能实现,并且代码更规范,语法更严格。而且随着前端行业的发展,ES6的全面推广也是早晚的事,let全面替换掉var也是有可能发生的事
  但是就目前的情况来看,ES6还未全面流行开来,浏览器的兼容也没有完全解决,相应的如let之类ES6中新增的关键字也存在一定的兼容隐患,正如一句话所说:

      新特性一时爽,兼容性火葬场。

三、总结

  let和var的抉择需要视情况而定,并不是所有情况下let都优于var。(如果有兼容问题,let反而会失效或报错)
  那么在项目中如何去选择呢,我认为遵循两个原则就好:
    1.用自己熟悉的
    2.根据公司或项目要求决定


个人见解,不代表官方,如有不同看法,欢迎留言交流,谢谢支持……^ _ ^

相关文章

  • 2018-09-04

    js变量和常量 JS中与变量常量声明相关的关键字有var、let以及const,其中let和const是ES6的新...

  • js 中声明常量关键字 var、let、const

    js 中声明常量的关键字:var、let、const,其中 let 和 const 是 ES6 中新增的关键字。 ...

  • JS/ES6新关键字let是否在任何情况下都优于var

    一、区别   ES6新版中增加的let有这么几大特性:    1.不允许变量提升;    2.同一作用域内不允许重...

  • javaScript中var于let区别

    ES6引入let关键字,在JS中var 与let都是用来声明变量,var没有块级作用域,let有。let因为有了块...

  • Lesson2:ES6简易入门(let、const关键字,结构赋

    1. let关键字 let的用途: 在之前写js时候,用var来声明一个变量,es6里面除了var还有其他的声明变...

  • 常量

    js中 var、 let 申明的都是变量,ES6以前约定用大写的变量名表示常量,ES6 使用 const 关键字申...

  • ES6学习笔记

    VSCode调试ES6:配置方法 一、let & const 关键字 1.1 let & var 对比 let 声...

  • ES6中let和var的区别

    let是在ES6中新引入的关键字,用来改进var带来的各种问题。let和var相比,大致有下面几个方面的不同: 作...

  • javascript碎片知识000

    const let var 3者的区别。 const 和 let 为es6新增的定义变量的关键字。 var存在...

  • let var const的区别

    1. ES6 var:在ES6出来之前,声明变量都只能使用var关键字 let和const都是ES6出来的新语法 ...

网友评论

    本文标题:JS/ES6新关键字let是否在任何情况下都优于var

    本文链接:https://www.haomeiwen.com/subject/jkoooqtx.html