在JavaScript中使用“ in”运算符和点表示法的区别

迈克·萨夫(Mike Sav)

我有一个困扰我的问题。如果声明a var a,然后尝试使用“ in”运算符对其进行测试,则得到的结果为真,例如,如果我使用点符号进行相同的测试,则得到的结果为假。

var a;

if('a' in window) {
  console.log('a in window'); // this is written to the console
}

if (window.a) {
  console.log('window.a'); // nothing happening here
}

现在我注意到,当我给aa这样的值时,两个输出都可以工作...看一下并注意到我如何检查它是否不存在:

var a;

if('a' in window) {
  console.log('a in window'); // this is written to the console
}

if (!window.a) {
  console.log('!window.a'); // this is written to the console
}

a = 1;

if (window.a) {
  console.log('window.a'); // this is written to the console
} 

那么,为什么仅在为变量分配值时才使用点符号?我知道一个愚蠢的问题,但到目前为止,我还不能得到确切的答案!

保罗·罗

正如Johan所指出的那样,该支票正获得虚假价值。

if ('a' in window) console.log("a exists");
if (window.a) console.log("window.a is a truthy value");
if (!window.a) console.log("window.a is a falsey value");
if (typeof window.a != "undefined") console.log("window.a is not undefined");

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在条件中使用逻辑运算符和比较运算符(javascript)

来自分类Dev

在JavaScript中使用冒号运算符':'

来自分类Dev

使用.get()和->运算符之间有区别吗?

来自分类Dev

混合使用 AND 运算符和 OR javascript

来自分类Dev

使用or和not运算符

来自分类Dev

JavaScript中的点运算符

来自分类Dev

使用点运算符加载图像

来自分类Dev

在 if () 运算符中使用 &&

来自分类Dev

Javascript如何在圆括号中使用and / or运算符

来自分类Dev

Express无法在JavaScript中使用传播运算符

来自分类Dev

在mongodb运算符中使用javascript数组

来自分类Dev

在javascript中使用三元运算符

来自分类Dev

如何在Jquery或Javascript中使用IN运算符

来自分类Dev

如何检测在JavaScript中使用in运算符是否安全?

来自分类Dev

在 javascript 上的 if 中使用动态运算符

来自分类Dev

为什么instanceof运算符不使用驼峰表示法?

来自分类Dev

使用点运算符调用javascript函数

来自分类Dev

如何在 SQL 的 WHERE 子句中使用 IN 运算符和 AND 运算符...?

来自分类Dev

如何在IN和NOT IN运算符中使用SearchCriteria API?

来自分类Dev

在Ruby中使用.where和比较运算符

来自分类Dev

如何在CI中使用OR和AND运算符查询?

来自分类Dev

无法在Eclipselink中使用的函数和运算符

来自分类Dev

在MySQL和php中使用对象运算符

来自分类Dev

如何在IN和NOT IN运算符中使用SearchCriteria API?

来自分类Dev

Lua - 如何在表中使用运算符“和”?

来自分类Dev

JavaScript中+运算符和concat()方法有什么区别

来自分类Dev

coffeescript和javascript中的三元(问号运算符)之间的区别?

来自分类Dev

使用“或”运算符和使用多个子句之间有什么区别吗?

来自分类Dev

使用StringBulder类的append方法和串联“ +”运算符之间的区别

Related 相关文章

  1. 1

    在条件中使用逻辑运算符和比较运算符(javascript)

  2. 2

    在JavaScript中使用冒号运算符':'

  3. 3

    使用.get()和->运算符之间有区别吗?

  4. 4

    混合使用 AND 运算符和 OR javascript

  5. 5

    使用or和not运算符

  6. 6

    JavaScript中的点运算符

  7. 7

    使用点运算符加载图像

  8. 8

    在 if () 运算符中使用 &&

  9. 9

    Javascript如何在圆括号中使用and / or运算符

  10. 10

    Express无法在JavaScript中使用传播运算符

  11. 11

    在mongodb运算符中使用javascript数组

  12. 12

    在javascript中使用三元运算符

  13. 13

    如何在Jquery或Javascript中使用IN运算符

  14. 14

    如何检测在JavaScript中使用in运算符是否安全?

  15. 15

    在 javascript 上的 if 中使用动态运算符

  16. 16

    为什么instanceof运算符不使用驼峰表示法?

  17. 17

    使用点运算符调用javascript函数

  18. 18

    如何在 SQL 的 WHERE 子句中使用 IN 运算符和 AND 运算符...?

  19. 19

    如何在IN和NOT IN运算符中使用SearchCriteria API?

  20. 20

    在Ruby中使用.where和比较运算符

  21. 21

    如何在CI中使用OR和AND运算符查询?

  22. 22

    无法在Eclipselink中使用的函数和运算符

  23. 23

    在MySQL和php中使用对象运算符

  24. 24

    如何在IN和NOT IN运算符中使用SearchCriteria API?

  25. 25

    Lua - 如何在表中使用运算符“和”?

  26. 26

    JavaScript中+运算符和concat()方法有什么区别

  27. 27

    coffeescript和javascript中的三元(问号运算符)之间的区别?

  28. 28

    使用“或”运算符和使用多个子句之间有什么区别吗?

  29. 29

    使用StringBulder类的append方法和串联“ +”运算符之间的区别

热门标签

归档