js运算

63 阅读1分钟
一,对象运算
  • 对象运算参与运算会先调用对象的原型方法valueOf得到原始值,然后再调用toString方法得到原始值。若2个方法都得不到原始值就会报类型错误。对象无法转为原始类型进行运算
let object = {
    valueOf:(){
        return 666
    },
    toString:(){
        return '666'
    }
}
console.log(object+1) //667
console.log(object+'1') //'667'
二,显示类型转化
  • 通过代码明确指定类型转化
let num = Number('666')

let bool = Boolean('666')

let parseInt = parseInt('666')
let parseFloat = parseFloat('666')

let jsonString = JSON.stringify({ s: '666' })

let string = 666 + '' //没有触发额外的隐式类型转换。

let number = 666
let templateString = `${number}`
隐式类型转化
  • JavaScript引擎会自动将数据类型转为适合当前操作的类型
let string = 666 + '666'

let equal = '666' == 666

let number = true + 666 // true会被转化为1

/*falsy值(undefined、null、NaN、0、fale、'')*/
if(falsy){/*代码块*/}

/*undefined-->NaN、null->0*/
let number = undefined + 666 //NaN
let number = null + 666 //666