这是我参与8月更文挑战的第29天,活动详情查看:8月更文挑战
前言
“八月的色彩是用金子铸就的,明亮而珍贵;八月的色彩是用阳光酿造的,芬芳而灿烂。”
未来的日子,愿你把自己调至最佳状态,缓缓努力,慢慢变好 Y(^o^)Y
JavaScript本就是一个弱类型的,本身没有类型的定义,比较灵活随处可以赋值使用。这也给开发带来了一些麻烦——强制类型转换,要想弄明白强制类型转换,首先要搞懂基础的转换规则。本文主要介绍基本的转换规则。
抽象操作
字符串、数字和布尔值之间类型的转换的基本规则。
toSting
它负责处理非字符串到字符串的强制类型转换。
基本类型值的字符串化规则为:null 转换为 "null",undefined 转换为"undefined",true转为"true"。
toNumber
有时候我们需要将非数字值当做数字来使用,比如数学运算。
true转换为1,false 转换为0,undefined 转换为NaN,null转换为0。
对象(包括数组)会首先被转换为相应的基本类型值,如果返回的是非数字的基本类型值,则再遵循以上规则将其强制转换为数字。
Number("42") // 42
Number([1, 2]) // NaN
Number("") // 0
Number(undefined) // NaN
Number(null) // 0
number(' ') // 0
toBoolean
javascript中有两个关键字true和false,分别表示布尔类型中的真和假。
假值
javascript中被强制转换为false的值,主要包含以下:
undefinednullfalse+0、-0、NaN""
从逻辑上说,假值列表以外的都应该是真值。但
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
结语
下一篇文章详细介绍强制类型转换
如果这篇文章帮到了你,欢迎点赞👍和关注⭐️。
文章如有错误之处,希望在评论区指正🙏🙏。