JavaScript是否支持is运算符?

时间:2017-05-27 18:28:50

标签: javascript

JS是否支持is运算符? (编辑:) ...如果是,它与instanceof相同?

var blob = new Blob();

if (blob is Blob) {
    console.log("Yes");
}
else {
    console.log("No");
}

修改
即使我可以在控制台中测试,我问的原因是

  1. 当我在网上搜索或在SO
  2. 上搜索时,没有任何结果
  3. 它可能是为ES5或ES6添加的,我不知道如何在控制台中启用它来测试
  4. 如果没有添加,可能计划在将来添加

2 个答案:

答案 0 :(得分:2)

我刚用chrome打开了我的开发者控制台并尝试了一个简单的测试:

> is

结果:

VM1002:1 Uncaught ReferenceError: is is not defined
at <anonymous>:1:1

所以,不,JS没有实现is它完全未定义,但instanceof确实具有完全相同的功能。

回答你的编辑:

  • 当我在网上或在这里搜索SO 时没有出现任何问题:这是因为它不是像is那样实现的(因为它在python中),但是如instanceof,在不知道您要搜索的内容(&#34;检查实例javascript&#34; )的情况下,可能很难找到。
  • 它可能是为ES5或ES6添加的,我不知道如何在控制台中启用它来测试:据我所知,浏览器控制台中包含了JS中的所有内容可以使用的引擎,如果它不存在,那么它不是一个东西而不是它被禁用,测试它的最好方法可能是尝试使用符合ES6的浏览器。
  • 如果没有添加,可能会计划在将来添加:因为它已经作为instanceof运算符实现了,它不太可能它也会被添加为is运算符,因为它们具有相同的功能,在知道答案之前需要知道它已经存在对此。您可以找到保留字列表,例如instanceof(包括未来保留字和未添加的保留字)here.

答案 1 :(得分:2)

是的,通过JavaScript中的instanceof operator

var blob = new Blob();

if (blob instanceof Blob) {
    console.log("Yes");
}
else {
    console.log("No");
}