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

本文深入探讨了JavaScript中&&与||操作符的用法,包括它们如何根据表达式的值来决定返回结果,以及在实际应用中可能出现的一些陷阱。同时,文章还介绍了dojo.isAlien方法用于检测内置函数或其他特殊类型的使用情况,并提供了相关实例演示。
  1. && 与 || 操作符

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

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

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


"abc" && "123"  // "123"
"" && "123"  // ""2. 上一个坑看起来dojo 1.x踩了

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


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

// 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

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

dojo.isAlien(alert) // false
dojo.isAlien(isFinite) // false


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值