美文网首页
Number()和Boolean()

Number()和Boolean()

作者: Mr君 | 来源:发表于2019-05-17 08:56 被阅读0次

Number()

规则:

  • true 转换为 1 , false 转换为 0
  • undefined 转换为 NaN
  • null 转换为 0
  • 处理失败时返回 NaN
  • 对象(包括数组)会首先被转换为相应的基本类型值,如果返回的是非数字的基本类型值,则再遵循以上规则将其强制转换为数字
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

相关文章

网友评论

      本文标题:Number()和Boolean()

      本文链接:https://www.haomeiwen.com/subject/kihbaqtx.html