1. 字符串拼接
let a = 100 + 10 // 100
let b = 100 + '10' // '10010'
let c = true + '10' // 'true10'
2. ==运算符
- ==会发生类型的隐式转换
- 除了 == null 之外,其他都一律使用 === 进行判断
const obj = { x: 100 }
if (obj.a == null ) {}
// 相当于
// if (obj.a === null || obj.a === undefined) {}
3. if语句和逻辑运算
- truely变量:!!a === true(双非运算过后为true的变量)
- falsely变量: !!a === false(双非运算过后为false的变量)
除以下变量为falsely变量以外,其它都是truely变量
!!0 === false
!!NaN === false
!!null === false
!!undefined === false
!!false === false
- if语句中truely和falsely的运用
// truely变量
const a = true
if (a) {
// ...
}
const b = 100
if (b) {
// ...
}
// falsely变量
const c = ''
if (c) {
// ...
}
let d
if (d) {
//
}
- 逻辑运算中的truely与falsely
console.log(10 && 0) // 0 因为!!10为true,会判断第二个值所以返回0
console.log('' || 'abc') // 'abc' || 返回的是双非运算为true的值
console.log(!window.abc) // true
网友评论