JavaScript类型转换

JavaScript类型转换

在这里插入图片描述

to boolean

  • 其他类型转布尔值,可以用 Boolean() 函数或者两次取反 !!
  • 除了下面六个值被转为false,其他值都视为true。
    • undefined
    • null
    • false
    • 0
    • NaN
    • "" or ''(空字符串)

to number

// undefined是一个表示"此处无定义"的原始值,转为数值时为NaN
console.log(Number(undefined))  // NaN
console.log(5 + undefined) // NaN

// null是一个表示“空”的对象,转为数值时为0
console.log(Number(null))   // 0
console.log(5 + null) // 5

console.log(Number(false))  // 0
console.log(Number(true))   // 1

console.log(Number('')) // 0
console.log(Number('12')) // 12
console.log(Number('12aaa')) // NaN,只要字符串看上去不是一个数字,转换就失败!

// 从左到右尽可能解析出一个整数,解析不出就NaN
console.log(Number.parseInt("12aaa", 10))  // 12,最好指定基数

// 只能解析十进制数
console.log(Number.parseFloat("12.0"))  // 12,注意是整数!会尽可能转成整数

对象:先对对象valueOf返回值转换,如果是NaN则对对象toString返回值转换

console.log(Number({})) // NaN
console.log(Number([])) // 0
console.log(Number(function (){})) // NaN

const v1 = {
  valueOf() {
    return 1;
  },
  toString() {
    return '2';
  }
}

const v2 = {
  toString() {
    return '2';
  }
}

console.log(Number(v1)) // 1
console.log(Number(v2)) // 2

to string

console.log(String(0))  // "0"
console.log(String(false))  // "false"
console.log(String(null))  // "null"
console.log(String(undefined))  // "undefined"
console.log(Symbol("foo"))  // Symbol(foo)

console.log(String([1, 2, 3]))  // "1,2,3"
console.log(String({a: 1, b: 2}))  // "[object Object]"
console.log(String(function () {}))  // "function () {}"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值