摘要:代碼示例等號檢查,類型轉(zhuǎn)換后返回全等檢查,由于時類型,時類型,類型不同,返回關系運算符關系運算符執(zhí)行的是比較運算,通常用于判斷兩個變量哪個大哪個小關系運算符都返回一個布爾值。邏輯或運輸符用雙豎線表示。
1.運算符
JavaScript中常見的運算符包含:賦值運算符、算數(shù)運算符、等性運算符、關系運算符、條件運算符、布爾運算符、邏輯運算符……
1.賦值運算符 =賦值運算符“=”,用于給某個變量賦值。
代碼示例:
var x; x=5; //把數(shù)字 5 賦值給變量x x="hello"; //把字符串 hello 賦值給x
除了簡單的賦值運算符“=”之外,還有一種常用的復合賦值運算符
1.1 加法/賦值運算符 +=加法賦值運算符x+=y,等價于x=x+y,它是一種簡寫形式。
代碼示例:
var x=5; x+=1; //等價于 x=x+1; console.log(x); //61.2 減法/賦值運算符 -=
減法賦值運算符x-=y,等價于x=x-y,它是一種簡寫形式。
代碼示例:
var x=5; x-=1; //等價于 x=x-1; console.log(x); //42.算數(shù)運算符
JavaScript中的算數(shù)運算符主要用在數(shù)字類型變量的數(shù)學運算,包含加法、減法、乘法、除法、取余等等。
代碼示例:
var x=5,y=2; console.log(x+y); //加法運算,結果:7 console.log(x-y); //減法運算,結果:3 console.log(x*y); //乘法運算,結果:10 console.log(x/z); //除法運算,結果:2.5 console.log(x%y); //取余運算,結果:1, 5除以2,商為2,余數(shù)為13.等性運算符
等性運算符主要用于判斷兩個變量的值和類型是否相等。判斷返回的結果為一個布爾值。
3.1等號和非等號在JavaScript中等號由雙等號(==)表示,當雙等號兩邊運算數(shù)相等時,返回結果為true。
代碼示例:
var x=5,y=5,z=9; console.log(x==y); //true console.log(x==z); //false
非等號由感嘆號加等號(!=)表示,當非等號兩邊的運算數(shù)不相等時,返回結果為true。
代碼示例:
var x=5,y=5,z=9; console.log(x!=y); //false console.log(x!=z); //true
注意:在比較兩個運算數(shù)是否相等時,JavaScript引擎會將這兩個運算數(shù)進行類型轉(zhuǎn)換
執(zhí)行類型轉(zhuǎn)換的規(guī)則如下:
布爾值轉(zhuǎn)換成數(shù)字:false轉(zhuǎn)換成0,true轉(zhuǎn)換成1.
數(shù)字與字符串:字符串轉(zhuǎn)換成數(shù)字。
對象與字符串:把對象轉(zhuǎn)換成字符串。
對象與數(shù)組:把對象轉(zhuǎn)換成數(shù)組。
在比較時,對于一些特殊的運算數(shù),遵守以下規(guī)則:
null和undefined相等。
不能把null和undefined轉(zhuǎn)換成其他值。
只要有一個運算數(shù)是NaN,等號返回false,非等號返回true。
如果兩個運算數(shù)都是對象,比較的是他們的引用值。
如果兩個運算數(shù)指向同一對象,等號返回true。
即使兩個數(shù)都是NaN,等號仍然返回false。
特殊的情況:
表達式 | 返回值 |
---|---|
null == undefined | true |
"NaN" == NaN | false |
5 == NaN | false |
NaN == NaN | false |
NaN !=NaN | true |
false == 0 | true |
true == 1 | true |
true == 2 | false |
undefined == 0 | false |
null == 0 | false |
"5" == 5 | true |
全等號和非全等號所做的事與等號和非等號相同,只是在檢查相等性前,不執(zhí)行類型轉(zhuǎn)換
全等號由三個等號表示(===),檢查時不僅要值相等,更要類型相等。
代碼示例:
var x=5; var y="5"; console.log(x==y); //等號檢查,類型轉(zhuǎn)換后返回 true console.log(x===y); //全等檢查,由于x時number類型,y時string類型,類型不同,返回false4.關系運算符
關系運算符執(zhí)行的是比較運算,通常用于判斷兩個變量哪個大?哪個小?關系運算符都返回一個布爾值。
常用的關系運算符有大于(>)、小于(<)、大于等于(>=)、小于等于(<=)
代碼示例:
var x=5,y=3,z=5; console.log(x>y); //true console.log(x4.1字符串與字符串之間的關系比較=z); //true console.log(x<=z); //true
對于數(shù)字類型的變量關系比較我們遵循數(shù)學原則,但是對于字符串類型的變量,如去要進行關系比較則需按照ASCII碼;
ASCII碼對照表見下圖:
代碼示例:
var x="Hello",x="world"; console.log(x>y); //false
如上述代碼所示,如果我們要比較Hello和world這兩個字符串,首先比較首字符的大小,對照ASCII字符編碼表,H的十進制編碼為72,w的十進制編碼為119,所以變量x應該是小于變量y,故而上面代碼返回結果為false。
4.2數(shù)字與字符串之間的關系比較當一個字符串與數(shù)字進行關系比較時,JavaScript引擎會將字符串轉(zhuǎn)換成數(shù)字,然后按照數(shù)字順序比較它們。
代碼示例:
var x="30",y=5; console(x>y); //true
在上述示例代碼中,字符串"30"將被轉(zhuǎn)換成數(shù)字30,然后與數(shù)字5進行比較。
但是,如果字符串不能轉(zhuǎn)換成數(shù)字又該如何呢?
var x="hello",y=9; console.log(x>y); //false
字符串"hello"不能轉(zhuǎn)換成有意義的數(shù)字,所以在類型轉(zhuǎn)換的時候返回的是NaN。
==任何包含NaN的關系運算都要返回false==,因此上述代碼也輸出false。
條件運算符又稱為三元運算符,它在JavaScript中是一個既有比較又有賦值的運算符。語法如下:
var x=booleanExpressin ? trueValue : falseValue;
該運算符的意思是:根據(jù)booleanExpressin條件表達式的計算結果,如果條件表達式返回的結果為true,則把trueValue賦值給x,如果條件表達式返回的結果為false,則把falseValue賦值給變量。
代碼示例:
var x=5,y=10; var z=(x>y)?x:y; console.log(z); //106.邏輯運算符
JavaScript中的邏輯運算符有三種:NOT(取反)、AND(邏輯與)和OR(邏輯或)
在進行邏輯運算之前,JavaScript會將變量轉(zhuǎn)換成布爾類型。因此我們需要了解一下不同類型的變量轉(zhuǎn)換為布爾類型時的邏輯值:
參數(shù) | 說明 | 轉(zhuǎn)換結果 |
---|---|---|
"" | 空字符串 | false |
"hello" | 非空字符串 | true |
" " | 空格 | true |
0 | 數(shù)字0 | false |
5.5 | 非零正數(shù) | true |
-4 | 非零負數(shù) | true |
null | false | |
NaN | false | |
undefined | false | |
Object | 對象 | true |
Array | 數(shù)組 | true |
邏輯 NOT 取反運算符,意思是得到與當前參數(shù)相反的結果,由感嘆號(!)表示,取反運算符返回的一定是布爾值。
注意:如果運算數(shù)是undefined,發(fā)生錯誤。
代碼示例:
var bFalse = false; var sRed = "red"; var iZero = 0; var iThreeFourFive = 345; var oObject = new Object(); console.log(!bFalse); //true console.log(!sRed); //false console.log(!iZero); //true console.log(!iThreeFourFive); //false console.log(!oObject); //false6.2 AND 邏輯與
邏輯與AND運算符,進行運算時需要兩個參數(shù),只有當兩個參數(shù)轉(zhuǎn)換都為true時,邏輯與才返回true。邏輯與AND運輸符用雙和號(&&)表示。
代碼示例:
var x=true,y=false; console.log(x&&y); //false
注意:邏輯與AND運算的運算數(shù)可以是任何類型的,如果某個運算數(shù)不是原始的布爾類型,邏輯與AND運算不一定返回布爾值:
如果一個運算數(shù)是對象,另一個是 Boolean 值,返回該對象。
如果兩個運算數(shù)都是對象,返回第二個對象。
如果某個運算數(shù)是 null,返回 null。
如果某個運算數(shù)是 NaN,返回 NaN。
如果某個運算數(shù)是 undefined,發(fā)生錯誤。
6.3 OR 邏輯或邏輯或OR運算符,進行運算時需要兩個參數(shù),只要當兩個參數(shù)中其中一個為true時,邏輯與返回true。邏輯或OR運輸符用雙豎線(||)表示。
代碼示例:
var x=true,y=false; console.log(x||y); //true
注意:邏輯或 OR 與邏輯與 AND 運算符相似,如果某個運算數(shù)不是 Boolean 值,邏輯 OR 運算并不一定返回 Boolean 值:
如果一個運算數(shù)是對象,并且該對象左邊的運算數(shù)值均為 false,則返回該對象。
如果兩個運算數(shù)都是對象,返回第一個對象。
如果最后一個運算數(shù)是 null,并且其他運算數(shù)值均為 false,則返回 null。
如果最后一個運算數(shù)是 NaN,并且其他運算數(shù)值均為 false,則返回 NaN。
如果某個運算數(shù)是 undefined,發(fā)生錯誤。
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/96255.html
摘要:個人前端文章整理從最開始萌生寫文章的想法,到著手開始寫,再到現(xiàn)在已經(jīng)一年的時間了,由于工作比較忙,更新緩慢,后面還是會繼更新,現(xiàn)將已經(jīng)寫好的文章整理一個目錄,方便更多的小伙伴去學習。 showImg(https://segmentfault.com/img/remote/1460000017490740?w=1920&h=1080); 個人前端文章整理 從最開始萌生寫文章的想法,到著手...
摘要:四這個題目比較簡單即函數(shù)聲明和變量聲明的關系和影響,遇到同名的函數(shù)聲明,不會重新定義五關于這個題目,的規(guī)范有解釋的。屬性的值是對象關于對象的具體定義,看這里對象六這個題目可以說是最簡單的,也是最詭異的關于這個題目,我們先來了解個概念。 廢話不多說,直接看題目,先不要急著看答案 先自己思考,收獲更多 (長期補倉); 一 var out = 25, inner = { ...
摘要:理解的函數(shù)基礎要搞好深入淺出原型使用原型模型,雖然這經(jīng)常被當作缺點提及,但是只要善于運用,其實基于原型的繼承模型比傳統(tǒng)的類繼承還要強大。中文指南基本操作指南二繼續(xù)熟悉的幾對方法,包括,,。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權,非商業(yè)轉(zhuǎn)載請注明出處。 怎樣使用 this 因為本人屬于偽前端,因此文中只看懂了 8 成左右,希望能夠給大家?guī)韼椭?...(據(jù)說是阿里的前端妹子寫的) this 的值到底...
摘要:顯示的調(diào)用轉(zhuǎn)換過程稱為顯式強制類型轉(zhuǎn)換,隱式的情況稱為隱式強制類型轉(zhuǎn)換。隱式強制類型轉(zhuǎn)換讓代碼變得晦澀難懂而又便捷而奇妙。事實上,允許在比較中進行強制類型轉(zhuǎn)換,而不允許。如果有并且返回基本類型值,就使用該值進行強制類型轉(zhuǎn)換。 JavaScript是一種非常靈活的現(xiàn)代編程語言,靈活到使用者極其容易被忽視的它那廣闊的世界以及它帶給我們的無限遐想空間。本文將對JavaScript最最基礎也最...
閱讀 3741·2021-10-15 09:42
閱讀 2603·2021-09-03 10:50
閱讀 1641·2021-09-03 10:28
閱讀 1795·2019-08-30 15:54
閱讀 2517·2019-08-30 12:46
閱讀 412·2019-08-30 11:06
閱讀 2826·2019-08-30 10:54
閱讀 528·2019-08-29 12:59