筆試題:
var x = 1;
if (function () {})
console.log(x);
1undefined
解析:
//if (function f() {}) -->function f() {}作為表示式,function f消失,
// 所以在if裡面,f為未宣告
//任何乙個變數,未經宣告使用都會報錯。
//!但是,typeof其時,不會報錯,而是undefined,typeof是唯一不報錯的操作符
console.log(typeof f);
console.log(typeof (typeof f));
console.log(1 + undefined);
undefined
string
nan
另外,使用乙個物件沒有的屬性,控制台顯示undefined,而不是像沒宣告的變數一樣報錯error。
易記錯的型別轉換:
//alert(typeof (undefined));// ->undefined
//alert(typeof (nan));//->number
//alert(typeof (null));//->object
var a = "123abc";
//alert(typeof (+a));/*->nan->numnber*/
//alert(typeof (!!a));//->boolean/*判斷運算子的結果*/
//alert("11" + 11);//->1111
//alert(typeof (typeof (a)));//->string
JS隱式型別轉換
isnan 判斷引數是否為nan,返回boolean值,隱式呼叫顯示型別轉換中的number 再將呼叫的結果和nan比對,返回true false isnan 123s true 解析 number 123s nan nan nan isnan null false 解析 number null 0...
js隱式型別轉換
乙個沒有提供 symbol.toprimitive 屬性的物件,參與運算時的輸出結果 var obj1 console.log obj1 nan console.log object object console.log obj1 object object 接下面宣告乙個物件,手動賦予了 symb...
js 隱式型別轉換
概念 無需程式設計師手動轉化,由編譯器自動轉換的方式稱為隱式轉換 規則 1.轉化成string 字串鏈結發 2.轉換為number型別 1 自增自減運算子 2 算數運算子 3 關係運算子 3.轉化為boolean型別 邏輯非運算子 例子總結 1.字串連線符與算術運算子的區分 1 true strin...