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

首頁 > 語言 > JavaScript > 正文

JS短路原理的應用示例 精簡代碼的途徑

2024-05-06 15:57:20
字體:
來源:轉載
供稿:網友
正如標題所言,js中||和&&的特性幫我們精簡了代碼的同時,也帶來了代碼可讀性的降低。這就需要我們自己來權衡了,下面有個不錯的示例

在js邏輯運算中,0、""、null、false、undefined、NaN都會判為false,其他都為true.

||先計算第一個運算數,如果可以被轉換成true,則返回左邊這個表達式的值,否則計算第二個運算數。即使||運算符的運算數不是布爾值,任然可以將它看作布爾OR運算,因為無論它返回的值是什么類型,都可以被轉換為布爾值。
利用它對非布爾型的值會將其返回的特性:對非布爾型的運算數使用||,用于選取一組備選值中的第一個定義了的并且非空的值(第一個為非false的值)

例:
var max = max_width || obj.max_width || 500 ;
var attr = attr || "";這個運算經常用來判斷一個變量是否已定義,如果沒有定義就給他一個初始值,在給函數的參數定義一個默認值的時比較有用。

&&,它先計算第一個表達式,若為假,就不會去處理第二個表達;否則繼續處理后繼表達式。從左到右選取表達式的第一個為非true的表達式的值,如果一直未找到則返回最后一個表達式的值。

例:(其中的味道還需要細心琢磨)

2 && 's1' && '123' && 'sss' 表達式的值等于 'sss'
2 && 's1' && '' && 'sss' 表達式的值等于 ''
2 && 's1' && NaN && 'sss'表達式的值等于 NaN

if(a >=5){
alert("你好");
}
可以簡成:
a >= 5 && alert("你好");

typeof 5和typeof !!5的區別,這是一種更嚴謹的寫法,!!的作用是把一個其他類型的變量轉成的bool類型。例如, if(!!attr) => if(attr)

js中||和&&的特性幫我們精簡了代碼的同時,也帶來了代碼可讀性的降低。這就需要我們自己來權衡了。

JS中的startWith功能的巧妙實現,alert(!'asdf'.indexOf('s')) =》 !0 = true

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 体育| 外汇| 个旧市| 灵寿县| 石首市| 南康市| 元阳县| 浮梁县| 沈丘县| 聊城市| 建平县| 云和县| 瓦房店市| 内丘县| 射洪县| 仪征市| 陇南市| 东乡县| 镇雄县| 漾濞| 庆安县| 西峡县| 西乌珠穆沁旗| 杂多县| 修武县| 金昌市| 都江堰市| 南郑县| 长武县| 盐源县| 洪泽县| 科技| 凌云县| 高青县| 西城区| 汕头市| 刚察县| 瑞丽市| 娄底市| 离岛区| 永德县|