一、声明变量 (块级作用域) 1.let : 1) 没有预编译,不存在变量提升, 在代码块内,只要let定义变量,在之前使用,都会报错。 2) 同一个作用域,不能重复定义变量 3) for循环:里面是父级作用域 2.const:常量,不可以修改。特性和let相同 1)定义完变量,必须有值,不能后赋值 ...
分类:
其他好文 时间:
2018-08-22 16:47:45
阅读次数:
194
var i = 2, x = 5;var fn = function (x) { x += 3; return function (y) { console.log((x++) + y + (--i)); }};var f = fn(1);f(2);fn(3)(4);f(5); 答案:f(2) => ...
分类:
Web程序 时间:
2018-08-19 23:19:14
阅读次数:
213
变量: 变量的声明和赋值; java常用数据类型; 数据类型的使用; 标识符的命名规则;赋值运算符:算术运算符: 运算符优先级; 三目运算符;类型转换: 自动类型转换; 类型提升规则; 强制类型转换;标识符关键字boolean类型关系运算符结构语句: 条件语句: if条件结构; 多重if结构; sw ...
分类:
编程语言 时间:
2018-08-17 19:09:27
阅读次数:
208
基本语法 在代码块中声明了a,b。然后a is not defined.这是因为let命令只在对应的代码块中有效,我们在外部去引用它,就会报错。这就是let的块级作用域的效果,如果不太清楚什么是块级作用域。我们来看下面的例子。 i在for循环中定义的是全局变量。我们在调用函数时。函数内部的i引用的是 ...
分类:
其他好文 时间:
2018-08-14 11:33:29
阅读次数:
165
1. JS作用域 1.1 全局作用域和局部作用域 函数外面声明的就是 全局作用域 函数内是局部作用域 全局变量可以直接在函数内修改和使用 变量,使用var是声明,没有var是使用变量。 如果在函数内使用var来声明变量,在函数内会覆盖同名的全局变量 1.2 变量提升 在变量声明之前 去使用变量 会得 ...
分类:
编程语言 时间:
2018-08-12 22:49:47
阅读次数:
251
Let 只在 let 命令所在的代码块内有效,在外就会报错 Let 是块级作用域,函数内部使用let定义后,对函数外部无影响 Let/const 不存在变量提升,使用前一定要声明后,在使用,否则会报错,都不可以重复声明 const 变量一旦声明,常量的值就不能改变,就必须立即初始化,不能留到最后赋值 ...
分类:
Web程序 时间:
2018-08-09 14:03:48
阅读次数:
182
ES6常用知识,职场足用! 1.变量声明const和let 在ES6之前,我们都是用var关键字声明变量。无论声明在何处,都会被视为声明在函数的最顶部(不在函数内即在全局作用域的最顶部)。这就是函数变量提升例如: function aa() { if(flag) { var test = 'hell ...
分类:
其他好文 时间:
2018-08-07 23:54:34
阅读次数:
262
let 命令 let不存在变量提升提升 let不允许重复声明 let不允许在相同作用域内重复声明同一个变量 const命令 const用于声明常量,并且该常量那个是只读常量,一旦声明该常量就不能被更改 并且const只声明,不赋值也会报错。 const变量和let一样只能在声明之后使用,并且命令生命 ...
分类:
其他好文 时间:
2018-08-07 12:59:40
阅读次数:
164
同样是提升 ,那么函数提升在前还是变量提升在前,又或者是按照代码顺序提升? 同样是提升 ,那么函数提升在前还是变量提升在前,又或者是按照代码顺序提升? 你不知道的JavaScript上卷中第40页提到 函数声明是优于变量提升的,不过我个人还有另一种看法。 你不知道的JavaScript上卷中第40页 ...
分类:
其他好文 时间:
2018-08-04 11:41:32
阅读次数:
154
一、let 和 constlet 声明变量,只在所在的块区有效,不存在变量提升;var 存在变 量提升const 声明常量,只在所在块区有效 二、变量的解构赋值1.数组的解构赋值let [a, b, c] = [1, 2, 3];// a=1;b=2;c=3 2.对象的解构赋值let { foo, ...
分类:
其他好文 时间:
2018-07-29 11:44:56
阅读次数:
196