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

首頁 > 語言 > JavaScript > 正文

JavaScript 布爾操作符解析 && || !

2024-05-06 14:21:24
字體:
供稿:網(wǎng)友
1、邏輯非

邏輯非用!表示,可以應(yīng)用與ECMAScript的任何類型的值,邏輯非操作返回的是一個布爾值(true/false)。該操作符首先會將它的操作數(shù)轉(zhuǎn)換為一個布爾值,然后再對其求反。

下面說明下Boolean()轉(zhuǎn)型函數(shù)的一組規(guī)則。
數(shù)據(jù)類型轉(zhuǎn)換為true的值轉(zhuǎn)換為false的值
Booleantruefalse
String  任何非空字符串""(空字符串)
Number 任何非零數(shù)字值(包括無窮大)0和NaN
Object任何對象null
Undefined 無undefined

Boolean()轉(zhuǎn)型函數(shù)的簡便表示方法。-----------!!

2、邏輯與

邏輯與操作符由兩個和號(&&)表示,有兩個操作數(shù)。

邏輯與操作可以應(yīng)用于任何類型的操作數(shù),而不僅僅是布爾值。在有一個操作數(shù)不是布爾值的情況下,邏輯與操作就不一定返回布爾值;此時,它遵循一下規(guī)則:

1. 如果第一個操作數(shù)是對象,則返回第二個操作數(shù);
2. 如果第二個操作數(shù)是對象,則只有在第一個操作數(shù)的求值結(jié)果為true的情況下才會返回該對象;
3. 如果兩個操作符都是對象,則返回第二個操作數(shù); 遵循第一規(guī)則。
4. 如果有一個操作是null,則返回null;
5. 如果有一個操作符是NaN,則返回NaN;
6. 如果有一個操作符是undefined,則返回undefined。

邏輯與操作屬于短路操作,即如果第一操作數(shù)能夠決定結(jié)果,那么就不會再對第二個操作數(shù)求值。(可以理解為內(nèi)部的兩個return操作)。因此當(dāng)4、5、6規(guī)則沖突時,遵循短路操作原則。

代碼如下:
var nul = null;
var na = NaN;
var test;
test = na&&nul;
document.write(test); //NaN


代碼如下:
var nul = null;
var na = NaN;
var test;
test = nul&&na;
document.write(test); //null


因此,我們來總結(jié)一下。&&操作主要遵循幾大原則:

1.短路操作原則;
2.求值過程中會被轉(zhuǎn)型生成副本,但是返回值是原來值;

代碼如下:
// 偽代碼
function &&(param1,param2){
bparam1 = Boolean(param1);
if (!bparam1) return param1;
bparam2 = Boolean(param2);
return param2;
}
// 參數(shù)是一個對象時返回引用的指針值,函數(shù)同


3、邏輯或

邏輯或符號由兩個豎線符號(||)表示。
邏輯或符號同樣是短路操作符。其實現(xiàn)過程可以參照邏輯與的偽代碼。這里就不再列出一些規(guī)則了。
邏輯或常常用來做參數(shù)的缺省處理,比如 evt = evt || window.event;
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 桐庐县| 张家界市| 沂水县| 红原县| 建湖县| 忻州市| 弥渡县| 黎平县| 威信县| 凌海市| 兴化市| 正定县| 竹北市| 楚雄市| 石城县| 台中市| 汝阳县| 会理县| 阜南县| 普宁市| 华亭县| 西藏| 三明市| 昌乐县| 会理县| 凌海市| 石阡县| 莒南县| 额尔古纳市| 墨脱县| 新邵县| 郓城县| 巴马| 长宁县| 灵武市| 文登市| 清原| 内丘县| 德钦县| 巩义市| 饶阳县|