JavaScript 数值转换

数据类型

转换为 true 的值

转换为 false 的值

Boolean

True

False

String

非空字符串

Number

非 0 数字

0 和 NaN

Object

任何对象

null

Undefined

n/a(不适用)

Undefined

isNaN

  • 不能被 number 转换为数字 —-> true
  • 能被 number 转换为数字 —-> false
isNaN(NaN) // true 
isNaN("blue") // true (不能被转换为数字)
isNaN(10) // false
isNaN("10") // false (10可以被转换成数值10)
isNaN(true) // false(可以被转换成1)

isNaN 第一会调用对象的 valueOf() 方法,然后再确定返回的值是否可以转换为数值。如果不能,再调用 toString() 方法,并测试其返回值

isFinite

  • 除 NaN 与 Infinity 都返回 true
isFinite(NaN) // false
isFinite(Infinity) // false

Number

  • 转换为为数值 无法转换 —> NaN(不是一个数字)
Number("hello") // NaN
Number("0011") // 11
Number("") // 0
Number(true) // 1

let intNum = 55; // 整数

// 八进制第一个数字必须是零(0),然后是相应的八进制数字(数值0~7)
let octalNum1 = 070; // 八进制的56
let octalNum2 = 079; // 无效的八进制值,当成79 处理
let octalNum3 = 08; // 无效的八进制值,当成8 处理

// 十六进制字面量,必须让真正的数值前缀0x(区分大小写),然后是十六进制数字(0~9 以及A~F)
let hexNum1 = 0xA; // 十六进制10
let hexNum2 = 0x1f; // 十六进制31

parseInt

  • 转换为整数参数 1:要转换的变量参数 2:以什么进制来转换这个数值,默认 10 进制,0 也是 10 进制
parseInt("234blue") // 234
parseInt("blue234") // NaN
parseInt("") // NaN
parseInt("44.5") // 44
parseInt("070") // 56(8进制)
parseInt("0xf") // 15(16进制)
parseInt("070" , 10) // 后面告知浏览器这是10进制

parseFloat

  • 转换为小数,只解析 10 进制,没有小数点或小数点后面都是 0 会返回整数
parseFloat('1234blue') // 1234 整数
parseFloat('0xA') // 0
parseFloat('22.54.5') // 22.54

toString

  • 转换为字符串 不能转换 null 和 undefined
11.toString() // '11' 字符串
true.toString() // 'true' 字符串
toString() // 是对象下的方法,所以不能使用

String

  • 转型函数 能转换 null 和 undefined
String(null) // "null
String(undefined) // "undefined"
11 += ""; // "11" 字符串
  • +” 拼接也可以转换为 string
© 版权声明

相关文章

暂无评论

none
暂无评论...