ES6|ES6 关键字 let 和 ES5 及关键字 var 的区别解析
目录
- var 关键字
- let 关键字
- 补充
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 关键字 【ES6|ES6 关键字 let 和 ES5 及关键字 var 的区别解析】
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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- 前端——es6
- servlet|新课程教学杂志新课程教学杂志社新课程教学编辑部2022年第11期目录
- servlet|新体育杂志新体育杂志社新体育杂志社新体育编辑部2022年第8期目录
- 开源(Taurus.MVC-Java|开源:Taurus.MVC-Java 版本框架 (支持javax.servlet.*和jakarta.servlet.*双系列,内集成微服务客户端))
- C++|猿创征文|C++——类和对象4| 构造函数体赋值|初始化列表explicit关键字|匿名对象|static成员|静态成员变量|静态成员函数| static相关习题|友元
- 笔记|WebGIS前端学习之路(Vue+Leaflet地图展示)
- uni-app|uniapp加载leaflet地图
- uniapp|uniapp中引入使用leaflet地图
- eventlet 的 link 函数用法
- python3之35个关键字详解