变量检查(讨论5113374的扩展)
variable check (extension of discussion 5113374)
这个讨论很有趣,但我无法找到真正适合我的东西,因为我真的只想返回true
或false
对象存在。我也非常不喜欢冗长的代码,并且正在寻找一种简单易行的方法来编写内容,而无需大惊小怪。
例如,它应该这样定义:Bigobject.option
但这可能还不存在。
所以我想出了这个:
(!Bigobject.option == false)
,如果 option
尚不存在,则返回 false
,如果它已设置为任何内容,包括"无"或空字符串、对象或数组,则返回true
。
我想了解的:
这是一种奇怪的做法吗?"合法"吗?这会始终如一地工作吗?我应该以不同的方式做吗?感谢您的帮助。
对我来说,
这是关于功能之后的可读性。
(!Bigobject.option == false)
阅读你没有做过的东西是令人困惑的。 尝试以从未见过您的代码的人的身份阅读您的代码。 你能预测什么(!Bigobject.option == false)
会立即回来吗?
我同意链接问题中的所选答案,因为您(可能)知道作为新读者(Bigobject.option === null)
什么。
要执行您的要求:返回变量存在的布尔值。 我会使用 (typeof(Bigobject.option) === "undefined")
,除非Bigobject.option
有可能成为字符串"undefined"
编辑:我意识到我没有真正回答你的问题......
这是一种奇怪的做法吗?"合法"吗?
- IMO 这很奇怪,但我很确定这是合法的。 JSLINT 会警告您"=="。
这会始终如一地工作吗?
- 如果 Bigobject.option = false,它将返回 false。
我应该以不同的方式做吗?
- 我建议你这样做。
相关文章:
- Node.js v6.2.0类扩展不是函数错误
- 扩展移相器按钮类不工作
- chrome扩展中的navigator.geolocation.getCurrentPosition
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- chrome扩展更改主机/域警告
- TableExport jquery插件:文件名和扩展名问题
- 如何在chrome扩展中重定向到html页面
- Chrome扩展没有't在重新加载之前考虑期权价值
- 扩展SVGTextElement时出现Typescript Uncaught TypeError
- 如何通过自己获得Chrome扩展的用户反馈/错误报告
- Javascript”;类“;带有参数的扩展
- 试图阻止Chrome通过扩展关闭
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- 表达式引擎扩展开发-向呈现的条目添加自定义javascript
- 从选项页面更新chrome扩展清单权限
- 如何将chrome扩展功能移植到移动设备(特别是jquery和trello)
- Chrome扩展:遍历不同的页面并收集数据
- DataTable按下键选择扩展/导航
- 扩展jQuery插件以更改配置
- 变量检查(讨论5113374的扩展)