JS基礎學習次日

類型轉換

類型轉換就是指將其餘的數據類型,轉換爲String Number 或 Boolean函數

轉換爲String

方式一(強制類型轉換):

調用被轉換數據的toString()方法
例子:
var a = 123;
a = a.toString();
注意:這個方法不適用於null和undefined
因爲這兩個類型的數據中沒有這個方法,因此調用toString()時會報錯ui

方式二(強制類型轉換):

調用String()函數
例子:編碼

1
2
var a = 123; 
a = String(a);

 

原理:對於Number Boolean String都會調用他們的toString()方法來將其轉換爲字符串,對於null值,直接轉換爲字符串」null」。對於undefined直接轉換爲字符串」undefined」spa

方式三(隱式的類型轉換):

爲任意的數據類型 +「」
例子:code

1
2
var a = true; 
a = a + "";

 

原理:和String()函數同樣對象

轉換爲Number

方式一(強制類型轉換):

調用Number()函數
例子:字符串

1
2
var s = "123"; 
s = Number(s);

 

轉換的狀況:數學

  1. 字符串 ——> 數字
    若是字符串是一個合法的數字,則直接轉換爲對應的數字
    若是字符串是一個非法的數字,則轉換爲NaN
    若是是一個空串或純空格的字符串,則轉換爲0
  2. 布爾值 ——> 數字
    true轉換爲1
    false轉換爲0
  3. 空值 ——> 數字
    null轉換爲0
  4. 未定義 ——> 數字
    undefined 轉換爲NaN

方式二(強制類型轉換):

調用parseInt()或parseFloat()
這兩個函數專門用來將一個字符串轉換爲數字的string

若是對非String使用parseInt()或parseFloat(),它會先將其轉換爲String而後在操做 parseInt()
能夠將一個字符串中的有效的整數位提取出來,並轉換爲Number
例子:it

1
2
var a = "123.456px"; 
a = parseInt(a); //123

 

parseFloat()能夠將一個字符串中的有效的小數位提取出來,並轉換爲Number
例子:

1
2
var a = "123.456px"; 
a = parseFloat(a); //123.456

 

方式三(隱式的類型轉換):

使用一元的 +來進行隱式的類型轉換
例子:

1
2
var a = "123"; 
a = +a;

轉換爲布爾值

方式一(強制類型轉換):

使用Boolean()函數
例子:

1
2
var s = "false"; 
s = Boolean(s); //true

 

轉換的狀況
字符串 ——> 布爾
除了空串其他全是true

數值 ——> 布爾
除了0和NaN其他的全是true

null、undefined—— > 布爾
都是false

對象 ——> 布爾
都是true

方式二(隱式類型轉換):

爲任意的數據類型作兩次非運算,便可將其轉換爲布爾值
例子:

1
2
var a = "hello"; 
a = !!a; //true

基礎語法

運算符

運算符也稱爲操做符
經過運算符能夠對一個或多個值進行運算或操做

typeof運算符

用來檢查一個變量的數據類型
語法:typeof 變量
它會返回一個用於描述類型的字符串做爲結果

算數運算符

+ 對兩個值進行加法運算並返回結果
- 對兩個值進行減法運算並返回結果
* 對兩個值進行乘法運算並返回結果
/ 對兩個值進行除法運算並返回結果
% 對兩個值進行取餘運算並返回結果

除了加法之外,對非Number類型的值進行運算時,都會先轉換爲Number而後在作運算。
而作加法運算時,若是是兩個字符串進行相加,則會作拼串操做,將兩個字符鏈接爲一個字符串。
任何值和字符串作加法,都會先轉換爲字符串,而後再拼串。

一元運算符

一元運算符只須要一個操做數

一元的+

就是正號,不會對值產生任何影響,可是能夠將一個非數字轉換爲數字
例子:

1
2
var a = true; 
a = +a;

 

一元的-

就是負號,能夠對一個數字進行符號位取反
例子:

1
2
var a = 10; 
a = a;

 

自增

自增能夠使變量在原值的基礎上自增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
2
a += 5 至關於 a = a+5 
var str = "hello"; str += "world";

 

 

-=

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
2
3
if(條件表達式){ 
語句...
}

 

1
2
3
4
執行流程:  
if語句執行時,會先對條件表達式進行求值判斷,
若是值爲true,則執行if後的語句
若是值爲false,則不執行

 

語法二:

1
2
3
4
5
if(條件表達式){ 
語句...
}else{
語句...
}

 

1
2
3
4
執行流程:  
if...else語句執行時,會對條件表達式進行求值判斷,
若是值爲true,則執行if後的語句
若是值爲false,則執行else後的語句

 

語法三:

1
2
3
4
5
6
7
8
9
10
11
if(條件表達式){ 
語句...
}else if(條件表達式){
語句...
}else if(條件表達式){
語句...
}else if(條件表達式){
語句...
}else{
語句...
}

 

1
2
3
4
5
執行流程  
if...else if...else語句執行時,會自上至下依次對條件表達式進行求值判斷,
若是判斷結果爲true,則執行當前if後的語句,執行完成後語句結束。
若是判斷結果爲false,則繼續向下判斷,直到找到爲true的爲止。
若是全部的條件表達式都是false,則執行else後的語句

 

學識淺薄,若有錯誤,懇請斧正,在下不勝感激。

相關文章
相關標籤/搜索