这段JS代码结果涉及到我的知识盲区了 哪位大神解释下为啥

这段JS代码结果涉及到我的知识盲区了 哪位大神解释下为啥

问题描述:

 

图一代码 图二是打印效果 为啥赋值过后就能有值  

不要直接加,括号把两块分别括起来在加看下

Console.log((this.timeStorage[0]?this.timeStorage[0]:'00') + (this.timeStorage[1]?this.timeStorage[1]:'00'))

最后那句等价于

this.timeStorage[0]?this.timeStorage[0]:('00'+this.timeStorage[1])?this.timeStorage[1]:'000'

 

如果下标1为undefined,黑色内容部分的值就是'00undefined',非空字符是true,所以返回this.timeStorage[1]的值undefined

 

这种有混淆行的代码你最好加上括号进行区分