第一章 块级作用域绑定 var声明及变量提升(Hoisting)机制 通过关键字var声明的变量,都会被当成在当前作用域顶部声明的变量。 块级声明 块级作用域存在于: 函数内部 块中(用大括号{}分隔) 用let来声明变量,就可以把变量的作用域限制在当前代码块中。let声明不会被提升,所以通常将le ...
分类:
其他好文 时间:
2019-06-27 16:16:17
阅读次数:
80
let 用来声明变量 没有变量提升; 有块级作用域(一对大括号就是一个程序块,在大括号声明的变量出了括号就不能用了); 不能重复声明变量。 const 一旦赋值就不能改变的量就是常量 没有常量提升; 有块级作用域; 能用常量就用常量,因为常量速度更快。 let与var的区别: var和let都能声明 ...
分类:
其他好文 时间:
2019-06-19 20:03:05
阅读次数:
81
函数的作用域 在JavaScript中使用的是函数作用域,变量在声明它们的函数体以及这个函数体嵌套的任意函数体都是有定义的 ES6标准中的作用域 为什么需要块级作用域 全局作用域和函数作用域,没有块级作用域,容易出现下列问题: 1) 变量提升导致内层变量可能会覆盖外层变量 var i = 5; va ...
分类:
Web程序 时间:
2019-06-16 12:03:14
阅读次数:
158
今天第一次遇到const定义的变量,查阅了相关资料整理了这篇文章。主要内容是:js中三种定义变量的方式const, var, let的区别。 1.const定义的变量不可以修改,而且必须初始化。 2.var定义的变量可以修改,如果不初始化会输出undefined,不会报错。 3.let是块级作用域, ...
分类:
Web程序 时间:
2019-06-13 10:29:40
阅读次数:
114
一、变量提升 var 存在变量提升,而 let 不存在变量提升,所以用 let 定义的变量一定要在声明后再使用,否则会报错。 var let 二、作用域 var:只有全局作用域和函数作用域概念,没有块级作用域的概念。 let:只有块级作用域的概念 ,由 { } 包括起来,if语句和for语句里面的{ ...
分类:
其他好文 时间:
2019-06-12 00:58:52
阅读次数:
95
ES5 只有全局作用域和函数作用域,没有块级作用域,这带来很多不合理的场景。 ES6中增加了块级作用域的概念, let 命令1. let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。 { let a =10; var b= 8;} console.lo ...
分类:
其他好文 时间:
2019-05-25 17:05:43
阅读次数:
100
1、作用域 块级作用域 let 只在函数内部自己的作用域内有效 全局作用域 var 函数作用域 找不到作用域抛出ReferenceError 变量有了则抛出 TypeError 先声明后赋值 函数提升 变量提升 函数优先,函数声明提升在普通变量之前 函数表达式不会提升 闭包:当函数可以记住并访问所在 ...
分类:
Web程序 时间:
2019-05-17 15:18:06
阅读次数:
141
es5 声明变量 在JS的预编译阶段,JS引擎会将上面的函数修改如下: 因此,ES6引入了块级作用域,强化对变量生命周期的控制,块级作用域:声明在指定块作用域内的变量不能被该作用域之外来访问 let 用法与 var 相同,但可以把变量的作用域限制在当前代码块,变量声明不会被提升 同一作用域内不能用 ...
分类:
其他好文 时间:
2019-05-16 13:53:34
阅读次数:
134
目录 代码规范 + 命名规范 + 变量规范 + 注释规范 + 空格规范 + 换行规范 作用域 + 全局变量 + 局部变量 + 块级作用域 + 作用域链 预解析 + 什么是预解析 + 变量提升 此篇木有脑图,嘻嘻 代码规范 命名规范 变量、函数的命名必须要有意义 变量一般用名词 函数一般用动词 变量规 ...
分类:
Web程序 时间:
2019-05-13 23:25:20
阅读次数:
174