ES6 关键字 let 和 ES5 及关键字 var 的区别解析

 更新时间:2022年09月05日 16:51:05   作者:Enziandom  
var可以穿透控制语句、条件语句这样的作用域,导致变量冲突经常发生,这篇文章主要介绍了ES6 关键字 let 和 ES5 及关键字 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
}

补充

如果不给 IIFE 函数加上分号,启用格式化代码之后可能导致两个 IIFE 函数连在一起:

(function () {
  // ...
})()(function () {
  // ...
})();

可以通过!void来避免:

!(function () {
  // ...
})()

void (function () {
  // ...
})()

到此这篇关于ES6 关键字 let 和 ES5 及以前关键字 var 的区别的文章就介绍到这了,更多相关ES6 关键字 let 和 ES5内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Javascript常用小技巧汇总

    Javascript常用小技巧汇总

    这篇文章主要介绍了Javascript常用小技巧,实例汇总了javascript运算符、表达式及遍历等常用技巧,需要的朋友可以参考下
    2015-06-06
  • javascript每日必学之循环

    javascript每日必学之循环

    javascript每日必学之循环,本文的主要内容就是循环,死循环时进行bug调式,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • Node.js模拟浏览器文件上传示例

    Node.js模拟浏览器文件上传示例

    这篇文章主要介绍了Node.js模拟浏览器文件上传的实现代码,需要的朋友可以参考下
    2014-03-03
  • 微信小程序 行的删除和增加操作实现详解

    微信小程序 行的删除和增加操作实现详解

    这篇文章主要介绍了微信小程序 行的删除和增加操作实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • bootstrap里bootstrap动态加载下拉框的实例讲解

    bootstrap里bootstrap动态加载下拉框的实例讲解

    今天小编就为大家分享一篇bootstrap里bootstrap动态加载下拉框的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • js使用html2canvas实现屏幕截取的示例代码

    js使用html2canvas实现屏幕截取的示例代码

    这篇文章主要介绍了js使用html2canvas实现屏幕截取的示例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • 通过实例解析JavaScript for in及for of区别

    通过实例解析JavaScript for in及for of区别

    这篇文章主要介绍了通过实例解析JavaScript for in及for of区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • javascript实现图片轮换动作方法

    javascript实现图片轮换动作方法

    这篇文章主要介绍了javascript实现图片轮换动作方法,文章通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 防止Layui form表单重复提交的实现方法

    防止Layui form表单重复提交的实现方法

    今天小编就为大家分享一篇防止Layui form表单重复提交的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • 关于加快微信小程序开发的一些小建议

    关于加快微信小程序开发的一些小建议

    微信小程序是一种全新的连接用户与服务的方式,下面这篇文章主要给大家介绍了关于加快微信小程序开发的一些小建议,需要的朋友可以参考下
    2021-05-05

最新评论