JavaScript类型转换

JavaScript类型转换,第1张

JavaScript类型转换

to boolean 其他类型转布尔值,可以用 Boolean() 函数或者两次取反 !!除了下面六个值被转为false,其他值都视为true。 undefinednullfalse0NaN"" 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 () {}"

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1321426.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-12
下一篇2022-06-12

发表评论

登录后才能评论

评论列表(0条)

    保存