第77天 请快速答出此题的答案并解释:var x, y = 1; x + y = ?
Activity
ghost commentedon Jul 2, 2019
运算符
+
的implicit type conversion规则:string
或 object 则两边转换为string
进行连接number
并进行相加symbol
相加会 throwTypeError
[-][js] 第77天 请快速答出此题的答案并解释:var x, y = 1; x = y = ?[/-][+][js] 第77天 请快速答出此题的答案并解释:var x, y = 1; x + y = ?[/+]haizhilin2013 commentedon Jul 2, 2019
@t532 题目出的有问题,修改了下,应该是 x + y
uuuutiger commentedon Jul 2, 2019
NaN
Konata9 commentedon Jul 2, 2019
在 chrome 试了下,答案:NaN
var x, y=1 是赋值操作。x 没有给值仅给出了定义,那么 x = undefined,而 y=1
undefined+1 = NaN
maczyt commentedon Jul 2, 2019
@t532 第一条规则 >若任何一侧是 string 或 object 则两边转换为 string 进行连接
关于object不是准确的。
举例:
按照ES标准规则,hint为default则会依次调用valueOf和toString
所以不一定是两边转换为string进行连接
eg:
marspal commentedon Jul 2, 2019
@maczyt 正解
yxkhaha commentedon Jul 2, 2019
lookguy commentedon Jul 2, 2019
我居然以为会报错,undefined居然还能加一
xiangshuo1992 commentedon Jul 3, 2019
居然改题目了,害我昨天想好久,总觉得x=y=?这不是赋值操作吗,有啥答案
haizhilin2013 commentedon Jul 3, 2019
@xiangshuo1992 嘿嘿,我的错
poporeki commentedon Jul 4, 2019
NaN
变量x只是定义了并没有复制,此时为
undefined
,so 等于undefined+1
Alex-Li2018 commentedon Sep 1, 2020
NaN
smile-2008 commentedon Jan 27, 2021
1684838553 commentedon Dec 9, 2021
var x, y = 1; x + y = ?
x == undefined
y == 1
undefined 转成number类型为NaN
NaN + 1 == NaN
xiaoqiangz commentedon Jun 21, 2022
NaN