国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

利用JScript中運算符"||"和"&&"的特殊特性實現(xiàn)代碼精簡第1/2頁

2019-11-21 02:13:59
字體:
供稿:網(wǎng)友
在JScript的眾多運算符里,提供了三個邏輯運算符&&、||!,噢?! 是高級語言都提供的。按我們對邏輯運算的正常認識,邏輯運算的結(jié)果因該是ture或者false。但是JScript的邏輯運算卻不完全是這么定義的,這里只有!運算符總是返回true|false,而||和&&運算比較的好玩。

    JScript對于邏輯運算的true|false是這么定義的:
  • 所有對象都被認為是 true。
  • 字符串當(dāng)且僅當(dāng)為空(""或'')時才被認為是 false。
  • null 和未定義的均被認為是 false。
  • 數(shù)字當(dāng)且僅當(dāng)為 0 時才是 false。

    可是邏輯運算符||&&雖然遵循上面的定義規(guī)則,但是它們返回的值卻很有意思。
    對于&&運算,按照上面的規(guī)則,表達式 if ( 'abc' && '123' && new Date() ) 是執(zhí)行true分支,可是這個表達式如果寫成:

var value = 'abc' && '123&& new Date();

    結(jié)果value=Fri Jan 21 00:01:17 UTC+0800 2005,原它從左到右檢測,如果到了最后一個表達式也是為true的,就返回那個表達式。

    對于||運算同理,對于下面的表達式:

var value1 = 'abc' || '123|| null || false;
var value2 = null || '' || false || 'ok';

    結(jié)果value1='abc',value2='ok'。這是因為||運算會有"短路"特性,他也是從左向右檢測,只不過它是一但發(fā)現(xiàn)有為true的值,就立即返回該表達式。
    這樣的特性可以幫組我們寫出精簡的代碼,可是同時也帶來代碼不便于閱讀維護的問題。
    由于我手頭暫時沒有NS和moz什么的瀏覽器,不知道標(biāo)準(zhǔn)JavaScript是否也是這樣支持的?如果您方便的話,請告如我運行后的結(jié)果。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 黄冈市| 云南省| 正蓝旗| 吉首市| 湖北省| 白水县| 田东县| 苏尼特右旗| 肇东市| 云安县| 团风县| 灌云县| 克拉玛依市| 邵阳市| 海南省| 大足县| 如皋市| 宜黄县| 银川市| 嵊泗县| 岫岩| 康定县| 普洱| 磐石市| 齐河县| 荥阳市| 金溪县| 横山县| 图木舒克市| 鄯善县| 台中市| 平凉市| 黄陵县| 益阳市| 宝山区| 长武县| 武川县| 天台县| 安国市| 甘泉县| 永兴县|