2020前端面试系列(ES6)
前端面试系列
变量声明
let声明变量,const声明常量
var 和 let、const的区别
- 作用域
let 和 const 是块级作用域,仅在整个大括号内可见
var 只有全局作用域和函数作用域 - 变量提升
var 存在变量提升,未声明使用默认值undefined
let、const未声明会提示ReferenceError
console.log(a) //undefined
var a = 1
console.log(a)
//Uncaught ReferenceError: a is not defined
let a = 1
- 重复声明
var 允许重复声明
let、const不允许在相同作用域重复声明
let a
let a
//Uncaught SyntaxError: Identifier 'a' has already been declared
- 全局对象属性
let、const声明的全局变量不属于全局对象的属性
let a = 0
console.log(this.b) //undefiend
模板字符串
模板字符串是增强版的字符串,用反引号(`)标识,可以当作普通字符串使用,也可以用来定义多行字符。也可以结合${}实现在字符串中嵌入变量。
let a = `super
aaa`
let b = "star"
let c = `${
a}${
b}`
console.log(c)
/*
super
aaastar
*/
可以在字符串内调用函数
function fn() {
return "Hello World";
}
`foo ${
fn()}