字符串上的JavaScript标识运算符

前端之家收集整理的这篇文章主要介绍了字符串上的JavaScript标识运算符前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_404_0@
我试图写一个原型来确定字符串是否为空.它只是玩JS和原型,没什么重要的.这是我的代码
String.prototype.IsEmpty = function() {
  return (this === "");
}

注意我使用===身份比较而不是==相等.当我使用上述定义运行函数时:

"".IsEmpty(); // false

如果我chagne的定义使用==为:

String.prototype.IsEmpty = function() {
  return (this == "");
}

新的def’n会做:

"".IsEmpty(); // true

我不明白为什么===不工作,因为“”与“”相同“

解决方法

这是因为“”是一个字符串原语,但是当你调用.IsEmpty()时,它被隐式转换为一个String对象.

您需要在其上调用.toString():

String.prototype.IsEmpty = function() {
  return (this.toString() === "");
}

有趣的是,这是浏览器特定的 – type是Chrome中的字符串.

正如@pst指出的那样,如果你要转换另一种方式并比较这个=== new String(“”);它仍然不起作用,因为它们是不同的实例.

猜你在找的JavaScript相关文章