类型胁迫在有条件的情况下更危险吗?
Is type coercion more dangerous inside a conditional?
我刚刚在一篇博客文章中读到了这一点:
如果要强制值,请在条件之外而不是条件内执行此操作。
我很好奇。在 Javascript 中,在条件中使用类型强制比在条件之外使用类型强制更糟糕吗?有副作用吗?
示例代码:
var initInt = 1
, initString = '1'
// Outside of a conditional
var coerceType = initInt == initString
if (coerceType === true) {
console.log('True')
}
// Inside of a conditional
if (initInt == initString) {
console.log('True')
}
似乎他们的观点只是你不应该使用==
来进行类型转换(或者根本不应该使用,就此而言)。
在条件中使用类型强制是可以的,只要非常清楚发生了什么:
if (myNum === +myNumString)
但是==
运算符有很多古怪、不一致且难以记住的行为,如该博客文章中所述。
正是出于这个原因,很多人建议根本不使用 ==
运算符。
延伸阅读
相关文章:
- 如何在未直接触发的情况下停止事件
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 在不使用jquery的情况下查找页面中的所有锚点并附加函数
- 在不打开聊天屏幕的情况下制作Zopim-ding代理
- 在不阻止默认行为的情况下检测IE10中的缩放
- 如何在不传递此信息的情况下查找被调用的元素
- 如何在不刷新页面的情况下更新显示框
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- JavaScript-在手机上不工作的情况下,在外部单击时隐藏元素
- 在我的情况下,如何进行http请求
- 在不知道深度或父属性的情况下从对象中删除属性
- 在不破坏未定义函数的情况下,对多个视图使用单个js文件
- ROR:如何在不重新加载浏览器的情况下从控制器获取参数
- 如何在不影响其他元素的情况下扩展DIV
- 如何在内联依赖项并将图像转换为dataURI的情况下完全提取网页
- 在不移动内部文本的情况下缩放元素的效果
- 在不设置协议的情况下,使用javascript/jquery更改iframe-src
- 默认情况下折叠和展开嵌套列表
- 如何在不单击javascript中的按钮的情况下触发事件
- 类型胁迫在有条件的情况下更危险吗?