JavaScript是不严格的类型语言如Java,例如。JavaScript的类型转换:(真&& 1)VS(真| | 1)
正如我们所知,这对语境依赖性转换结果的值:
"2" + "3"
导致"23"
"2" * "3"
结果6
这是理解相当明确和确定。
我只是尝试以下表达式和糊涂了:
true && 1
结果1
true || 1
结果true
为什么第一次给数和第二给布尔?
考虑到JavaScript转换规则,我预计在两种情况下都会得到boolean
值,这是由于boolean
表达式的上下文。
感谢你的解释 - 这是关于警卫和默认的有趣点 – sergionni 2011-12-19 10:42:07
不客气。总而言之,我会建议阅读道格拉斯的JavaScript页面而不是规范。在我看来,这很容易理解。 http://javascript.crockford.com/ – 2011-12-19 10:48:24
很好的解释!我希望我能给你+3。 – 2013-05-11 18:41:57