开始挖掘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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值