本章练习
...大约 2 分钟
单选题
一、单选题
- 下面有关var、let 和const 的说法中,不正确的是()
A. let或const声明的变量都不存在变量提升
B. var声明的变量没有块级作用域
C. var声明的变量也存在暂时性死区
D. const声明的常量不允许被重新赋值
答案
分析:
C中,var不存在暂时性死区
- 下面有关let和const的说法中,正确的是( )
A. 在实际开发中,优先使用let,而不是const
B. let声明的变量,不会成为window的属性
C. 如果const声明的变量是一个对象,那么对象属性的值是不允许被修改的
D. 如果const声明的变量是一个对象,此时允许将另一个对象賦值给这个变量
答案
分析:
A中,在真正的开发中,优先使用const,而不是let
C中,对象属性的值是可以被修改的
D中,不允许给const声明的常量重新赋值
- 下面有一段代码,其运行结果是()
function getVal() {
const val = 5
return val
}
let myVal = getVal()
myVal += 1
console.log(myVal)
A. 5 B. 6 C. 7 D. 报错
答案
B
分析:
val仅仅是getValue()内部的一个常量而已,它不会影响myVal的类型。
问答题
什么是变量提升?什么是暂时性死区?ES5中是否存在暂时性死区的说法?(前端面试题)
答案
(1)变量提升:指的是变量可以在声明之前被使用,被移动到它所在的作用域顶端,其值为undefined。
(2)暂时性死区:指的是从当前作用域的开始,到使用let或const声明变量之间,这一个范围就叫做暂时性死区。
(3)ES5中不存在暂时性死区,暂时性死区是随着ES6的let和const才引入的。
