我是靠谱客的博主 大气小蘑菇,这篇文章主要介绍let和const总结,现在分享给大家,希望可以做个参考。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
只在命令行所在的代码块中有效,使用let声明的变量在域解析的时候不会被提升 严格模式 'use strict' let定义变量没有变量的提升(没有预解释) console.log(a);//undefined 只声明未定义 var a=1; console.log(a); //1 console.log(a); a is not defined let a=1; console.log(a);//1 var b=12; var b=13; function b(){ console.log(b); } console.log(b);//13 b() //报错 let b=12; let b=13; function b(){ console.log(b) } console.log(b); 报错:Identifier 'b' has already been declared 注意:let定义得变量不能重复定义(不管函数还是let定义得变量都不可以得) console.log(A); 报错:A未定义 let A=10; let A=12//报错'A' has already been declared 问题:上面为什么包下面错误呢? 虽然不进行预解释,但是代码执行前上来也是先将定义得变量提前过滤一遍的,一旦 发现不合法就直接报错的,代码也不会执行的 const 定义的是静态变量,是不能修改的,且必须赋值 不赋值就会报错:Missing initializer in const declaration const g=10; g=20; 不可以修改Assignment to constant variable 注意:不可以重复声明的 const g=20;//Identifier 'g' has already declared let a=1; const a=2; //Identifier 'a' has already declared 注意:不管是动态变量还是静态变量,都是不可以重复声明的 let a=1; { const a=2; } 这样就不会报错了,里面的是私有作用域,不是同一个a 块级作用域 就是大括号,大括号包起来的都属于块级作用域 {} 是一个私有作用域,块级作用域 let a=10; if(a){ console.log(a); //报错, a is not undefined let a=12; console.log(a);若放在下面就不报错 } 注意: let oLis=document.getElementsByTagName("li"); for(var i=0;i<oLis.length;i++){ oLis[i].onclick=function(){ console.log(i); //这样输出的都是4 } } for(let i=0;i<oLis.length;i++){ oLis[i].onclick=function(){ console.log(i); //这样输出就都是正确的 } } let a=0; function fn(){ console.log(a);//报错 let a=0; } let a=0; function fn(){ console.log(a);//不报错,输出0; } 自执行函数 { let a=100; console.log(a); } let obj={}; //注意:eval将字符串转为对象的时候,一定要加上()

参考博客:https://blog.csdn.net/hdchangchang/article/details/78265351

最后

以上就是大气小蘑菇最近收集整理的关于let和const总结的全部内容,更多相关let和const总结内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(86)

评论列表共有 0 条评论

立即
投稿
返回
顶部