我正在检查两个字符串的相等性,无论它们的大小写和空格如何。

我正在使用此代码:

var reqstr = 'Test   ' ;
var requested_data_one = 'Test ' ;

var checkequality = reqstr.toUpperCase().tri === requested_data_one.toUpperCase().trim();

if(checkequality){
    alert('yes');
} else {
    alert('no');
}


如图所示,我故意给出tri而不是trim(),但是为什么它没有引发错误?这是我的小提琴

http://jsfiddle.net/dpL73v2y/

请让我知道这是否有效。

最佳答案

因为JavaScript将tri解释为返回的大写字符串对象的属性。不存在这样的属性,但是如果您尝试检索不存在的属性,JavaScript不会出错-它只会返回undefined。

"foo".toUpperCase().bar; //undefined

09-25 18:23