js变量计算-类型转换

245 阅读1分钟
  • 字符串拼接
  • ==
  • if语句和逻辑运算

字符串拼接

const a = 100 + 10 // 110
const b = 100 + '10' // '10010'
const c = true + '10'// 'true10'

== 运算符

100 == '100' //true
0 == '' //true
0 == false //true
false == '' //true
null == undefined //true

// 在做 == 比较的时候,''和0会转换成false然后再比较

const obj = {x:100}
if (obj.a == null){...}
// 相当于 if(obj.a === null || obj.a === undefined){...}

if语句和逻辑运算

  • truly变量:!!a === true的变量
  • falsely变量: !!a === false的变量
const a = 100(truly变量)
!n //false
!!n //true

const n1 = 0(falsely变量)
!n1 // true
!!n1  //false

!!null (falsely变量)
!!undefined (falsely变量)
!!NaN (falsely变量) ->不是一个数字,但是是number类型的
!!'' (falsely变量)
!!{} (truly变量)
除此之外 其他都是truly变量

我们的if()内判断的是truly变量还是falsely变量;并不是判断值的true还是flase

逻辑判断 & || ! 与或非

console.log(true && false)// false
console.log(10 && 0)//0

console.log(true || false)// true
console.log('abc' || '')// 'abc'

console.log(!false)// true
console.log(!window.abc)// true