var x = 123;
var y = new Number(123);
(x === y)
var x = 123;
var y = new Number(123);
x === y
我在线查看了一些代码并找到了这些示例。
这两个例子之间的区别是什么?
我不明白为什么x === y
周围有括号?
(x === y)
是表达式吗?
x === y
是表达式吗?
答案 0 :(得分:2)
一般来说,对于 x 是表达式的任何x
,(x)
也将是一个具有完全相同结果的表达式。
这在分组操作和声明执行顺序或仅将项目分组以便于阅读时非常有用。
在某些情况下,括号不是表达式的一部分,但是是其他一些语言构造的一部分,例如在这种情况下:
if (x === y) {
// stuff
}
此处只有x === y
是表达式,括号是if语法的一部分。
答案 1 :(得分:1)
两者都是有效的表达式,并且计算结果为true或false,在这种情况下都是false。括号在这里没有什么区别,但它对于在大型复杂表达式中对子表达式进行分组非常有用。
任何返回某种值的语句都是表达式。如果您仍然感到困惑,您可以将其视为“任务可以放在作业右侧(=)的任何内容都是有效的表达式”。