JavaScript變量轉換

JavaScript變量轉換

目錄


1、自動轉換

"=="的自動轉換javascript

自動轉換優先級:number>boolean>String,越小越先轉換java

(1)Number與Boolean:

console.log(0==false); //true
console.log(1==true);  //true
console.log(2==true);  //flase
//這個過程實際上是Boolean類型轉換爲數字的過程

(2)Number與String:

console.log(""==0);  //true
console.log("12"==12);  //true
console.log("12a"==12);  //false
//String自動轉換時只能轉換純數字的字符串

(3)String與Boolean

console.log(""==false);  //true
console.log("s"==true);  //true
//字符串轉換爲boolean均爲true

(4)null的自動轉換

null的本質是空對象,自動轉換時會處理空對象的引用地址,轉換爲數字與其餘對象的處理git

console.log(null==0);  //false
//地址是數字,且確定不是0

console.log(null==false);  //false
console.log(null==true);  //false
//地址是數字,比較時會將boolean轉換爲數字

console.log(null=="null");  //false
console.log(null=="");  //false
//地址爲數字,比較時會將String轉換爲數字

(5)undefined的自動轉換

undefined表示未定義,不帶任何東西,你們能夠理解爲老頑固(偷笑)github

console.log(undefined==0);  //false
//沒法自動轉換數字

console.log(undefined==false);  //false
console.log(undefined==true);  //false
//沒法自動轉換boolean

console.log(undefined=="");  //false
console.log(undefined=="undefined");  //false
//沒法自動轉換爲String

console.log(undefined==null);  //true
console.log(undefined===null);  //false
//null是空對象,會被認爲是undefined,但嚴格的來講二者是不相等的

2、強制轉換

一、運算強制轉換

"+"會嘗試將兩端的值嘗試轉換爲字符串或數字。優先級:String>Number函數

(1)Number與Boolean:

console.log(1+false); //1
console.log(1+true);  //2

(2)Number與String:

console.log(""+1);  //"1"
console.log("1"+1);  //"11"
//運算時,String優先級大於Number,Number轉換爲String

(3)String與Boolean

console.log(""+false);  //false
console.log(""+true);  //true
console.log(typeof(""+true));  //String
//按照優先級,會將boolean轉換爲String

(4)null

console.log(null+1);  //1
//null的本質是空對象,強制轉換會轉換爲0

(5)undefined

console.log(undefined+0);  //NaN
//強制轉換數字時爲NaN
console.log(Boolean(undefined));  //false

二、類型強制轉換

(1)Number

String:
這裏說下String()和toString()的區別
toString()能夠將除了null、undefined之外的一切對象轉換爲String,且toString()能夠接收第二個參數,將字符串的進制進行改變
String()能夠將任何對象轉換爲String,String只有一個傳參

Boolean:
console.log(Boolean(0));  //false
console.log(Boolean(1));  //true
console.log(Boolean(2));  //true
console.log(Boolean(-2));  //true
//除0之外均爲true

(2)String

Number:
console.log(Number("1"));  //1
console.log(Number("1a"));  //NaN
console.log(parseInt("1a"));  //1
console.log(parseInt("a1"));  //NaN
//使用Number進行轉換時必須是純數字字符串,不然爲NaN
//使用parseInt轉換時,頭部必須有數字,不然爲NaN
//parseInt是全局函數,不屬於Number,與Number強制轉換有區別

Boolean:
console.log(Boolean(""));  //false
console.log(Boolean("true"));  //true
console.log(Boolean("false"));  //true
//String爲空是flase,其餘均爲true

(3)Boolean

Number:
console.log(Number(false));  //0
console.log(Number(true));  //1

String:
輸出對應的字符串

(4)null

Number:
console.log(Number(null));  //0

String:
輸出對應的字符串

Boolean:
console.log(Boolean(null));  //false

(5)undefined

Number:
console.log(Number(undefined));  //NaN
//此種方式強制轉換依舊爲非數字

String:
輸出對應的字符串

Boolean:
console.log(Boolean(undefined));  //false

碼字不易,後面還會放出各類文章,喜歡的關注一下我吖,大家的關注是我最大的動力spa

github:github.com/hn-failtecode

我的博客:hn-failte.github.io對象

相關文章
相關標籤/搜索