JS的基礎語法
技術標籤:javascript
運算子
運算子也稱為操作符
通過運算子可以對一個或多個值進行操作或運算
typeof運算子
用來檢查一個變數的資料型別
語法:typeof變數
它會返回一個用於描述型別的字串作為結果
算數運算子
"+"對兩個值進行加法運算並返回結果
“-” 對兩個值進行減法運算並返回結果
“*” 對兩個值進行乘法運算並返回結果
“/” 對兩個值進行除法運算並返回結果
"%"對兩個值進行取餘運算並返回結果
除了加法以外,對非Number型別的值進行運算時,都會先轉換為Number然後在做運算.
而做加法運算時,如果兩個字串進行相加,則會做拼串操作,將兩個字元連線為一個字串.
任何值和字串做加法,都會先轉換為字串,然後在拼串
自增
自增可以使變數在原值的基礎上自增1
自增使用 ++
自增可以使用前 ++(++a)後++(a++)
無論是 ++a還是 a++都會立即使原變數自增1
不同的是 ++a和 a++的值是不同的,
++a的值是變數的新值(自增後的值,先進行++,然後再進行運算)
a++的值是變數的原值(自增前的值,先進行運算,然後再進行++)
自減
自減可以使變數在原值的基礎上自減1
自減使用 –
自增可以使用前 --(–a)後–(a–)
無論是 --a還是 a–都會立即使原變數自減1
不同的是 --a和 a–的值是不同的,
–a的值是變數的新值(自減後的值,先進行- -,然後再進行運算)
邏輯運算子
!
非運算可以對一個布林值進行取反,true變false false變true
當對非布林值使用!時,會先將其轉換為布林值然後在取反
我們可以利用!來將其他的資料型別轉換為布林值
&&
&&可以對符號兩側的值進行與運算
只有兩端的值都為true時,才會返回true.只要有一個false就會返回false.
與是一個短路的與,如果第一個值是false,則不在檢查第二個值
對於非布林值,它會將其轉換為布林值然後在運算,並返回原值
規則:
1.如果第一個值為false,則返回第一個值
2.如果第一個值為true,則返回第二個值
// && and 和
// 一真一假 輸出假的
// 兩假 輸出前面的
// 兩真 輸出後面的
console.log(1 && 0);//0
console.log(0 && 1);//0
console.log(0 && undefined);//0
console.log(1 && 10);//10
||
||可以對符號兩側的值進行或運算
只有兩端都是false時,才會返回false.只要有一個true,就會返回true.
或是一個短路的或,如果第一個值是true,則不在檢查第二個值
對於非布林值,它會將其轉換為布林值然後在運算,並返回原值
規則:
1.如果第一個值為true,則返回第一個值
2.如果第一個值為false,則返回第二個值
// || or 或
// 一真一假 輸出真值
// 兩假 輸出後面的值
// 兩真 輸出前面的值
console.log(1 || 0);//1
console.log(null || 10);//10
console.log(null || undefined);//undefined
console.log(10 || 1);//10
賦值運算子
=
可以將符號右側的值賦值給左側變數
+=
a + = 5;//相當於 a = a+5
var str = 'hello';str +='world';
-=
a -= 5;//相當於 a = a-5
*=
a *= 5;//相當於 a = a*5
/=
a /= 5;//相當於 a = a/5
%=
a %= 5;//相當於 a = a%5
關係運算符
關係運算符用來比較兩個值之間的大小關係的
大於
= 大於等於
<小於
<=小於等於
關係運算符的規則和數學中一致,用來比較兩個值之間的關係,
如果關係成立則返回true,關係不成立立刻返回false.
如果比較的兩個值是非數值,會將其轉換為Number然後在比較.
如果比較的兩個值都是字串,此時會比較字串的Unicode編碼,而不會轉換為Number.
相等運算子
==
相等,判斷左右兩個值是否相等,如果相等返回true,如果不等返回false
相等會自動對兩個值進行型別轉換,如果對不同的型別進行比較,會將其轉換為相同的型別然後再比較,轉換後相等它也會返回true,null == undefined
!=
不等,判斷左右兩個值是否不等,如果不等則返回true,如果相等則返回false
不等也會做自動的型別轉換
===
全等,判斷左右兩個值是否全等,它和相等類似,只不過它不會進行自動的型別轉換,
如果兩個值的型別相同,則直接返回false
!==
不全等,和不等類似,只不過它不會進行自動的型別轉換,
如果兩個值的型別不同,則直接返回true
特殊的值
null和undefined
由於undefined衍生自null,所以null == undefined會返回true.
但是null == undefined會返回false.
NaN
NaN不與任何值相等,報告它自身NaN == NaN//false