源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

利用JScript中运算符"||"和"&&"的特殊特性实现代码精简第1/2页

  • 时间:2022-11-21 09:39 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:利用JScript中运算符"||"和"&&"的特殊特性实现代码精简第1/2页
在JScript的众多运算符里,提供了三个逻辑运算符[b]&&[/b]、[b]||[/b]和[b]![/b],噢?! 是高级语言都提供的。按我们对逻辑运算的正常认识,逻辑运算的结果因该是ture或者false。但是JScript的逻辑运算却不完全是这么定义的,这里只有!运算符总是返回true|false,而||和&&运算比较的好玩。     JScript对于逻辑运算的true|false是这么定义的: [list] [*]所有对象都被认为是 true。 [/*][*]字符串当且仅当为空(""或'')时才被认为是 false。 [/*][*][b]null[/b] 和未定义的均被认为是 false。 [/*][*]数字当且仅当为 0 时才是 false。 [/*][/list]     可是逻辑运算符[b]||[/b]和[b]&&[/b]虽然遵循上面的定义规则,但是它们返回的值却很有意思。     对于&&运算,按照上面的规则,表达式 if ( 'abc' && '123' && new Date() ) 是执行true分支,可是这个表达式如果写成:
[img]http://www.cnblogs.com/Images/OutliningIndicators/None.gif[/img] var value = 'abc' && '123&& new Date();
    结果value=Fri Jan 21 00:01:17 UTC+0800 2005,原它从左到右检测,如果到了最后一个表达式也是为true的,就返回那个表达式。     对于||运算同理,对于下面的表达式:
[img]http://www.cnblogs.com/Images/OutliningIndicators/None.gif[/img] var value1 = 'abc' || '123|| null || false; [img]http://www.cnblogs.com/Images/OutliningIndicators/None.gif[/img] var value2 = null || '' || false || 'ok';
    结果value1='abc',value2='ok'。这是因为||运算会有"短路"特性,他也是从左向右检测,只不过它是一但发现有为true的值,就立即返回该表达式。     这样的特性可以帮组我们写出精简的代码,可是同时也带来代码不便于阅读维护的问题。     由于我手头暂时没有NS和moz什么的浏览器,不知道标准JavaScript是否也是这样支持的?如果您方便的话,请告如我运行后的结果。
当前1/2页 [b]1[/b][url=http://www.1sucai.cn/article/7948_2.htm]2[/url][url=http://www.1sucai.cn/article/7948_2.htm]下一页[/url][url=http://www.1sucai.cn/article/7948_all.htm]阅读全文[/url]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部