② -、*、/、++、--// 将一个或多个值转换为数字 - '1' // -1 [] - 1 // -1 [] - {} // NaN
③ ==、!=// 两个操作数 a == b// 1. 如果一个是 `null` 而另一个是 `undefined`,它们是相等的null == undefined // true// 2. 如果一个是数字,另一个是字符串,将字符串转换为数字 , 再比较1 == '1' // true// 3. 如果其中一个是布尔值 , 将其转换为数字 , 再次比较true == 1 // truefalse == 0 // true// 4. 如果一个是对象,另一个是数字或字符串,将对象转换为原始类型,再次比较[1] == 1 // true['1'] == '1' // true
下图是在使用 == 时,判断两个操作数是否相等的总结(绿色表示相等 , 白色表示不等):
文章插图
// 两个操作数a > b// 1. 如果其中一个是对象,则将其转换为原始类型,再次比较[2] > 1 // true// 2. 如果两者都是字符串,使用字母顺序比较它们'b' > 'a' // true// 3. 如果其中一个是数字,则将一个或两个非数字转换为数字'2' > 1 // true
⑤ in/* 如果左操作数不是字符串 , 则将其转换为字符串 */ a in b'1' in {1: ''} // true 1 in {1: 'a'} // true 1 in ['a', 'b'] // true
2. 常见类型转换(1)字符串转换将数据类型转换为字符串称为字符串转换 , 可以使用 String()
函数将数据类型显式转换为字符串 。当一个操作数是字符串时 , 可以通过使用 +
运算符来触发隐式字符串转换 。
① 数字 => 字符串:Number对象的 toString()
方法会返回指定 Number 对象的字符串表示形式 。String()
和 new String()
会把对象的值转换为字符串 。
String(20); // '20'String(10 + 40); // '50'(10 + 40).toString(); // '50'new String(10 + 20); // '30'
② 布尔值 => 字符串:String()
和 toString()
方法会将布尔值转化为对应的字符串形式 。
String(true); // 'true'String(false); // 'false'true.toString() // 'true'false.toString() // "false"
③ 数组 => 字符串:String()
方法会将数组元素通过逗号连接起来,无论嵌套多少层 , 都会将其展开并返回元素拼接好的字符串 。如果是空数字 , 会返回空字符串:
String([1, 2, 3]); // '1,2,3'String([1, 2, 3, [4, [5]]]); // '1,2,3,4,5'String([1, 2, 3, [4, [5, {}]]]); // '1,2,3,4,5,[object Object]'String([]); // ''
④ 对象 => 字符串:使用 String() 方法会将对象转化为 '[object Object]'
,无论对象是否为空对象:
String({name: "Hello"}); // '[object Object]'
⑤ null / undefined / NaN => 字符串:使用 String()
方法会将 null
、undefined
推荐阅读
- 屋里有蟑螂怎么彻底根除 屋里有蟑螂怎么消灭掉
- 二字网名超拽霸气 二字网名超拽霸气冷酷类型
- 童谣彻底颠覆自己的形象,黑色丝袜搭配双排风衣大秀模特气息!
- 手机频繁提示升级更新?教你一招,彻底关闭它
- Lisa再次作妖?被路易威登彻底抛弃,各国粉丝追着骂
- 刘亦菲彻底告别少女时代,肉色丝袜搭配银星连衣裙女人味十足!
- 韩红的“黑脸”,让《声生不息》节目组彻底被打脸
- 一味山楂健康减肥,不同肥胖类型的配伍秘方!轻松瘦身喝出来!
- 这次连沈腾都遭殃了,彻底触碰到了“底线”,贾玲不加入是正确的
- 心酸!云昊开播带货时聊学历遗憾,二八事件彻底改变人生轨迹