类型转换基础

206 阅读2分钟

这是我参与8月更文挑战的第29天,活动详情查看:8月更文挑战

前言

“八月的色彩是用金子铸就的,明亮而珍贵;八月的色彩是用阳光酿造的,芬芳而灿烂。”

未来的日子,愿你把自己调至最佳状态,缓缓努力,慢慢变好 Y(^o^)Y

JavaScript本就是一个弱类型的,本身没有类型的定义,比较灵活随处可以赋值使用。这也给开发带来了一些麻烦——强制类型转换,要想弄明白强制类型转换,首先要搞懂基础的转换规则。本文主要介绍基本的转换规则。

抽象操作

字符串、数字和布尔值之间类型的转换的基本规则。

toSting

它负责处理非字符串到字符串的强制类型转换。

基本类型值的字符串化规则为:null 转换为 "null"undefined 转换为"undefined"true转为"true"

toNumber

有时候我们需要将非数字值当做数字来使用,比如数学运算。

true转换为1false 转换为0undefined 转换为NaNnull转换为0

对象(包括数组)会首先被转换为相应的基本类型值,如果返回的是非数字的基本类型值,则再遵循以上规则将其强制转换为数字。

Number("42")  // 42
Number([1, 2]) // NaN
Number("") // 0
Number(undefined) // NaN
Number(null) // 0
number(' ') // 0

toBoolean

javascript中有两个关键字truefalse,分别表示布尔类型中的真和假。

假值

javascript中被强制转换为false的值,主要包含以下:

  • undefined
  • null
  • false
  • +0-0NaN
  • ""

从逻辑上说,假值列表以外的都应该是真值。但javascript规范对此并没有明确定义,只是给出了一些示例,例如规定所有的对象都是真值,我们可以理解为假值列表以外的值都是真值

真值

真值就是假值列表之外的值。

var a = 'false'
var b = '0'
var c = "''"
var d = Boolean(a && b && c)

console.log(d) // true

var e = [];
var f = {};
var g = function(){};
var h = Boolean(a && b && c)

console.log(h) // true

结语

下一篇文章详细介绍强制类型转换

如果这篇文章帮到了你,欢迎点赞👍和关注⭐️。

文章如有错误之处,希望在评论区指正🙏🙏。