Number()和Boolean()

2019-05-17  本文已影响0人  Mr君

Number()

规则:

Number(true) // 1
Number(false) // 0
Number(undefined) // NaN
Number(null) // 0
Number(0111) // 73
Number(0x111) // 273
Number('111') // 111
Number('') // 0
Number('aaa') // NaN
Number({}) // NaN

将值转换为相应的基本类型值

  1. 先检查该值是否有 valueOf() 方法。如果有并且返回基本类型值,就使用该值进行强制类型转换。
  2. 如果没有 valueOf()就使用 toString()的返回值(如果存在)来进行强制类型转换。
  3. 如果 valueOf()toString() 均不返回基本类型值,会产生 TypeError 错误。
var a = {
  valueOf: function(){
    return "42";
  }
};

var b = {
  toString: function(){
    return "42";
  }
};

var c = [4,2];
c.toString = function(){
  return this.join( "" ); // "42"
};

Number( a ); // 42
Number( b ); // 42
Number( c ); // 42

Boolean()

假值:

Boolean(undefined) // false
Boolean(null) // false
Boolean(false) // false
Boolean(0) // false
Boolean(NaN) // false
Boolean('') // false

真值:

Boolean(new String( "" )) // true
Boolean(new Number( 0 )) // true
Boolean(new Boolean( false )) // true

Boolean("false") // true
Boolean("0") // true
Boolean("''") // true
Boolean([]) // true
Boolean({}) // true
Boolean(function () {}) // true
上一篇 下一篇

猜你喜欢

热点阅读