我只是想知道,如果(clickedNumber === 'Yes or No')
意味着如果clickedNumber =“是或否”,那么如果我想说的clickedNumber不等于“是或否”,则是这样的:此代码是否意味着'不等于'?
(clickedNumber !== 'Yes or No')
?
感谢
我只是想知道,如果(clickedNumber === 'Yes or No')
意味着如果clickedNumber =“是或否”,那么如果我想说的clickedNumber不等于“是或否”,则是这样的:此代码是否意味着'不等于'?
(clickedNumber !== 'Yes or No')
?
感谢
你引述检查是否变量clickedNumber
是strictly equal字符串"Yes or No"
的代码。与之相反的是clickedNumber !== 'Yes or No'
,但了解你所处理的内容很重要。
如果clickedNumber
是'Yes'
,然后clickedNumber === 'Yes or No'
是假的,因为'Yes'
不严格(或松散)等于'Yes or No'
。全等(===
)表示:
操作数是相同类型的(这就是为什么它是“严”,而不是“宽松”,“宽松”平等允许铸造,例如1 == "1"
)。
如果操作数是相同的类型,它们具有相同的值。
自然'Yes or No'
和'Yes'
不具有相同的值(他们做有相同的类型)。
如果你真的不想要对证'Yes or No'
,合理,但如果你的目标是要检查'Yes'
或'No'
,独立,就必须做到这一点明确:
if (checkedNumber === 'Yes' || checkedNumber === 'No') {
// checkedNubmer is 'Yes' **or** it's 'No'
}
...相反这是
if (checkedNumber !== 'Yes' && checkedNumber !== 'No') {
// checkedNubmer is neither 'Yes' **nor** 'No'
}
如果我想说clickedNumber不等于“是或否”,则是这样的:
(clickedNumber !== 'Yes or No')
你说的是正确的,但它可能不会给你所期望的结果。
例如,您目前拥有的只是检查是否字符串clickedNumber
等于字符串'Yes or No'
:
var clickedNumber = 'Yes or No';
if(clickedNumber === 'Yes or No')
{
alert("check 1"); // this will be triggered
}
if(clickedNumber !== 'Yes or No')
{
alert("check 2"); // this will *not* be triggered
}
if(clickedNumber === 'Yes')
{
alert("check 3"); // this will *not* be triggered
}
if(clickedNumber === 'No')
{
alert("check 4"); // this will *not* be triggered
}
它不使用该字符串的内容来定义任何布尔逻辑,那么这个词or
实际上并没有做任何事情 - 它仅仅只是一个字符串的一部分:
var clickedNumber = 'Yes';
if(clickedNumber === 'Yes or No')
{
alert("check 1"); // this will *not* be triggered
}
if(clickedNumber !== 'Yes or No')
{
alert("check 2"); // this will be triggered
}
if(clickedNumber === 'Yes')
{
alert("check 3"); // this will be triggered
}
if(clickedNumber === 'No')
{
alert("check 4"); // this will *not* be triggered
}
如果你想布尔逻辑应用,那么你就必须在代码中,而不是在内容使用布尔运算符一个字符串:
var clickedNumber = 'Yes';
if(clickedNumber === 'Yes' || clickedNumber === 'No')
{
alert("check 1"); // this will be triggered
}
if(clickedNumber !== 'Yes' && clickedNumber !== 'No')
{
alert("check 2"); // this will *not* be triggered
}
是的。你提到的代码:
(clickedNumber !== 'Yes or No')
将评估作为true
如果clickedNumber
不等于字符串'Yes or No'
。如果clickedNumber
是字符串'Yes or No'
,它将被评为false
。
注意,这是不一样的测试是否不等于到两个独立的串'Yes'
或'No'
,你会做这样的:
!(clickedNumber === 'Yes' || clickedNumber === 'No')
延伸阅读:https://developer.mozilla.org/en/JavaScript/Reference/Operators/Comparison_Operators
那不检查是否'clickedNumber!=='是'|| clickedNumber!=='不'。它只是检查变量'clickedNumber'是否不**字面意思相同'Yes或No'。 – 2012-01-08 23:52:16
您是否检查字符串是否等于“是或否”字符串,或者它是否等于*“是”或“否”? – 2012-01-08 23:53:18
那么问题是我看不出差异,因为我的代码中发生了一个事故。 (很长的故事)。所以我不能测试它,所以我想知道这是如何完成的 – BruceyBandit 2012-01-08 23:53:57