update: 数据类型转换

This commit is contained in:
qianguyihao 2021-04-10 10:41:49 +08:00
parent ed4ec7b183
commit 3dfab4a196

View File

@ -344,17 +344,20 @@ parseFloat() 的几个特性,可以参照 parseInt()。
- 情况三null undefined 都会转换为 false
- 情况四引用数据类型会转换为 true注意空数组`[]`和空对象`{}`**转换结果也是 true**一点很多人都不知道
- 情况四引用数据类型会转换为 true注意空数组`[]`和空对象`{}`**转换结果也是 true**一点很多人都不知道
PS转换为 Boolean 的这几种情况**很重要**开发中会经常用到
**1隐式转换为 Boolean 类型**
当非 Boolean 类型的数值和 Boolean类型的数值做比较时会先把前者进行隐式转换为 Boolean类型然后再做比较举例如下
当非 Boolean 类型的数值和 Boolean类型的数值做比较时会先把前者进行隐式转换为 Boolean类型然后再做比较且不会改变前者的数据类型举例如下
```js
console.log(1 == true); // 打印结果true
const a = 1;
console.log(a == true); // 打印结果true
console.log(typeof a); // 打印结果number。可见上面一行代码里a 做了隐式类型转换,但是 a 的数据类型并没有发生变化,仍然是 Number 类型
console.log(0 == true); // 打印结果false
```
@ -364,8 +367,27 @@ console.log(0 == true); // 打印结果false
方法2使用 Boolean()函数可以显式转换为 Boolean 类型
**总结**
转换为 Boolean 的这几种情况**很重要**开发中会经常用到比如说我们在项目开发中经常需要对一些**非布尔值**做逻辑判断符合条件后才做进一步的事情下面来看个例子
举例接口返回的内容不为空前端才做进一步的事情
```js
const result1 = '';
const result2 = {a:'data1', b: 'data2'};
if (result1) {
console.log('因为 result1的内容为空所以代码进不了这里');
}
if (result2 && result2.a) {
// 接口返回了 result2且 result2.a 里面有值,前端才做进一步的事情
console.log('代码能进来,前端继续在这里干活儿');
}
```
这里再次强调一下空数组`[]`和空对象`{}`转换为 Boolean 值时转换结果为 true
## 知识补充其他进制的数字