返回
深入剖析 JS 类型转换,揭开神秘面纱
前端
2023-10-24 02:19:22
JS 的类型转换到底是什么?
深夜十一点,刷着朋友圈,突然刷到这么一张图,内心:怎么样,我 JS 厉害吧 手动滑稽。
然而,在我仔细把所有的 JS 语句都看完之后,发现自己还有几个不知原因.... emmmm,应该不只有我一个人吧!
看了一下,不知道原因的大部分都是 JS 的类型转换相关的问题,所以就了解了一波。
我发现,很多学习过 JS 的同学,对类型转换还是存在一些疑惑,比方说,什么叫类型转换?转换规则是什么?等等诸如此类的问题。
今天,我们就来聊聊 JS 中的类型转换。
什么是类型转换?
类型转换,顾名思义,就是把一个变量从一种类型转换成另一种类型。
在 JS 中,类型转换可以分为两种:隐式类型转换和显示类型转换。
隐式类型转换
隐式类型转换,是指 JS 引擎在执行代码时,自动将一种类型转换成另一种类型。
举个例子,我们来看下面的代码:
const a = 1 + '2';
console.log(a); // 12
在这个例子中,JS 引擎会自动将数字 1 转换成字符串 '1',然后将两个字符串相加,得到结果 '12'。
显示类型转换
显示类型转换,是指我们手动将一种类型转换成另一种类型。
在 JS 中,我们可以使用以下几种方法来进行显示类型转换:
Number()
: 将一个值转换成数字String()
: 将一个值转换成字符串Boolean()
: 将一个值转换成布尔值
举个例子,我们来看下面的代码:
const a = Number('1');
console.log(a); // 1
const b = String(2);
console.log(b); // '2'
const c = Boolean(0);
console.log(c); // false
在这个例子中,我们分别使用了 Number()
, String()
, Boolean()
这三个方法将值转换成不同的类型。
类型转换规则
在 JS 中,类型转换遵循以下规则:
- 数字和字符串可以相互转换。
- 布尔值可以转换成数字和字符串。
- 对象和数组不能直接转换成其他类型。
举个例子,我们来看下面的代码:
const a = 1 + '2'; // '12'
const b = '1' - 2; // -1
const c = true + 1; // 2
const d = false + 1; // 1
const e = [1, 2, 3] + 1; // '1,2,31'
const f = {a: 1, b: 2} + 1; // '[object Object]1'
在这个例子中,数字和字符串可以相互转换,布尔值可以转换成数字和字符串,对象和数组不能直接转换成其他类型。
总结
在本文中,我们讨论了 JS 中的类型转换。
我们了解了类型转换的概念,隐式类型转换和显示类型转换两种类型转换方式,以及类型转换的规则。
希望本文对您有所帮助。