類型轉換就是指將其餘的數據類型,轉換爲String Number 或 Boolean函數
調用被轉換數據的toString()方法
例子:
var a = 123;
a = a.toString();
注意:這個方法不適用於null和undefined
因爲這兩個類型的數據中沒有這個方法,因此調用toString()時會報錯ui
調用String()函數
例子:編碼
1 |
var a = 123; |
原理:對於Number Boolean String都會調用他們的toString()方法來將其轉換爲字符串,對於null值,直接轉換爲字符串」null」。對於undefined直接轉換爲字符串」undefined」spa
爲任意的數據類型 +「」
例子:code
1 |
var a = true; |
原理:和String()函數同樣對象
調用Number()函數
例子:字符串
1 |
var s = "123"; |
轉換的狀況:數學
調用parseInt()或parseFloat()
這兩個函數專門用來將一個字符串轉換爲數字的string
若是對非String使用parseInt()或parseFloat(),它會先將其轉換爲String而後在操做 parseInt()
能夠將一個字符串中的有效的整數位提取出來,並轉換爲Number
例子:it
1 |
var a = "123.456px"; |
parseFloat()能夠將一個字符串中的有效的小數位提取出來,並轉換爲Number
例子:
1 |
var a = "123.456px"; |
使用一元的 +來進行隱式的類型轉換
例子:
1 |
var a = "123"; |
使用Boolean()函數
例子:
1 |
var s = "false"; |
轉換的狀況
字符串 ——> 布爾
除了空串其他全是true
數值 ——> 布爾
除了0和NaN其他的全是true
null、undefined—— > 布爾
都是false
對象 ——> 布爾
都是true
爲任意的數據類型作兩次非運算,便可將其轉換爲布爾值
例子:
1 |
var a = "hello"; |
運算符也稱爲操做符
經過運算符能夠對一個或多個值進行運算或操做
用來檢查一個變量的數據類型
語法:typeof 變量
它會返回一個用於描述類型的字符串做爲結果
+ 對兩個值進行加法運算並返回結果
- 對兩個值進行減法運算並返回結果
* 對兩個值進行乘法運算並返回結果
/ 對兩個值進行除法運算並返回結果
% 對兩個值進行取餘運算並返回結果
除了加法之外,對非Number類型的值進行運算時,都會先轉換爲Number而後在作運算。
而作加法運算時,若是是兩個字符串進行相加,則會作拼串操做,將兩個字符鏈接爲一個字符串。
任何值和字符串作加法,都會先轉換爲字符串,而後再拼串。
一元運算符只須要一個操做數
就是正號,不會對值產生任何影響,可是能夠將一個非數字轉換爲數字
例子:
1 |
var a = true; |
就是負號,能夠對一個數字進行符號位取反
例子:
1 |
var a = 10; |
自增能夠使變量在原值的基礎上自增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,則返回第二個值
=
能夠將符號右側的值賦值給左側變量
+=
1 |
a += 5 至關於 a = a+5 |
-=
1 |
a -= 5 至關於 a = a-5 |
*=
1 |
a *= 5 至關於 a = a*5 |
/=
1 |
a /= 5 至關於 a = a/5 |
%=
1 |
a %= 5 至關於 a = a%5 |
關係運算符用來比較兩個值之間的大小關係的
>
>=
<
<=
關係運算符的規則和數學中一致,用來比較兩個值之間的關係,
若是關係成立則返回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中的運算符也是具備優先級的,
好比 先乘除 後加減 先與 後或
具體的優先級能夠參考優先級的表格,在表格中越靠上的優先級越高,
優先級越高的越優先計算,優先級相同的,從左往右計算。
優先級不須要記憶,若是越到拿不許的,使用()來改變優先級。
程序都是自上向下的順序執行的,
經過流程控制語句能夠改變程序執行的順序,或者反覆的執行某一段的程序。
條件判斷語句也稱爲if語句
語法一:
1 |
if(條件表達式){ |
1 |
執行流程: |
語法二:
1 |
if(條件表達式){ |
1 |
執行流程: |
語法三:
1 |
if(條件表達式){ |
1 |
執行流程 |
學識淺薄,若有錯誤,懇請斧正,在下不勝感激。