JavaScript的Symbol(持续更新)

定义

所有用单引号、双引号、反引号(撇)包起来的都是字符串

把其他数据类型转换为字符串

  • String([value])
  • [value].toString()
    普通对象转化为字符串都是"[object Object]",数组转化为字符串是"item1, item2…"

JS中常用的数学运算

  • 除了加法外,都是数学运算,如果遇到非数字类型,先基于Number此案转换为数字类型,再运算
  • 一些转换
    true 1 false 0 null 0 undefined NaN symbol不能转
 console.log(10 - null) //=>10
 console.log(3 * undefined) //=>NaN
 console.log(3 + undefined) //=>NaN
 console.log("3" + undefined) //=>"3undefined"
 console.log(true - "12") //=>11
  • 加法既有数学运算,也有字符串拼接(只要加号任意一边出现字符串,则变为字符串拼接),此时对象还是要转换为字符串后拼接

对象转化为数字(先转化为字符串,再转化为数字)

console.log(3 - "2px")//=> 3- NaN = NaN
console.log(3 + "3px")//=> "33px"
console.log(1 + "1")//=> "11"
console.log(1 + {})//=> "1[object Object]"// 在把{}转化为数字的过程中,先把他转化为字符串”[object Object]“,然后加号一边出现了字符串,此时变为字符串拼接
console.log(1 + [])//=>"1"(字符串“1”) []是对象,先把[]转换为字符串“”,此时一边出现字符串,然后变成了字符串拼接
console.log([10] + true)//=>"10true"[10]是对象,先把[10]转换为字符串“10”,然后加号一边出现了字符串,此时变为字符串拼接
console.log(true + [10])//=>"true10"
  • NaN
console.log(NaN + 10);// NaN
console.log(NaN + "10");// "NaN10"

字符串拼接练习

let a = 100 + ture + 21.2 + null + undefined + "Tencent" + [] + null + 9 + false
/*
 * 100 + true => 101
 * 101 + 21.2 => 122.2
 * 122.2 + null => 122.2 + 0 => 122.2
 * 122.2 + undefined => 122.2 + NaN => NaN
 * NaN + "Tencent" => "NaNTencent" 字符串拼接,此后都是字符串拼接
 * "NaNTencent" + [] = "NaNTencent" + "" => "NaNTencent" 
 * "NaNTencent" + null => "NaNTencentnull"
 * "NaNTencentnull" + 9 = "NaNTencentnull" + "9" => "NaNTencentnull9"
 * "NaNTencentnull9" + false = "NaNTencentnull9" + "false" = "NaNTencentnull9false"
 */
//==============
let a = 10 + null + true + [] + undefined + 'abc' + null + [] + 10 + false;
/*
 * 10 + null -> 10 + 0 -> 10
 * 10 + true -> 10 + 1 -> 11
 * 11 + [] -> 11 + '' -> '11'  空数组变为数字,先要经历变为空字符串,遇到字符串,啥都别想了,直接变为字符串拼接 
 * '11' + undefined -> '11undefined'
 * ...
 * '11undefinedabcnull10false'
 */

Es6中的模版字符串

let year = 2020;
`this is ${year}`

面试题

var b = '456' - '123'//333
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值