JavaScript (age==18) 和 (age===18) 的区别?
Difference between (age==18) and (age===18) in JavaScript?
我正在执行这个程序,但没有得到输出,但是如果我在第二个代码块中输入年龄后输入 18 岁,我得到了输出,为什么会这样?
如果我只使用两个“==”符号,那么我也得到了输出,但如果是“===”,我没有得到输出。
age == 18
得到输出
Number(age)===18
得到输出
age === 18
没有得到输出
两种代码都在下面给出。
用“===”
var age=prompt("Enter your age");
if(age<18){
alert("Sorry, You are too young to drive this car Powering off");
}else if(age>18){
alert("Powering On Enjoy the ride!");
}else if(age===18){
alert("Congratulation on your first riding Enjoy the ride!");
}
使用类型转换“Number(age)===18”
var age = prompt("What is your age?");
if (Number(age) < 18) {
alert("Sorry, you are too young to drive this car. Powering off");
} else if (Number(age) > 18) {
alert("Powering On. Enjoy the ride!");
} else if (Number(age) === 18) {
alert("Congratulations on your first year of driving. Enjoy the ride!");
}
prompt 总是 return 字符串格式的值。
假设一个字符串和数字具有相同的值(比如 18 和 '18')。这里的值相同,只是类型不同。如果仅比较值,则将字符串值与数字进行比较将 return true
,如果还比较类型,则 false
。
==
比较两个值而不比较类型。 ==
被称为 抽象相等比较 ,它只比较值,不比较类型。 ==
比较两个事物时会进行类型转换。
console.log(18 == '18'); // Expect true
===
通过比较类型来比较两个值。 ===
被称为 严格相等比较 这将比较值和类型
console.log(18 === '18'); // Expect false
在 Number(age) === 18
的情况下,字符串年龄被转换为数字年龄,因此这两个值都是 od 类型数字。因此这将 return true
const age = prompt("Enter your age");
console.log(`Type of Age = ${typeof age}`);
const numbericAge = +age; // String to number conversion, Same as Number(age)
console.log(`Type of Numeric Age = ${typeof numbericAge}`);
if (numbericAge < 18) {
alert("Sorry, You are too young to drive this car Powering off");
} else if (numbericAge > 18) {
alert("Powering On Enjoy the ride!");
} else if (numbericAge === 18) {
alert("Congratulation on your first riding Enjoy the ride!");
}
我正在执行这个程序,但没有得到输出,但是如果我在第二个代码块中输入年龄后输入 18 岁,我得到了输出,为什么会这样?
如果我只使用两个“==”符号,那么我也得到了输出,但如果是“===”,我没有得到输出。
age == 18
得到输出Number(age)===18
得到输出age === 18
没有得到输出
两种代码都在下面给出。
用“===”
var age=prompt("Enter your age");
if(age<18){
alert("Sorry, You are too young to drive this car Powering off");
}else if(age>18){
alert("Powering On Enjoy the ride!");
}else if(age===18){
alert("Congratulation on your first riding Enjoy the ride!");
}
使用类型转换“Number(age)===18”
var age = prompt("What is your age?");
if (Number(age) < 18) {
alert("Sorry, you are too young to drive this car. Powering off");
} else if (Number(age) > 18) {
alert("Powering On. Enjoy the ride!");
} else if (Number(age) === 18) {
alert("Congratulations on your first year of driving. Enjoy the ride!");
}
prompt 总是 return 字符串格式的值。
假设一个字符串和数字具有相同的值(比如 18 和 '18')。这里的值相同,只是类型不同。如果仅比较值,则将字符串值与数字进行比较将 return true
,如果还比较类型,则 false
。
==
比较两个值而不比较类型。 ==
被称为 抽象相等比较 ,它只比较值,不比较类型。 ==
比较两个事物时会进行类型转换。
console.log(18 == '18'); // Expect true
===
通过比较类型来比较两个值。 ===
被称为 严格相等比较 这将比较值和类型
console.log(18 === '18'); // Expect false
在 Number(age) === 18
的情况下,字符串年龄被转换为数字年龄,因此这两个值都是 od 类型数字。因此这将 return true
const age = prompt("Enter your age");
console.log(`Type of Age = ${typeof age}`);
const numbericAge = +age; // String to number conversion, Same as Number(age)
console.log(`Type of Numeric Age = ${typeof numbericAge}`);
if (numbericAge < 18) {
alert("Sorry, You are too young to drive this car Powering off");
} else if (numbericAge > 18) {
alert("Powering On Enjoy the ride!");
} else if (numbericAge === 18) {
alert("Congratulation on your first riding Enjoy the ride!");
}