1. 程式人生 > 其它 >JavaScript Day 2

JavaScript Day 2

JavaScript Day 2


強制型別轉換

String

  • 呼叫被轉換資料型別的函式(比如toString(),[null和undefined沒有toString方法])
  • 呼叫String函式

Number

  • 呼叫Number函式(規則:空串、null或空格串為0,布林值為0|1,不能轉或undefined則為NaN)
  • parseInt()(非string先呼叫toString)
  • parseFloat()

Boolean

  • 呼叫Boolean()

其他進製表示

  • 十六進位制:0x
  • 八進位制:0
  • 二進位制:0b
  • 十進位制:--

算術運算子

運算子也稱為操作符
通過運算子可以對一個或多個值進行運算或操作

  • 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,則返回第二個值

  • ||
    ||可以對符號兩側的值進行或運算
    只有兩端都是false時,才會返回false。只要有一個true,就會返回true。
    或是一個短路的或,如果第一個值是true,則不再檢查第二個值
    對於非布林值,它會將其轉換為布林值然後做運算,並返回原值
    規則:
    1.如果第一個值為true,則返回第一個值
    2.如果第一個值為false,則返回第二個值


賦值運算子

  • =
    可以將符號右側的值賦值給左側變數

  • +=

    a += 5 相當於 a = a+5    
    var str = "hello";  str += "world";  
    

關係運算符

關係運算符用來比較兩個值之間的大小關係的
>
>=
<
<=
關係運算符的規則和數學中一致,用來比較兩個值之間的關係,
如果關係成立則返回true,關係不成立則返回false。
如果比較的兩個值是非數值,會將其轉換為Number然後再比較。
如果比較的兩個值都是字串,此時會比較字串的Unicode編碼,而不會轉換為Number。


相等運算子

相等,判斷左右兩個值是否相等,如果相等返回true,如果不等返回false
相等會自動對兩個值進行型別轉換,如果對不同的型別進行比較,會將其轉換為相同的型別然後再比較,轉換後相等它也會返回true,null == undifined

!=
不等,判斷左右兩個值是否不等,如果不等則返回true,如果相等則返回false
不等也會做自動的型別轉換。

===
全等,判斷左右兩個值是否全等,它和相等類似,只不過它不會進行自動的型別轉換,
如果兩個值的型別不同,則直接返回false

!==
不全等,和不等類似,但是它不會進行自動的型別轉換,如果兩個值的型別不同,它會直接返回true

特殊的值:
null和undefined
由於undefined衍生自null,所以null == undefined 會返回true。
但是 null === undefined 會返回false。
NaN
NaN不與任何值相等,報告它自身 NaN == NaN //false

判斷一個值是否是NaN
使用isNaN()函式


三元運算子:

?:
語法:條件表示式?語句1:語句2;
執行流程:
先對條件表示式求值判斷,
如果判斷結果為true,則執行語句1,並返回執行結果
如果判斷結果為false,則執行語句2,並返回執行結果

優先順序:
和數學中一樣,JS中的運算子也是具有優先順序的,
比如 先乘除 後加減 先與 後或
具體的優先順序可以參考優先順序的表格,在表格中越靠上的優先順序越高,
優先順序越高的越優先計算,優先順序相同的,從左往右計算。
優先順序不需要記憶,如果越到拿不準的,使用()來改變優先順序。