首页 > 其他分享 >ES6 关键字 let 和 ES5 及以前关键字 var 的区别

ES6 关键字 let 和 ES5 及以前关键字 var 的区别

时间:2022-09-02 23:35:27浏览次数:87  
标签:function ES6 ES5 块级 10 作用域 关键字 let var

var

在 ES5 及以前,通过var在块级作用域中声明的变量,外边也可以访问。块级作用域就是一对{}的作用域;块级作用域可以是控制语句的作用域,也就是非函数的作用域。

function f() {
  { var x = 10; }
  console.log(x); // => 10
}

在 for 循环体中的变量 i,可以被打印出来,假如因为代码过多,不知道何时间变量重命名了,只有运行时才报错。又因为只有函数才可以创建一个块级作用域,所以,针对于上面出现的问题,就要通过 IIFE 来创建一个块级作用域。Ben Alman 将它命名为立即执行的函数表达式(IIFE):

function iife() {
  (function () {
    for (var i = 10; i > 0; i--) {}
  })();
  console.log(i); // => Uncaught ReferenceError: i is not defined
}

let

var可以穿透控制语句、条件语句这样的作用域,导致变量冲突经常发生。所以,ES6 的let就可以很好的解决我们的烦恼,这也是为什么现在推荐使用let来声明变量,而非var

function f() {
  for (var i = 10; i > 0; i--) {}
  console.log(i); // => Uncaught ReferenceError: i is not defined
}

标签:function,ES6,ES5,块级,10,作用域,关键字,let,var
From: https://www.cnblogs.com/Enziandom/p/16651664.html

相关文章

  • node38-anysc关键字
     //只能出现再异步函数中暂停异步函数得执行asyncfunctionfn(){throw'发生勒一些错误';return123;}//console.log(fn())fn().then(function(data)......
  • node38-await关键字
     asyncfunctionp1(){return'p1';}asyncfunctionp2(){return'p2';}asyncfunctionp3(){return'p3';}asyncfunctionrun(){letr......
  • 对比es6class类和构造函数
    构造函数  在原来class类这个语法糖没有出来之前我们一般会把方法挂在prototype上为了防止过多的开辟内存1//构造函数-------------------------------......
  • ES6模块化和CommonJS模块化
    我之前学习模块化的时候,曾在node中使用过,它采用的时CommonJS模块化标准,源自于JavaScript社区自发产生。CommonJS使用方法为:导入:require('模块名')模块对外共享成员使用m......
  • 关键字、常量、
    一、关键字的特点1.关键字的字母全部小写。2.常用的代码编辑器,针对关键字有特殊的颜色标记,非常直观。二、常量在程序运行过程中,其值不可以发生改变的量1.常量的分类......
  • 【小工具】es6转换成es5
     2、在项目根目录创建.babelrc文件{"presets":["es2015"],"plugins":[]}  3.1)安装babel-clinpminstall-gbabel-cli3.2)安装bab......
  • explicit关键字详解
    https://blog.csdn.net/l2563898960/article/details/97769569    ......
  • ES6面试点-WEAKMAP与MAP的区别,SET与WEAKSET的区别
    ES6面试点-WEAKMAP与MAP的区别,SET与WEAKSET的区别标签: es6  ES6引入了四种新的数据结构:映射(Map)弱映射(WeakMap)集合(Set)弱集合(WeakSet)一、Object对......
  • es6——Symbol
    1.概述ES5的对象属性名都是字符串,这容易造成属性名的冲突。比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法(mixin模式),新方法的名字就有可能与现有方法产生......
  • Java 的注释、标识符、关键字
    注释平时我们编写代码,在代码量比较少的时候,我们还可以看懂自己写的,但是当项目结构一旦复杂起来,我们就需要用到注释了。注释并不会被执行,是给我们写代码的人看的。......