在进行数学运算的时候, 需要把两个数据成同一种类型之后才能运算, 所以就涉及到了数据类型的转换.
数据类型的转换就是指, 从一种数据类型转换另外一种数据类型. 比如把数字转换成字符串, 把字符串转换成数字.
今天只了解基本数据类型之间的转换.
根据转换从方式不同, 把类型转换分成两类:
显示转换
隐式转换
一. 显示转换
1.1 其他类型转换成Number
字符串转数字
- 字符串中如果全部是数字, 就转成对应的数字, 否则就是
NaN
- 字符串中如果全部是数字, 就转成对应的数字, 否则就是
布尔值转数字
true
->1
false
->0
undefined
->NaN
null
->0
1.1.1 正统方法
使用转换函数Number
关于函数的概念后续再学. 今天只需要知道如何使用就可以了.
console.log(Number('123'));
console.log(Number('123.34'));
console.log(Number('12a'));
console.log(Number(true));
console.log(Number(false));
console.log(Number(undefined));
console.log(Number(null));
1.1.2 "奇淫巧技"
这是一种比较简洁的写法
如果你给一个数据前面添加一个正好+
, 则js引擎知道你现在想用数字了, 就自动的帮你转了.
1.2 其他类型转换成boolean
在这个浩瀚的世界上只有下面的 5 个值转换成false
:
0, "", null, undefind, NaN
其他的任何值都是true
, 务必牢记.
使用转换函数Boolean
转:
console.log(Boolean(0));
console.log(Boolean(undefined));
console.log(Boolean(null));
console.log(Boolean(""));
console.log(Boolean(NaN));
console.log(Boolean(Number.POSITIVE_INFINITY));
console.log(Boolean("0"));
console.log(Boolean("true"));
console.log(Boolean("false"));
1.3 其他类型转换成String
这个比较简单, 长什么样子, 转换成字符串之后就是什么样的字符串.
使用转换函数
String()
:String(1)
连接一个长度为了地付出
""
:123 + ""
1.4 其他类型转换Null和Undefined
想什么呢, 这个是无法转换的.
二. 隐式转换
隐式转换你可以认为是js引擎自动帮我们去完成转换, 也就是我们不需要使用前面说的那些现实转换的手动也可以完成换行
这就是隐式转换.也有人把它叫做自动类型转换.
什么时候才会发生隐式转换呢?
一句话: 在任何需要的地方.
这不是废话吗? 当然不是.
可以这么说, 在执行代码的时候, 如果 js 引擎需要字符串, 而你给的不是, 则会自动给你转换.
js 引擎需要数字, 而你给的不是, 则自动转换成数字.
比如: "123" - "10"
-
我们知道这是一种数学运算, 那么前后两边只能是数字才行啊, 所以他会自动把两个字符串转换成数字.
有很多情况下都会出现隐式转换, 后面的学习过程中会慢慢的接触.
console.log("123" - "10"); // 结果必然是113