日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

《JavaScript高级程序设计》阅读笔记(五):ECMAScript中的运算符(一)

發布時間:2024/4/14 javascript 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《JavaScript高级程序设计》阅读笔记(五):ECMAScript中的运算符(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2.9 運算符

2.9.1、一元運算符

  一元運算符只有一個參數,即要操作的對象或值。

  1、delete:刪除對以前定義的對象屬性或方法的引用,但此運算符不能刪除開發者未定義的屬性和方法。示例:

1 var o=new Object;
2 o.name="Nicholas";
3 o.show=function(){
4 return "test";
5 };
6 console.log(o.name); //outpus Nicholas
7 console.log(o.show()); //outpus test
8
9 delete o.name;
10 delete o.show;
11
12 console.log(o.name); //outpus undefined
13 console.log(o.show()); //outpus TypeError: o.show is not a function
14
15 delete o.toString;
16 console.log(o.toString()); //outpus [object Object]

  2、void:對任何值都返回undefined,該運算符通常用于避免輸出不應該輸出的值。

  如在鏈接中打開新窗口,代碼如下:

<a href="javascript:window.open('about:blank')">Click Me</a>

  點擊鏈接后會在新窗口中出現[object]。這是因為window.open()方法返回了對新打開窗口的引用。然后該對象將被轉換成要顯示的字符串。要避免這種結果,可以用void運算符調用window.open()函數:

<a href="javascript:void(window.open('about:blank'))">Click Me</a>

  3、前增量/前減量運算符:從C中借用的兩個運算符。示例:

1 var iNum=10;
2 console.log(++iNum); //outpus 11 same as iNum=iNum+1
3 console.log(iNum); //outpus 11
4 console.log(--iNum); //outpus 10 same as iNum=iNum-1
5 console.log(iNum); //outpus 10

  4、后增量/后減量運算符:從C中借用的兩個運算符。與前增量/前減量一樣,也是給數值加1或減1,不同的是后綴式運算符是在計算過包含它們的表達式后才進行增量或減量運算的。示例:

1 var iNum=10;
2 iNum--
3 console.log(iNum); //outpus 9
4 console.log(iNum--); //outpus 9
5 console.log(iNum); //outpus 8
6 iNum++
7 console.log(iNum); //outpus 9
8 console.log(iNum++); //outpus 9
9 console.log(iNum); //outpus 10

  5、一元加法和一元減法:用法與高中數學中學到的用法相同,一元加法對數字無任何影響,一元減法就是對數值求負。但一元回法和一元減法對字符串進行運算時與parseInt()相似,主要的不同是只有對以"ox"開頭的字符串,一元運算符才把它轉換為10進制的值。示例:

1 var iNum=25;
2 iNum=+iNum;
3 console.log(iNum); //outpus 25
4
5 var sNum="50";
6 console.log(typeof sNum); //outpus string
7 console.log(+sNum); //outpus 50
8 console.log(typeof +sNum); //outpus number
9
10 var sNum1="017";
11 var sNum2="0xB";
12 console.log(-sNum1); //outpus -17
13 console.log(-sNum2); //outpus -11

2.9.2 位運算符

  1、位運算NOT:由(~)表示,處理過程如下:

  (1) 把運算數轉換為32位數字

  (2) 把二進制形式轉換成它的二進制反碼;

  (3) 把二進制反碼轉換為浮點數

  示例:

1 var iNum1=25; //25 is equal to 0000 0000 0000 0000 0000 0000 0001 1001
2 var iNum2=~iNum1; //conver to 1111 1111 1111 1111 1111 1111 1110 0110
3 console.log(iNum2); //outpus -26
4
5 //位運算符NOT實質上是對數字求負,然后減1,因此下面的代碼也可以得到同樣的效果
6 var iNum3=25;
7 var iNum4=-iNum3-1;
8 console.log(iNum4);

  2、位運算AND:由(&)表示,直接對數字的二進制形式進行計算。規則為全為1才為1,否則為0。示例:

1 var iNum1=25; //25 is equal to 0000 0000 0000 0000 0000 0000 0001 1001
2 var iNum2=iNum1&3; // 3 is equal to 0000 0000 0000 0000 0000 0000 0000 0011
3 console.log(iNum2); // and is 0000 0000 0000 0000 0000 0000 0000 0001 outpus 1

  3、位運算OR:由(|)表示,直接對數字的二進制形式進行計算。規則為全為0才為0,否則為1。示例:

1 var iNum1=25; //25 is equal to 0000 0000 0000 0000 0000 0000 0001 1001
2 var iNum2=iNum1|3; // 3 is equal to 0000 0000 0000 0000 0000 0000 0000 0011
3 console.log(iNum2); // or is 0000 0000 0000 0000 0000 0000 0001 1011 outpus 27

  4、位運算XOR:由(^)表示,直接對數字的二進制形式進行計算。規則為只有一個數位存放的是1時才為1,否則為0。示例:

1 var iNum1=25; //25 is equal to 0000 0000 0000 0000 0000 0000 0001 1001
2 var iNum2=iNum1^3; // 3 is equal to 0000 0000 0000 0000 0000 0000 0000 0011
3 console.log(iNum2); // xor is 0000 0000 0000 0000 0000 0000 0001 1010 outpus 26

  5、左移運算:由(<<)表示,把數字中的所有數位向左移動指定的數量,保留符號位,左移一位相當于乘以2。

  6、有符號右移運算:由(>>)表示,把數字中的所有數位向右移動指定的數量,保留符號位,右移一位相當于除以2。

  7、無符號右移運算:由(>>>)表示,把數字中的所有數位向右移動指定的數量。對于正數跟有符號的右移完全一樣,對于負數作為正數來處理。

  示例:

1 var iOld=2;
2 var iOld1=64;
3 var iOld2=64;
4 var iOld3=-2;
5
6 var iNew=iOld<<5;
7 var iNew1=iOld1>>5;
8 var iNew2=iOld2>>>5;
9 var iNew3=iOld3>>>1;
10
11 console.log(iNew); //outpus 64
12 console.log(iNew1); //outpus 2
13 console.log(iNew2); //outpus 2
14 console.log(iNew3); //outpus 2147483647

  負數iOld3無符號右移的計算方法如下:

  先把-2轉換成無符號的等價形式,即-2的二進制補碼:

  -2的非負版本二進制表示:0000 0000 0000 0000 0000 0000 0000 0010

  該二進制的反碼:1111 1111 1111 1111 1111 1111 1111 1101

  在二進制反碼上加1:1111 1111 1111 1111 1111 1111 1111 1110

  最后再右移一位:0111 1111 1111 1111 1111 1111 1111 1111 即為:2147483647

2.9.3 Boolean運算符

  1、邏輯NOT:由(!)表示,返回值一定是Boolean值,行為如下:

  如果運算數是對象,返回false

  如果運算數是數字0,運回true

  如果運算數是0以外的任何數字,反回false

  如果運算數是null,返回true

  如果運算數是NaN,返回true

  如果運算數是undefined,發生錯誤

  2、邏輯AND:由(&&)表示,如果運算數均為Boolean型,只有當運算數均為true時才返回true,否則返回false。AND運算的運算數可以是任何類型,返回值不一定是Boolean值:

  如果一個運算數是對象,另一個是Boolean值,返回該對象

  如果兩個運算數都是對象,返回第二個對象

  如果某個運算數是null,返回null

  如果某個運算數是NaN,返回NaN

  如果某個運算數是undefined,發生錯誤

  ECMAScript中的邏輯AND也是簡便運算,即如果第一個運算數決定了結果,就不再計算第二個運算數,示例:

1 var bFalse=false;
2 var bResult=bFalse&&bUnknow;
3 console.log(bResult); //outpus false
4
5 var bTrue=true;
6 var bResult=bTrue&&bUnknow;
7 console.log(bResult); //outpus ReferenceError: bUnknow is not defined

  3、邏輯OR運算符:由(||)表示,如果運算數均為Boolean型,只有當運算數均為false時才返回false,否則返回true。OR運算的運算數可以是任何類型,返回值不一定是Boolean值:

  如果一個運算數是對象,另一個是Boolean值,返回該對象

  如果兩個運算數都是對象,返回第一個對象

  如果某個運算數是null,返回null

  如果某個運算數是NaN,返回NaN

  如果某個運算數是undefined,發生錯誤

  ECMAScript中的邏輯OR也是簡便運算,即如果第一個運算數決定了結果,就不再計算第二個運算數,示例:

1 var bTrue=true;
2 var bResult=bTrue||bUnknow;
3 console.log(bResult); //outpus true
4
5 var bFalse=false;
6 var bResult=bFalse||bUnknow;
7 console.log(bResult); //outpus ReferenceError: bUnknow is not defined

2.9.4 乘性運算符

  1、乘法運算符:由(*)表示,正常情況下跟數學中的乘法相同,特殊情況下有些特殊值:

  如果運算的結果太大或太小,生成結果為Infinity或-Infinity

  如果某個運算數是NaN,結果為NaN

  Infinity乘以0,結果為NaN

  Infinity乘以0以外的任何數字,結果為Infinity或-Infinity,由第二個運算數的符號決定

  Infinity乘以Infinity,結果為Infinity

  2、除法運算符:由(/)表示,正常情況下跟數學中的乘法相同,特殊情況下有些特殊值:

  如果運算的結果太大或太小,生成結果為Infinity或-Infinity

  如果某個運算數是NaN,結果為NaN

  Infinity被Infinity除,結果為NaN

  Infinity被任何數字除,結果為Infinity

  0除以一個非無窮大的數字,結果為NaN

  Infinity被0以外的任何數字除,結果為Infinity或-Infinity,由第二個運算數的符號決定

  3、取模運算符:由(%)表示,正常情況下跟數學中的乘法相同,特殊情況下有些特殊值:

  如果被除數是Infinity,或者除數是0,結果為NaN

  Infinity被Infinity除,結果為NaN

  如果除數是無窮大的數,結果為被除數

  如果被除數為0,結果為0

轉載于:https://www.cnblogs.com/artwl/archive/2011/11/30/2268932.html

總結

以上是生活随笔為你收集整理的《JavaScript高级程序设计》阅读笔记(五):ECMAScript中的运算符(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。