你好,我是javascript的新手,正在尝试运行以下内容
var age = prompt("What is your age");
if (age < 19) {
document.write("You can't drink");
}
else if (age === 19) {
document.write("you can finally drink");
}
else (age > 19) {
document.write("you can already drink");
}
我似乎无法显示任何内容,但是如果我更改代码以删除 else 语句并将===
更改为仅==
我的代码运行。这就是在我摆脱 else 语句和运算符后运行时的样子===
。
var age = prompt("What is your age");
if (age < 19) {
document.write("You can't drink");
}
else if (age == 19) {
document.write("you can finally drink");
}
我正在尝试运行第一个代码块,但无法运行。页面为空,不显示提示。有人请帮忙。
代码中存在一些错误:
1(prompt
方法返回string
没有number
,所以:
使用==
而不是===
:
else if (age == 19) {
PS: (19 == '19'(; 是true
但是(19 === '19'(; 是false
或将age
转换为数字:
else if (Number(age) === 19) {
2(你不应该对else
使用条件,所以你必须像这样改变else
:
else { document.write("you can already drink"); }
var age = prompt("What is your age");
if (age < 19) { document.write("You can't drink"); }
else if (Number(age) === 19) { document.write("you can finally drink"); }
else { document.write("you can already drink"); }
你的问题是最后一个 else 语句。你在别的后面放了一个条件,这是行不通的。您只在另一个 if 之后添加条件。您可以通过删除如下所示的条件来解决此问题:
var age = prompt("What is your age");
if (age < 19) {
document.write("You can't drink");
}
else if (age === 19) {
document.write("you can finally drink");
}
else {
document.write("you can already drink");
}
您在最后else
语句中似乎遇到了一些逻辑错误。如果前两个条件都不为真,那么从逻辑上讲,最后一个条件必须为真。else
不附带任何条件。就先前的条件而言,这只是其他条件。否则,您将不得不再次使用else if()
,但如前所述,如果这两个条件都不为真,那么无论在此示例中,最后一个条件都必须是这种情况。因此,"别的"最有意义。
例:
if (age < 19) {
document.write("You can't drink");
}
else if (age === 19) {
document.write("you can finally drink");
}
else {
document.write("you can already drink");
}
就您的运营商而言,另一件事。==
的意思是等于,可以用来比较不同的类型。即,您可以将数字类型与字符串类型进行比较,如果它们都具有相同的值,则该语句将为真。但是,===
是严格相等的,这意味着要比较的事物必须是相同的值和相同的类型。
例:
var x = 5; //number
var y = '5'; //string
if(x == y) {
//true, because they are equal, both has the value 5
}
if(x === y) {
//false, because even though they are equal in value, they are not the same type
}
var a = 8; //number
var b = 8; //number
if(a === b) {
//true, because they are both equal, and the same type
}
所以,澄清一下,
==
检查值是否相等,无论类型如何。
===
检查值是否相等且类型相同。
有关运算符的更多简单文档,请参见此处。
首先,您需要了解"=="和"==="之间的区别。由此你可以得出结论
JavaScript 既有严格相等比较,也有类型转换相等比较。对于严格相等,要比较的对象必须具有相同的类型,并且: 当两个字符串具有相同的字符序列、相同的长度和相同位置的相同字符时,它们严格相等。 当两个数字在数值上相等(具有相同的数字值(时,它们严格相等。NaN 不等于任何东西,包括 NaN。正零和负零彼此相等。 如果两个布尔操作数都为真或两个都为假,则两个布尔操作数严格相等。 如果两个对象引用同一个对象,则它们严格相等。 空值和未定义类型为 ==(但不是 ===(。[即(Null==Undefined(为真,但(Null===Undefined(为假]
其次,带有条件的"else"总是写成"else if"......否则是块,当上述条件都不为真时运行,即没有一个为真..从此处阅读以获取更多信息