JavaScript中==和===之间的区别是什么?
可能重复:JavaScript中==和===之间的区别是什么?,javascript,equals-operator,identity-operator,Javascript,Equals Operator,Identity Operator,可能重复: 在比较字符串和未定义值时,以下方法之间的区别是什么 var x; if(x==undefined) { alert(x); } 及 在这种情况下,我为什么要选择第二种方法。。请让我知道你的优点 ==也会检查相同的类型。您将通过几个示例了解: (1 == '1') //Returns true 因为==不需要处理类型,所以返回true。但是,如果希望进行严格的类型检查,则应该使用=,因为只有当它的类型相同且值相同时,才会返回true (1 === '1')
在比较字符串和未定义值时,以下方法之间的区别是什么
var x;
if(x==undefined)
{
alert(x);
}
及
在这种情况下,我为什么要选择第二种方法。。请让我知道你的优点
==
也会检查相同的类型。您将通过几个示例了解:
(1 == '1') //Returns true
因为==
不需要处理类型,所以返回true。但是,如果希望进行严格的类型检查,则应该使用=
,因为只有当它的类型相同且值相同时,才会返回true
(1 === '1') //Returns false
(1 === 1) //Returns true
- 当两个字符串具有相同的字符序列、相同的长度和对应的字符串中的相同字符时,它们是严格相等的
职位李> - 当两个数字在数字上相等(具有相同的数值)时,它们严格相等。NaN不等于任何东西,
包括楠。正零和负零彼此相等 - 如果两个布尔操作数均为真或均为假,则两个布尔操作数严格相等李>
- 如果两个对象引用同一个对象,则它们严格相等李>
- Null和未定义的类型是==(但不是==)
尝试在测试值是否相同之前将其转换为相同类型<代码>“5”==5=
不这样做;它要求相同类型的对象相等<代码>“5”!==5==
- 如果
为x
或undefined
,则null
将为真李>x==undefined
只有在x===undefined
为x
时才为真undefined
function greet(name, greeting) {
if (name == undefined) name = 'World';
if (greeting == undefined) greeting = 'Hello';
alert(greeting + ' ' + name);
}
greet(); // alerts "Hello World"
greet("Bob"); // alerts "Hello Bob"
greet(null, "Goodbye"); // alerts "Goodbye World"
==只是比较两个值,如果它们的类型不同,则进行类型转换
===比较值及其类型-因此此处不进行类型转换。Dup:@deceze场景不同…@user然后。==不检查数据类型,其中as==检查数据类型
function greet(name, greeting) {
if (name == undefined) name = 'World';
if (greeting == undefined) greeting = 'Hello';
alert(greeting + ' ' + name);
}
greet(); // alerts "Hello World"
greet("Bob"); // alerts "Hello Bob"
greet(null, "Goodbye"); // alerts "Goodbye World"