我们是否需要在纯数字变量值周围使用引号,例如10
或100
?
以下是示例。
// 1st version - without quotes
var foo = 10;
var bar = 'hello';
if (foo == 10 && bar == 'hello') {
alert('something');
}
// 2nd version - with quotes
var foo = '10';
var bar = 'hello';
if (foo == '10' && bar == 'hello') {
alert('something');
}
// 3rd version - mixed
var foo = 10;
var bar = 'hello';
if (foo == '10' && bar == 'hello') {
alert('something');
}
所有三个版本的工作方式相同。那么,在10
,100
和另一个纯数字变量值周围使用引号是一种好习惯吗?
我希望,这个问题不会被视为“基于意见”,因为可能存在一些真实的用例,我们可以从中了解哪个版本最正确。
答案 0 :(得分:1)
对此主题的一些(自我)解释:
0 != 1

# ICC18
pushq %rbp #6.1
movq %rsp, %rbp #6.1
subq $16, %rsp #6.1
movl $0, %eax #7.5
cmpl $1, %eax #7.5
je ..B1.3 # Prob 100% #7.5
movl $10, -16(%rbp) #9.16
..B1.3: # Preds ..B1.2 ..B1.1
movl $0, %eax #11.12
leave #11.12
ret #11.12
也会进行类型检查,这解释了行为。
Difference between == and === in JavaScript
问候