總結介紹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頁面中Click Me
點擊該鏈接,網頁中的鏈接消失,顯示"[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;
以上是總結介紹JavaScript中的八類運算符的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

如何使用WebSocket和JavaScript實現線上語音辨識系統引言:隨著科技的不斷發展,語音辨識技術已成為了人工智慧領域的重要組成部分。而基於WebSocket和JavaScript實現的線上語音辨識系統,具備了低延遲、即時性和跨平台的特點,成為了廣泛應用的解決方案。本文將介紹如何使用WebSocket和JavaScript來實現線上語音辨識系

人臉偵測辨識技術已經是一個比較成熟且應用廣泛的技術。而目前最廣泛的網路應用語言非JS莫屬,在Web前端實現人臉偵測辨識相比後端的人臉辨識有優勢也有弱勢。優點包括減少網路互動、即時識別,大大縮短了使用者等待時間,提高了使用者體驗;弱勢是:受到模型大小限制,其中準確率也有限。如何在web端使用js實現人臉偵測呢?為了實現Web端人臉識別,需要熟悉相關的程式語言和技術,如JavaScript、HTML、CSS、WebRTC等。同時也需要掌握相關的電腦視覺和人工智慧技術。值得注意的是,由於Web端的計

股票分析必備工具:學習PHP和JS繪製蠟燭圖的步驟,需要具體程式碼範例隨著網路和科技的快速發展,股票交易已成為許多投資者的重要途徑之一。而股票分析是投資人決策的重要一環,其中蠟燭圖被廣泛應用於技術分析。學習如何使用PHP和JS繪製蠟燭圖將為投資者提供更多直觀的信息,幫助他們更好地做出決策。蠟燭圖是一種以蠟燭形狀來展示股票價格的技術圖表。它展示了股票價格的

WebSocket與JavaScript:實現即時監控系統的關鍵技術引言:隨著互聯網技術的快速發展,即時監控系統在各個領域中得到了廣泛的應用。而實現即時監控的關鍵技術之一就是WebSocket與JavaScript的結合使用。本文將介紹WebSocket與JavaScript在即時監控系統中的應用,並給出程式碼範例,詳細解釋其實作原理。一、WebSocket技

如何利用JavaScript和WebSocket實現即時線上點餐系統介紹:隨著網路的普及和技術的進步,越來越多的餐廳開始提供線上點餐服務。為了實現即時線上點餐系統,我們可以利用JavaScript和WebSocket技術。 WebSocket是一種基於TCP協定的全雙工通訊協議,可實現客戶端與伺服器的即時雙向通訊。在即時線上點餐系統中,當使用者選擇菜餚並下訂單

如何使用WebSocket和JavaScript實現線上預約系統在當今數位化的時代,越來越多的業務和服務都需要提供線上預約功能。而實現一個高效、即時的線上預約系統是至關重要的。本文將介紹如何使用WebSocket和JavaScript來實作一個線上預約系統,並提供具體的程式碼範例。一、什麼是WebSocketWebSocket是一種在單一TCP連線上進行全雙工

隨著網路金融的快速發展,股票投資已經成為了越來越多人的選擇。而在股票交易中,蠟燭圖是常用的技術分析方法,它能夠顯示股票價格的變動趨勢,幫助投資人做出更精準的決策。本文將透過介紹PHP和JS的開發技巧,帶領讀者了解如何繪製股票蠟燭圖,並提供具體的程式碼範例。一、了解股票蠟燭圖在介紹如何繪製股票蠟燭圖之前,我們首先需要先了解什麼是蠟燭圖。蠟燭圖是由日本人

JavaScript和WebSocket:打造高效的即時天氣預報系統引言:如今,天氣預報的準確性對於日常生活以及決策制定具有重要意義。隨著技術的發展,我們可以透過即時獲取天氣數據來提供更準確可靠的天氣預報。在本文中,我們將學習如何使用JavaScript和WebSocket技術,來建立一個高效的即時天氣預報系統。本文將透過具體的程式碼範例來展示實現的過程。 We
