1、var、let、const
区别
共同点:都可以进行变量声明
区别一:
var 具有变量提升的机制
let 和 const 没有变量提升的机制
区别二:
var 可以多次声明同一个变量
let 和 const 不可以多次声明同一个变量
区别三:
var、let声明变量(可以再次赋值)
const声明常量(不可以再次赋值)
区别四:
var 声明的变量没有自身作用域
let、const 声明的变量有自身作用域
区别五:
var、let 声明的变量可以不赋值
const 声明的变量需要赋值
2、js
类型隐式转换
console.log(true + 1) // 2
console.log('name' + true) // nametrue
console.log(undefined + 1) // NaN 数值类型
console.log(typeof null) // object
console.log(true + null) // 1
console.log(true + undefined) // NaN
console.log(undefined + false) // NaN
console.log(null + false) // 0
console.log(true || 0) // true
console.log(true && 0) // 0
console.log(undefined && 1) // undefined
console.log(undefined || 1) // 1
console.log(null || 1) // 1
console.log(null && 0) // null
注:NaN 是数值类型,但不代表具体数值