微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

开始挖掘js与dojo可能踩的坑

1. && 与 || 操作符

如果&&左侧表达式的值为真值,则返回右侧表达式的值;否则返回左侧表达式的值。

如果||左侧表达式的值为真值,则返回左侧表达式的值;否则返回右侧表达式的值。

所以不要天真地以为他们始终返回boolean

"abc" && "123"  // "123"
"" && "123"  // ""

2. 上一个坑看起来dojo 1.x踩了

dojo.isAlien判断是否是build-in function. 

// summary:
//		Returns true if it is a built-in function or some other kind of
//		oddball that *should* report as a function but doesn't
return it && !d.isFunction(it) && /\{\s*\[native code\]\s*\}/.test(String(it)); // Boolean

一些例子。

dojo.isAlien("") // ""
dojo.isAlien(0) // 0
更棘手的是,没有找到可以返回true的例子。比如

dojo.isAlien(alert) // false
dojo.isAlien(isFinite) // false
类似的类型判断还有一些不太严谨的地方。估计是dojo自己也发现这里坑比较大,这个方法以及其他一些类型判断在2.0后移除了。

http://dojotoolkit.org/reference-guide/1.9/releasenotes/migration-2.0.html#testing-object-types

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐