前端面試系列之二 型別轉換

2021-08-19 22:58:12 字數 1475 閱讀 9980

0 或 +0、 -0,nan、 "" 、 false、undefined、null這幾個是false ,其他的全都是true。

if(a && b)的正確理解方式是: a && b 進行表示式求值後,然後在轉換為boolean型別。&& 是短路語法,求值後不一定是乙個boolean型別。

||短路表示式

1、只要「||」前面為false,不管「||」後面是true還是false,都返回「||」後面的值。

2、只要「||」前面為true,不管「||」後面是true還是false,都返回「||」前面的值。

這種為短路原理: 知道了前面第乙個的結果就知道後的輸出,如果為第乙個為:true,則取第乙個的值,如果第乙個為false,則取第二個的值。

&&1、只要「&&」前面是false,無論「&&」後面是true還是false,結果都將返「&&」前面的值;

2、只要「&&」前面是true,無論「&&」後面是true還是false,結果都將返「&&」後面的值;乙個字串+ 乙個數字,或者字串,或者其他的東西,轉換為字串,例如: "" + infinity、 "" + 1

轉換為數字的時候,+號是個隱式轉換,會執行number(),這裡包含能轉換成功的和不能。 +null 、+false、 + "" // 0、 +undefined // nan 、 + '1x' // nan轉化為數字 1.優先呼叫valueof方法,看其返回是否是基本型別,如果是,轉化為數字,返回。

2. 否則,呼叫tostring 方法,看其返回結果是否是基本型別,如果是,轉化為數字,返回。

轉化為字串: 1.優先呼叫tostring ,看其返回結果是否是原始型別,如果是,轉化為字串,返回。

2.否則,呼叫valueof 方法,看其返回結果是否是原始型別,如果是,轉化為字串,返回。

3.其他報錯1,null和undefined,相等。

2,數字和字串,轉化為數字再比較。

3,如果有true或false,轉換為1或0,再比較。

4,如果有引用型別,優先呼叫valueof。

5,其餘都不相等。

首先呼叫物件自身的valueof()方法,如果返回基本型別的值,則用number建構函式進行轉換。如果valueof()返回的不是基本型別的值,則再呼叫tostring()方法,如果返回基本型別的值,值用number建構函式進行轉換。如果tostring()返回的不是基本型別的值,則丟擲異常。5.1 在所有加減乘除需要數字型別的地方,js會自動使用number() 進行轉換。'1'-'2' // -1; 1+ '2' //加號,其他型別和字串相加,都會轉換成字串。 '1' - true //0 ; '1' * {}// nan ;'1'-'a' //nan;

5.2 轉換為字串 字串自動轉換主要表現為字串的拼接,字串和其他型別用加號(+)拼接時,其他型別都自動轉換為字串。 'a' +{} // a[object object]

5.3 轉換為布林值 當任意需要布林型別的地方,系統都會自動呼叫boolean () 建構函式將值轉換為boolean 型別。

vue隨筆之二型別判斷一

判斷是否為undefined或者null function isdef v 判斷是否不為undefined或者null function isdef v 判斷是否為true function istrue v 判斷是否為false function isfalse v 判斷是否為原始型別 字串 數字...

前端面試題3 型別轉換布林值

var x newboolean false if x var y boolean 0 if y 的顯示結果是?答案 hi 解析 new boolean false 會生成乙個新的物件 boolean false 而在if判斷中,會進行布林值和轉換,只有 0,0,nan,null,undefined...

struts2學習筆記(二) 型別轉換

基本型別 boolean和boolean,char和chracter,int和integer,long和long,float和float,double和double,date 使用者輸入為yyyy mm dd 集合型別 對於list和陣列,元素為string,如果是復合型別需要提供自定義轉換器。其他...