1. 程式人生 > 其它 >JS的基礎語法

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的值是變數的新值(自減後的值,先進行- -,然後再進行運算)

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