国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 绍兴市| 陆丰市| 昭平县| 高淳县| 阿克苏市| 海原县| 阳东县| 库尔勒市| 理塘县| 东丽区| 黄冈市| 类乌齐县| 图们市| 阿克苏市| 陇南市| 滦平县| 涪陵区| 潢川县| 苗栗市| 邻水| 锦州市| 托克逊县| 敖汉旗| 垦利县| 横山县| 新建县| 酉阳| 永和县| 绥宁县| 桐庐县| 上栗县| 汾阳市| 施秉县| 措美县| 开阳县| 聊城市| 淄博市| 玉门市| 桐柏县| 靖宇县| 枣阳市|