类型转换问题,如何使用好的旧===而不是===
Typecasting issues, how to use good old == instead of ===
我真的很喜欢Coffeescript,但最近让我抓狂的一件事是if语句中的数字和字符串的类型问题。通常情况下,这不是问题,因为Javascript不在乎何时使用==,但Coffeescript会将所有比较转换为===。有没有办法让草率的旧比较重新回来?我喂愚蠢的东西,但我没有在上面找到任何东西。
原因是我使用出色的http://js2coffee.org/为了更容易阅读,但我输入了类型转换问题,因为===比较被===替换。不用说,我很懒地重构整个代码;)。
这是经过设计的。引用《CoffeeScript:加速JavaScript开发》一书
CoffeeScript的is和==都编译为JavaScript的===;没有获取JavaScript的==的松散、类型强制相等检查的方法,这被JSLint和其他人认为是许多"WTF?"时刻。让我们借用一个例子http://wtfjs.com/2011/02/11/all-your-commas-are-belong-to-Array:
",,," == new Array(4) // true
There are also cases where == isn’t transitive:
'' == '0' // false
0 == '' // true
0 == '0' // true
为了避免这些令人头疼的问题,您应该执行类型转换显式
正如asawyer所说,这是经过设计的。如果您真的认为您需要==
比较,那么您可以将其放在backtick:中
if `foo == bar`
alert 'Sloppy comparison true'
相关文章:
- 我的图表出了什么问题?我使用的是谷歌图表api
- Plupload问题-正在使用{Filename}.part&FileUploadedevent未被触发
- 自动缩放问题:它使用字符's计数
- 关于处理真假的问题 从使用 Ajax 的服务器中返回
- 我有一个问题,使用 Javascript 或 Jquery 创建具有字符串计数的动态字段
- Javascript 循环 + 对象问题:如何使用循环获取对象中的必需项
- Dojo Dnd 问题:Dojo 使用 insertNodes 在源代码中插入来自 json 的数据
- JS语法问题还是使用三个.js三个.循环中的图像加载器
- 黑屏问题,使用cocoonjs编译
- IE8中的问题,使用引导程序显示网页
- Javascript问题,使用localhost网站运行良好,没有'无法使用计算机名
- ExtJS 4 -关于MVC架构的问题,使用MVC进行组件开发
- 测试时的问题(同时使用javascript &QUnit)
- 这是同步问题吗?使用谷歌翻译来连锁翻译单词
- 我的实现有什么问题,使用Date对象的setDate函数
- 在回发问题上使用javascript在gridview中选择
- JavaScript/jQuery的奇怪问题,使用alert()修复
- 跨域问题,使用不同端口的HTTP请求
- 问题在使用CSS3和Jquery的进度条的多步表单
- 调用“onclick”时出现问题事件使用PyQt &javascript