JavaScript中的number数字类型

转换数字的方法

  1. Number()
  2. parseInt() / parseFloat()

Number()

Number():把字符串转为数字,只要字符串中包含任意一个非有效数字字符(第一个点除外)结果都是NaN,空字符串会变为数字零

console.log(Number('12.5'))  // =>12.5
console.log(Number('12.5px')) // =>NaN
console.log(Number('12.5.5')) // =>NaN
console.log(Number('')) // =>0

// 布尔转换为数字
console.log(Number(true))   // =>1
console.log(Number(false))   // =>0

// null -> 0    undefined -> NaN
console.log(Number(null))  //=>0
console.log(Number(undefined))  //=>NaN

把引用数据类型转换为数字,是先把它基于toString方法转换为字符串,然后在转换为数字。

console.log(Number({name:'10'}))  // =>NaN
console.log(Number({}))// =>NaN
// {}/{xxx:'xxx'}.toString() => "[object Object]" => NaN
console.log(Number([])) // =>0
// [].toString() -> ''
console.log(Number([12])) //=>12
// [].toString() -> '12'
console.log(Number([12,23])) //=>NaN
// [].toString() -> '12,23'

parseInt / parseFloat

parseInt/parseFloat([val],[进制]):也是转换为数字的方法,对于字符串来说,它是从左到右依次查找有效数字字符,直到遇到非有效数字字符,停止查找(不管后面是否还有数字,都不在找了),把找到的当做数字返回。

let str = '12.5px'
console.log(Number(str))    //=>NaN
console.log(parseInt(str))    //=>12
console.log(parseFloat(str))    //=>12.5
console.log(parseFloat('width:12.5px'))    //=>NaN

检测一个值是否为有效数字方法------isNaN()

  1. 检测 一个值是否为非有效数字,如果不是有效数字返回true,反之返回false
  2. 如果不是有效数字,会先基于Number()这个方法,把值转换为数字类型,然后再检测

NaN和任何值(包括自己)都不相等。

你可能感兴趣的:(JavaScript,javascript)