跳至主要內容

本章练习

GuangBo...大约 2 分钟HTMLWebES6习题练习题

单选题

一、单选题

  1. 下面有关var、let 和const 的说法中,不正确的是()
    A. let或const声明的变量都不存在变量提升
    B. var声明的变量没有块级作用域
    C. var声明的变量也存在暂时性死区
    D. const声明的常量不允许被重新赋值
答案

分析:
C中,var不存在暂时性死区

  1. 下面有关let和const的说法中,正确的是( )
    A. 在实际开发中,优先使用let,而不是const
    B. let声明的变量,不会成为window的属性
    C. 如果const声明的变量是一个对象,那么对象属性的值是不允许被修改的
    D. 如果const声明的变量是一个对象,此时允许将另一个对象賦值给这个变量
答案

分析:
A中,在真正的开发中,优先使用const,而不是let
C中,对象属性的值是可以被修改的
D中,不允许给const声明的常量重新赋值

  1. 下面有一段代码,其运行结果是()
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才引入的。

上次编辑于:
贡献者: shaoguangbo
评论
  • 按正序
  • 按倒序
  • 按热度