字符串隐式转换

/* 
 *  把其它类型转换为string 
 *    + [val].toString() & String([val])
 *      + 原始值类型:基于引号包起来、bigint会去掉n
 *      + 对象类型值:
 *        + 调用 Symbol.toPrimitive
 *        + 如果不存在则继续调用 valueOf 获取原始值,有原始值则把其转换为字符串
 *        + 如果不是原始值,则调用toString转换为字符串
 *        特殊:普通对象转换为字符串是 “[object Object]”   -> Object.prototype.toString
 * 
 *    + “+”代表的字符串拼接
 *       + 有两边,一边是字符串,则会变为字符串拼接
 *       + 有两边,一边是对象,按照 Symbol.toPrimitive -> valueOf -> toString 处理,变为字符串后,就直接按照字符串拼接处理了「有特殊情况」
 *         + {}+10  -> 10   他认为{}是代码块,处理的只是+10这个操作
 *       + 只出现在左边,例如:+[val]  这是把[val]转换为数字    ++i(先累加再运算) & i++(先运算再累加)
 *       + ...
 */
// let result = 100 + true + 21.2 + null + undefined + "Tencent" + [] + null + 9 + false;
// // 100 + true + 21.2 + null + undefined  都是数学运算 => NaN
// // NaN + "Tencent" => "NaNTencent"
// // "NaNTencent" + [] + null + 9 + false  都是字符串拼接 => "NaNTencentnull9false"
// console.log(result);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值