首頁 > web前端 > js教程 > 主體

JavaScript中的各種操作符匯總

怪我咯
發布: 2017-07-04 15:23:25
原創
1259 人瀏覽過

這裡我們說的運算子包括算數運算子和邏輯運算子等,包括布林與賦值等,為大家進行了JavaScript中的各種運算子使用總結,需要的朋友可以參考下

一元運算子
#只能操作一個值的運算子叫一元運算子。
一元操作符是ECMAScript中最簡單的操作符。

1.遞增和遞減運算子
遞增遞減運算子直接借鏡C,而且各有兩個版本:前置型和後置型。顧明思義,前置型應該讓位給要操作的變數之前,而後置型應該位於要操作的變數之後。
前置型:

var num1 = 1;
var num2 = 2;
var num3 = ++num1 + num2;//4
登入後複製

後置型:

var num1 = 1;
var num2 = 2;
var num3 = num1++ + num2;//3
登入後複製

上述兩段程式碼得出了不同的結果,原因就在與,後置遞增遞減與前置遞增遞減有一個非常重要的區別,即後置遞增遞減操作是在包含它們的語句被求值之後才執行的。

適用範圍:
前置遞增遞減與後置遞增遞減所有這四個運算子對任何值都適用。應用於不同值時,此運算元會像Number()轉型函數一樣對數值進行轉換,轉換後進行加減1的操作。

2.一元加和減運算子
一元加和減運算子主要用於基本的算術運算,也可以用來轉換資料型別 (該運算元會像Number()轉型函數一樣對這個值進行轉換)。

布林運算子
布林運算子一共有三個:非(NOT)、與(AND)、或(OR)。

1.邏輯非
邏輯非運算子由一個嘆號表示(!),可以套用於ECMAScript中的任何值。無論這個值是什麼資料類型,這個操作符都會傳回一個布林值。

同時使用兩個邏輯非運算符,實際上就會模擬Boolean()轉型函數的行為

#2.邏輯與
##邏輯與運算符由兩個和號(&&)表示,有兩個操作數且可運用於任何類型的操作數。邏輯與屬於短路操作,也就是如果第一個操作數求值結果是false,那麼就不會對第二個操作數求值。
當兩個值都為真值時,結果為true。當兩個值為一真一假時,結果為false。當兩個值都為假值時,傳回false。
其中一個值不是布林值時:遵循下列規則

第一個運算元為假,傳回第一個;

第一個運算元為真的時候,回傳第二個。

如果第一個操作數是對象,則傳回第二個操作數

var a = {b:1};
a && 'ss'//"ss"
登入後複製

如果第二個操作數是對象,則只有在第一個操作數的求值結果為true的情況下才會傳回該物件

'ss' && a//Object {b: 1}
登入後複製

如果兩個運算元都是對象,則傳回第二運算元

var c = {d:2};
c && a//Object {b: 1}
登入後複製

(1)如果有運算元是null,則傳回null

(2)如果有一個運算元是NaN,則回傳NaN
(3)如果有一個運算元是undefined,則傳回undefinded

##3.邏輯或

與邏輯與運算子相似,邏輯或運算子也是短路運算子。也就是說,如果第一個操作數的求值結果為true,就不會對第二個操作數求值了。
(1)第一個運算元為真,傳回第一個

(2)第一個運算元為假,傳回第二個


乘性運算子
ECMAScript定義了3個乘性運算子:乘法、除法和模

Infinity*0//NaN
0/0//NaN
Infinity/Infinity//NaN
登入後複製

加上性運算子

1.加法(轉字串)
兩個運算子都是數值
執行常規的加法計算。

Infinity + -Infinity//NaN
登入後複製

如果有一個運算元是字串

如果兩個運算子都是字串,則將第二個運算子與第一個運算子拼接起來

如果只有一個運算元是字串,則將另一個運算元轉換為字串,然後再將兩個字串拼接起來。

如果這個運算元是物件、數值或布林值,則呼叫它們的toString()方法取得對應的字串值,然後再套用前面關於字串的規則。對於null和undefined,則分別呼叫String()函數並取得字串"undefined"和"null"。

2 + '' //"2"
登入後複製

2.減法(轉數值)

如果兩個運算元都是數值
執行常規的算術減發運算並傳回結果,如果有運算元是NaN,則結果是NaN

Infinity - Infinity//NaN
登入後複製

如果有一個運算元不是數值

如果有一個運算元是字串、布林值、null或undefined,則先在後台呼叫Number( )函數將其轉換為數值,然後再根據前面的規則執行減法計算。如果轉化的結果是NaN,則減法的結果就是NaN。

如果有一個運算元是對象,則呼叫對象的valueOf()方法以取得表示該對象的數值。如果得到的值是NaN,則減法的結果是NaN。如果物件沒有valueOf()方法則呼叫其toString()方法並將所得的字串轉換為數值。

5 - true//4
登入後複製

关系操作符
如果两个操作数都是数值,则执行数值比较
如果两个操作数都是字符串,则比较两个字符串对应的字符编码值
如果一个操作数是数值,则将另一个操作数转换为数值,然后执行数值比较

var result = &#39;23&#39; < &#39;3&#39;//true
var result = &#39;23&#39; < 3//false
登入後複製

相等操作符
1.相等和不相等
先转换再比较

(1)如果有一个操作数是布尔值,则在比较相等性之前,先将其转换为数值
(2)如果有一个操作数是字符串,另一个操作数是数值,先将其转换为数值
(3)如果有一个操作数是对象,另一个不是,则调用对象的valueOf()方法,用得到的基本类型值按前面的基本规则进行比较
null和undefined是相等的
要比较相等性之前不能将null和undefined转换为任何其他值
如果两个操作数都是NaN,相等操作符也返回false,按规则,NaN不等于NaN

2.全等和不全等
仅比较而不转换

"55" !== 55 //true
登入後複製

条件操作符

variable = boolean_expression ? true_value : false_value
登入後複製

本质上,这段代码的含义就是基于对boolean_expression求值的结果,决定给变量variable赋什么值。如果求值结果为true,则给变量赋true_value;如果求值结果为false,则给变量variable赋false_value值。

赋值操作符
简单的赋值操作符由等号表示,其作用就是把右侧的值赋给左侧的变量。

逗号操作符
逗号操作符多用于声明多个变量;但除此之外,逗号操作符还用来赋值。在用于赋值时,逗号操作符总会返回表达式中的最后一项。

以上是JavaScript中的各種操作符匯總的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!