Skip to content

何为变量提升?

var 和 let const 的区别

  • var 是 ES5 语法,let const 是 ES6 语法;var 有变量提升
  • var 和 let 是变量,可修改;const 是常量,不可修改(对象属性可以修改)
  • let const 有块级作用域,var 没有
js
// 变量提升 ES5
console.log(a); // undefined
var a = 100;
// 类似
var c;
console.log(c); // undefined
c = 30;
// 为了区别 var
console.log(b); // Uncaught ReferenceError: Cannot access 'b' before initialization
let b = 20;
js
for (var i = 0; i < 10; i++) {
  var j = i + 1;
}
console.log(i, j); // 10 10
// 块级作用域
for (let i = 0; i < 10; i++) {
  let j = i + 1;
}
console.log(i, j); // Uncaught ReferenceError: i is not defined

typeof 能判断哪些类型

  • undefined string number boolean symbol
  • object(注意,typeof null === 'object')
  • function

列举强制类型转换和隐士类型转换

  • 强制:parseInt parseFloat toString 等
  • 隐式:if、逻辑运算、==、+拼接字符串

基于 MIT 许可发布