DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> JavaScript中常用的運算符小結
JavaScript中常用的運算符小結
編輯:關於JavaScript     
一、一元運算符
1、delete 運算符:刪除對以前定義的對象屬性或方法的引用。例如:
var o=new Object;
o.name="superman";
alert(o.name); //輸出 "superman"
delete o.name;
alert(o.name); //輸出 "undefined"
刪除了name屬性,將其設置為undefined(即創建的未初始化的變量的值)。delete不能刪除開發者未定義(即ECMAScript定義)的屬性和方法。
例如,下面的代碼將發生錯誤:delete o.toString();
2、void 運算符: 對任何值都返回undefined。該運算符通常用於避免輸出不應該輸出的值。
例如:在HTML頁面中 <a href="javascript:window.open('about:blank')">Click Me</a>
點擊該鏈接,網頁中的鏈接消失,顯示"[object]" (IE中,火狐中顯示"[object Window]",Google中還是該鏈接)。因為window.open()方法返回了對新打開的窗口的引用。然後該對象被轉換成要顯示的字符串。要避免這種結果,可以用 void 運算符調用 window.open() 函數:
<a href="javascript:void(window.open('about:blank'))">Click Me</a>
這使window.open()調用返回undefined,它不是有效值,不會顯示在浏覽器窗口中。
3、前增量/前減量運算符:與C中的用法一樣。運算都發生在計算表達式之前。如:++i; --i 。
4、後增量/後減量運算符:後綴式運算符是在計算過包含它們的表達式後才進行增量或減量運算。如:i++; i-- 。
5、一元加法和一元減法
一元加法本質上對數字無任何影響: var iNum=25; iNum=+iNum; alert(iNum); //輸出25
一元加法運算符對對字符串進行操作時,它計算字符串的方式與 parseInt() 相似,主要的不同是對以"0x"開頭的字符串(表示十六進制數字),一元運算符才能將它轉換成十進制的值。因此,用一元加法轉換"010",得到的總是10,而"0xB"將被轉換成11。
var sNum="25"; alert(typeof sNum); //輸出 "string"
var iNum=+sNum; alert(typeof iNum); //輸出 "number"
一元減法就是對數值求負,與一元加法運算符相似,一元減法運算符也會把字符串轉換成近似的數字,此外還會對該值求負。
var sNum = "25"; alert(typeof sNum); //輸出 "string"
var iNum = -sNum; alert(iNum); //輸出"-25"
alert(typeof iNum); //輸出 "number"
二、位運算符:與二進制有關的一系列運算符,實際操作中貌似不怎麼用,就略過了……
位運算符NOT由否定號(~)表示。
位運算符AND由和號(&)表示。
位運算符OR由符號(|)表示。
位運算符XOR由符號(^)表示。
左移運算由兩個小於號表示(<<)。
有符號右移運算符由兩個大於號(>>)表示。
無符號右移由三個大於號(>>>)表示。
三、Boolean運算符
Boolean運算符有三種,即NOT、AND 和 OR。
1、邏輯NOT,用感歎號(!)表示。該運算符通常用於控制循環。與邏輯OR和邏輯AND運算符不同的是,邏輯NOT運算符返回的一定是Boolean值。邏輯NOT運算符的行為如下:
如果運算數是對象,返回false。
如果運算數是數字0,返回true。
如果運算數是0意外的任何數字,返回false。
如果運算數是null,返回true。
如果運算數是NaN,返回true。
如果運算數是undefined,發生錯誤。
例: var b = true;
while(!b){ …… }
2、邏輯 AND 運算符,用雙和號(&&)表示。結果為 true 時只有一種情況:true && true = true;
邏輯AND運算的運算數可以是任何類型的,不止是Boolean值。如果某個運算數不是原始的Boolean型值,邏輯AND運算不一定返回Boolean值:
如果一個運算數是對象,另一個是Boolean值,返回該對象。
如果兩個運算數都是對象,返回第二個對象。
如果某個運算數是null,返回null。
如果某個運算數是NaN,返回NaN。
如果某個運算數是undefined,發生錯誤。
如果第一個運算數是false,那麼無論第二個運算數的值是什麼,結果都不可能為true。
3、邏輯OR運算符,用雙豎線(||)表示。結果為false的情況只有一種:false || false=false; 其他情況均為true。
與邏輯AND運算符相似,如果某個運算數不是Boolean值,邏輯OR運算並不一定返回Boolean值:
如果一個運算數是對象,另一個是Boolean值,返回該對象。
如果兩個運算數都是對象,返回第一個對象。
如果某個運算數是null,返回null。
如果某個運算數是NaN,返回NaN。
如果某個運算數是undefined,發生錯誤。
邏輯OR也是簡便運算,對於邏輯OR運算符來說,如果第一個運算數值為true,就不再計算第二個運算數。
四、乘性運算符
1、乘法運算符,用星號(*)表示,用於兩個數相乘。但在處理特殊值時,ECMAScript中的乘法還有一些特殊行為:
如果運算數都是數字,執行常規的乘法運算,如果結果太大或太小,那麼生成的結果就是Infinity或-Infinity。
如果某個運算數是NaN,結果為NaN。
Infinity 乘以0,結果為NaN。
Infinity 乘以0以外的任何數字,結果為Infinity或-Infinity,由第二個運算數的符號決定。
2、除法運算符,用斜線(/)表示,用第二個數除第一個數。對於特殊值,特殊行為如下:
如果運算數都是數字,執行常規的觸發運算,如果結果太大或太小,那麼生成的結果是Infinity或-Infinity。
如果某個運算數是NaN,結果為NaN。
0除一個非無窮大的數字,結果為NaN。
Infinity被0以外的任何數字除,結果為Infinity或-Infinity,由第二個運算數的符號決定。
3、取模運算符,用百分號(%)表示。如果運算數都是數字,執行常規算術除法運算,返回余數。特殊行為:
如果被除數是 Infinity,或者除數是0,結果為NaN。
如果除數是無窮大的數,結果為被除數。
如果被除數為0,結果為0。
五、加性運算符
1、加法運算符(+),特殊行為:
某個運算數是NaN,結果為NaN。
Infinity 加-Infinity,結果為NaN。
如果某個運算數是字符串,那麼采用下列規則:
如果兩個運算數都是字符串,把第二個字符串連接到第一個字符串上。
如果只有一個運算數是字符串,把另一個運算數轉換成字符串,結果是兩個字符串連接成的字符串。
2、減法運算符(-),如果兩個運算數都是數字,將執行算術減法。特殊規則:
如果運算數是NaN,結果為NaN。
某個運算數不是數字,結果為NaN。
六、關系運算符
關系運算符小於、大於、小於等於和大於等於執行的是兩個數的比較運算,比較方式與算術比較運算相同。每個關系運算符都返回一個Boolean值。
對於字符串,第一個字符串中每個字符的代碼都會與第二個字符串中對應位置上的字符的代碼進行數值比較。
1、大寫字母的代碼都小於小寫字母的代碼,所以要得到按照真正的字母順序比較結果,必須把兩個運算數轉換成相同的大小寫形式,再進行比較。
2、在比較兩個字符串形式的數字時,比較的是它們的字符代碼。
3、比較一個字符串和數字,ECMAScript都會把字符串轉換為數字,然後按照數字順序比較它們。如果字符串不能轉換成數字,那麼返回NaN,任何包含NaN的關系運算都要返回false。因此,這樣會返回false。
七、等性運算符
1、等號(==) 和非等號(!=),為確定兩個運算數是否相等,這兩個運算符都會進行類型轉換。執行類型轉換的基本規則如下:
如果一個運算數是Boolean值,在檢查相等性之前,把它轉換成數字值。False轉換成0,true轉換成1。
如果一個運算數是字符串,另一個是數字,在檢查相等性之前,要嘗試把字符串轉換成數字。
如果一個運算數是對象,另一個是字符串,在檢查等性之前,要嘗試把對象轉換成字符串(調用toString()方法)。
如果一個運算數是對象,另一個是數字,在檢查等性之前,要嘗試把對象轉換成數字。
在進行比較時,該運算符還遵守下列規則:
值null和undefined相等。
在檢查相等性時,不能把null和undefined轉換成其他值。
如果某個運算數是NaN,等號將返回false,非等號將返回true。即使兩個運算數都是NaN,等號仍然返回false,因為根據規則,NaN不等於NaN。
如果兩個運算數都是對象,那麼比較的是他們的引用值。如果兩個運算數指向同一個對象,那麼等號返回true,否則兩個運算數不等。


2、全等號和非全等號
等號和非等號的同類運算符是全等號和非全等號。這兩個運算符所做的與等號和非等號相同,只是他們在檢查相等性前,不執行類型轉換。
全等號由三個等號(===)表示,只有在無需類型轉換運算數就相等的情況下,才返回true。
var sNum="55"; var iNum=55; alert(sNum==iNum); //輸出 "true"
alert(sNum===iNum); //輸出 "false"
非全等號由兩個感歎號加兩個等號(!==)表示,只有在無需類型轉換運算數不相等的情況下,才返回true。
var sNum="55"; var iNum=55; alert(sNum != iNum); //輸出 "false"
alert(sNum !== iNum); //輸出 "true"
八、其他運算符
1、條件運算符,即三元運算符 : variable = boolean_expression ? true_value : false_value;
2、賦值運算符(=) 復合賦值運算符:+=、-=、*=、/=、%=、<<=、>>=、>>>=
3、逗號運算符 用逗號運算符可以在一條語句中執行多個運算。 如: var iNum1=1,iNum2=2;

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved