查看“Let”的源代码
←
Let
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看和复制此页面的源代码。
let 有几个特点: === 1.变量不能重复声明 === <syntaxhighlight lang="javascript"> <script> let name = '张三'; let name = '李四'; </script> </syntaxhighlight>运行会在控制台报错 这一点和 var 不同<syntaxhighlight lang="javascript"> <script> var name = '张三'; var name = '李四'; </script> </syntaxhighlight>上面使用 var 的代码就可以正常运行。 === 2.块级作用域 全局,函数,eval === let 声明的变量只在代码块里有效,出代码块就无效了,就读取不到了<syntaxhighlight lang="javascript"> <script> { let greeting = 'hello'; } console.log(greeting); </script> </syntaxhighlight>上面代码运行就不会输出,控制台会报错。如果换成 var:<syntaxhighlight lang="javascript"> <script> { var greeting = 'hello'; } console.log(greeting); </script> </syntaxhighlight>就会正常输出,这是因为 var 没有块级作用域的概念,var 声明的属性会被添加到全局的属性 window 中,所以在花括号外就能读取到它,但 let 声明的变量就不行了,因为有块级作用域的概念,就只能在代码块里有效,所以在块外就读取不到了。 还有 if else while for,这些也都是块级作用域。 '''<big>坑:做这个实验可别用什么 name 这种常见变量名,因为很可能已经被浏览器或者 Live Server 之类的用了</big>''' === 3.不存在变量提升 === 变量提升是:代码在执行之前,会先收集函数和 var 声明的变量,对于 var 声明的变量还会赋一个初始值 undefined<syntaxhighlight lang="javascript"> <script> //在变量声明语句前,就可以输出变量 console.log(greeting); var greeting = 'hello'; </script> </syntaxhighlight>上面的代码会在控制台输出 undefined,这是因为存在变量提升,上面的实际执行逻辑就像:<syntaxhighlight lang="javascript"> <script> var greeting; //在变量声明语句前,就可以输出变量 console.log(greeting); var greeting = 'hello'; </script> </syntaxhighlight>如果使用 let 声明,就会报错,因为 let 声明的变量不存在变量提升:<syntaxhighlight lang="javascript"> <script> console.log(greeting); let greeting = 'hello'; </script> </syntaxhighlight> === 4.不影响作用域链 === <syntaxhighlight lang="javascript"> <script> { let greeting = 'hello'; function fn() { console.log(greeting); } fn(); } </script> </syntaxhighlight>正常运行,fn 函数作用域里没有 greeting,就会向上一层找 greeting 这个变量,然后就找到了,这就是作用域链的效果
返回至
Let
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
Spring Boot 2 零基础入门
Spring Cloud
Spring Boot
设计模式之禅
VUE
Vuex
Maven
算法
技能树
Wireshark
IntelliJ IDEA
ElasticSearch
VirtualBox
软考
正则表达式
程序员精讲
软件设计师精讲
初级程序员 历年真题
C
SQL
Java
FFmpeg
Redis
Kafka
MySQL
Spring
Docker
JMeter
Apache
Linux
Windows
Git
ZooKeeper
设计模式
Python
MyBatis
软件
数学
PHP
IntelliJ IDEA
CS基础知识
网络
项目
未分类
MediaWiki
镜像
问题
健身
国债
英语
烹饪
常见术语
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息