长安网站建设公司,seo tdk,网站上线是前端还是后端来做,网站开发和推广财务预算本质: 二元操作符规则
一般判断规则:
如果操作数是对象,则对象会转换为原始值如果其中一个操作数是字符串的话,另一个操作数也会转换成字符串,进行字符串拼接否则,两个操作数都将转换成数字或NaN,进行加法操作 转为原始数据类型的值的方法:
Symbol.ToPrimitiveObject.protot…本质: 二元操作符规则
一般判断规则:
如果操作数是对象,则对象会转换为原始值如果其中一个操作数是字符串的话,另一个操作数也会转换成字符串,进行字符串拼接否则,两个操作数都将转换成数字或NaN,进行加法操作 转为原始数据类型的值的方法:
Symbol.ToPrimitiveObject.prototype.valueOfObject.prototype.toString 一. []的原值
typeof [][Symbol.ToPrimitive] // undefined[].valueOf() // [][].toString() // ‘’
所以[] [] 就相当于 , 得到的是空字符串 二.{}的原始值
typeof {}[Symbol.ToPrimitive] // undefined({}).valueOf() // {}({}).toString() // [object Object]
注意事项: {}xx需要看成{};xx才是得到和控制台一样的值
比如:
({} []) 相当于是[object Object] , 得到的是[object Object]
{} [] 相当于{}; [], 分号说明语句结束了,所以要往后看,而号本身有隐式转换数字的功能, 所以[]等于0
同理:
({} {})是[object Object][object Object]
而{} {}相当于{}; {},相当于只需要看{}, {}的原始值是[object Object],隐式转换[object Object]为数字,[object Object]无法转换为正常数字,所以变成NaN 因此:
[] ???就相当于([] ???)
而{}的运算特殊一些:
{} ??? 相当于 ???转换为数字, 得到0或者NaN
({} ???) 相当于分别得到{}的原始值和???的原始值, 即([object Object] ???的原始值) 综上所述:
[][] 得到
[]{} 得到 [object Object] {} [] 得到 0
{} {} 得到NaN