、NaN 转化为其对应的字符串形式:
String(undefined); // 'undefined'String(null); // 'null'String(NaN); // 'NaN'⑥ 日期 => 字符串:String(new Date('2022-08-20')) // 'Sat Aug 20 2022 08:00:00 GMT+0800 (中国标准时间)'⑦ 隐式转换当任何数据类型使用+运算符与字符串连接时会发生到字符串的转换(隐式转换):
"25" + 56; // '2556'"25" + null; // '25null'"Hello " + undefined; // 'Hello undefined'"25" + false; // '25fasle'"25" + {}; // '25[object Object]'"25" + [10]; // '2510'所以,当我们想要创建一个操作并且操作数类型之一是字符串时,应该小心使用类型强制转换 。
⑧ 总结下面是 ECMAScript 规范中将数据类型转换为字符串的规则:

文章插图
(2)布尔转换将数据类型转换为布尔值称为布尔转换 。这种转换既可以由 Boolean() 函数显式完成,也可以在逻辑上下文中隐式完成(如if/else )或通过使用逻辑运算符( ||、&&、! )触发 。
① 字符串 => 布尔值:使用 Boolean() 方法转化字符串时,只有当字符串为空时会返回false,其他情况都会返回 true:
Boolean('hello'); // true Boolean(' '); // true Boolean(''); // false② 数字 => 布尔值:使用 Boolean() 方法转化数字时,只有 0、-0 或 NaN 会转化为 false,其他情况会返回 true:
Boolean(-123); // true Boolean(123); // true Boolean(0); // falseBoolean(-0); // falseBoolean(NaN); // false③ 数组 / 对象 => 布尔值:使用 Boolean() 方法转化数组或对象时,无论数组和对象是否有内容,都会返回true:
Boolean([1, 2, 3]); // trueBoolean([]); // trueBoolean({}); // trueBoolean({'hello': 'world'}); // true④ null / undefined => 布尔值:使用 Boolean() 方法转化null或undefined时,都始终返回 false:
Boolean(undefined); // false Boolean(null); // false⑤ 隐式转换在数学运算中,true 转换为 1 , false 转换为 0:
true + 5; // 6false + 5; // 55 - true; // 55 - false; // 4⑥ 逻辑运算符、逻辑上下文// 如果其中一个不是布尔值,则将其转换为布尔值Boolean( null || undefined || 0 || -0 || NaN || '' ) // falseBoolean( 1 && 'a' && { } && [] && [0] && function(){} ) // truetrue && false // falsetrue && true // truetrue || false // truetrue || !false // true注意,逻辑运算符,例如 || 或 && 内部进行布尔转换 , 但实际上返回原始操作数的值,即使它们不是布尔值 。
'hello' && 123; // 123
推荐阅读
- 屋里有蟑螂怎么彻底根除 屋里有蟑螂怎么消灭掉
- 二字网名超拽霸气 二字网名超拽霸气冷酷类型
- 童谣彻底颠覆自己的形象,黑色丝袜搭配双排风衣大秀模特气息!
- 手机频繁提示升级更新?教你一招,彻底关闭它
- Lisa再次作妖?被路易威登彻底抛弃,各国粉丝追着骂
- 刘亦菲彻底告别少女时代,肉色丝袜搭配银星连衣裙女人味十足!
- 韩红的“黑脸”,让《声生不息》节目组彻底被打脸
- 一味山楂健康减肥,不同肥胖类型的配伍秘方!轻松瘦身喝出来!
- 这次连沈腾都遭殃了,彻底触碰到了“底线”,贾玲不加入是正确的
- 心酸!云昊开播带货时聊学历遗憾,二八事件彻底改变人生轨迹
