这段JS代码结果涉及到我的知识盲区了 哪位大神解释下为啥
问题描述:
图一代码 图二是打印效果 为啥赋值过后就能有值
答
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Operator_Precedence
mozilla 开源社区,看上了采纳下,谢谢!
答
不要直接加,括号把两块分别括起来在加看下
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
这种有混淆行的代码你最好加上括号进行区分