?????? ??? ??
JavaScript ??? ??
??? ??
JavaScript?? ???? ??, Null, ??, ?? ? ???? 5?? ?? ??? ??(?? ??? ?????? ?)? ????. ??? ??? ??? Object? ????. Object? ????? ??? ???? ?? ??-? ? ??? ?????.
typeof ???
JavaScript? ??? ????? ?? ??? ??? ??? ???? ??? ?????. typeof? ??? ? ?? ??? ???? ??????. ?? typeof ???? ???? ?? ??? ? ??? ??? ? ????.
● "???? ??" - ?? ???? ?? ??
● "boolean" - ?? ?? ?? ??
● "???" —? ?? ???? ??;
● "??"——? ?? ?? ?? ??;
● "??"——? ?? ?? ?? null? ??;
● "??"——If ? ?? ?????.
???? ?? ??
???? ?? ???? ??? ???? ?? ?? ??? ????. var? ???? ??? ????? ????? ?? ?? ??? ?? ???? ????. ?:
var message;
Alert(message == undefine) //true
Null ??
Null ??? ? ?????. ?? ??? ?? ??? ?????. ? ?? ?? null???. ???? ???? null ?? null ?? ???? ????, ??? null? ???? ?? typeof ???? ??? ? "object"? ???? ?????. ?:
var car = null;
Alert(typeof car) ; // "object"
??? ??? ??? ??? ???? ? ??? ????? ??? ?? ??? ????? ??? null? ????? ?? ?? ????. ?? ???? null ?? ?? ???? ? ?? ??? ??? ?? ??? ????? ??? ? ? ????. ?:
if(car != null)
{ .
Alert(undefine == null); //true
?? ??
? ???? true? false?? ? ?? ??? ?? ????. ? ? ?? ???? ???? ???? true? ??? 1? ?? ?? ??? false? ??? 0? ?? ?? ????.
Boolean ??? ??? ?? 2????? JavaScript? ?? ??? ?? ? ? Boolean ?? ???? ?? ????. ?? ?? ?? ??? ????? ??? ?? ?? ?? ?? Boolean()? ??? ? ????.
var message = 'Hello World'; var messageAsBoolean = Boolean(message); ?? ??? message? ?? ??? ???? messageAsBoolean ??? ?????. Boolean() ??? ?? ??? ??? ?? ?? ??? ? ??? ?? ?? ?? ?????. ??? ?? true?? false??? ??? ?? ??? ??? ?? ?? ?? ????. ?? ??? ??? ??? ??? ?? ??? ?? ?? ??? ?? ????.
??? ?? ??? ?? ?? ?(?: if ?)? ???? ?? ?? ??? ???? ???? ? ?? ?????. ?:
var message = 'Hello World'; if(message) { alert("Value is true"); }
? ?? ???? ??? ???? ???? ????? ?? ??? ?????. ?? ?? ?(true)?? ?????. ?? ??? ??? ???? ???? ??? ?? ????? ?? ??? ????? ??? ?? ?? ?????.
NaN ???? ? ?? ??? ??? ????. ??, NaN(?: NaN/10)? ??? ?? ??? NaN? ????? ??? ???? ??? ??? ? ????. ??, NaN? NaN ??? ??? ?? ??? ???? ????. ?? ?? ?? ??? false? ?????.
alert(NaN == NaN); //false
JavaScript?? isNaN() ??? ????. ? ??? ?? ??? ????? ???? ? ??? ????? ??? ??? ???? ? ??? ???. "?? ?? ????" ". isNaN()? ?? ?? ? ?? ?? ?? ??? ????? ?????. ??? ?? ?? ?? ??? "10"?? ?? ?? ?? ?? ??? ?? ?????. ?? ??? ??? ? ?? ?? ? ??? true? ????? ???. ?:
alert(isNaN(NaN)); //true alert(isNaN(10)); //false(10是一個(gè)數(shù)值) alert(isNaN("10")); //false(可能被轉(zhuǎn)換為數(shù)值10) alert(isNaN("blue")); //true(不能被轉(zhuǎn)換為數(shù)值) alert(isNaN(true)); //false(可能被轉(zhuǎn)換為數(shù)值1)
??? ?? ?? ?? ??? ??? ? ?? ??? Number(),parseInt(),parseFloat() 3??? ????. ? ?? ??? ?? ?? Number()? ?? ??? ??? ??? ? ?? ??, ?? ? ??? ?? ???? ??? ???? ? ?????. ? ? ?? ??? ??? ??? ?? ?? ?? ??? ?????.
Number() ??? ?? ??? ??? ????.
● ??? ?? ?? true? false? ?? 1? 0?? ?????.
● ?? ?? ???? ??? ?????. in ? ??
● null ?? ?? 0? ??
● ???? ?? ?? NaN? ??
● ???? ?? ?? ??? ????.
○ ???? ??? ??? ?? ?????. ?, "1"? 1? ??, "123"? 123? ??, "011"? 11? ???(?? 0? ???)
○ ???? ??? ?? ??? ?? ??? ??? ??? ?? "1.1"?? ?? ?? ??? ??? ?????(????? ?? 0? ?????)
○ ???? "0xf"? ?? ??? 16?? ??? ???? ??? ?? 10?? ?? ??? ?????. ?? ??
○ ???? ?? ??? 0
○ ???? ? ?? ??? ??? ???? ??? NaN?? ??
● ??? ?? valueOf() ???? ?????. ?? ?? ?? ??? ?? ??? ?? ?????. ?? ??? NaN?? ??? toString() ???? ??? ? ??? ??? ?? ?? ??? ?? ?????.
var num1 = Number("Hello World"); //NaN var num2 = Number(""); //0 var num3 = Number("000011"); //11 var num4 = Number(true); //1
Number() ??? ???? ??? ? ???? ????? ??? ??? ??? ??parseInt() ??? ? ?? ?????. parseInt() ??? ???? ??? ? ?? ??? ???? ??? ?? ? ?????. ??? ?? ? ?? ??? ?? ??? ???? ?? ??? ?????. ? ?? ???? ?? ?? ?? ??? ?? ??,parseInt()? NaN? ?????. ?, ? ???? ???? ?? ?? ???()? ???? NaN? ?????. ? ?? ??? ??? ?? praseInt()? ?? ?? ??? ?? ????? ??? ?? ??? ?? ??? ? ?? ??? ?? ?? ?????. ?? ??, "1234blue"? ???? ??? ?? ??? ??? ??? "1234blue"? 1234? ???? "22.5"? 22? ?????.
???? ? ?? ??? ??? ??,parseInt()? ??? ?? ??(?: 10??, 8??, 16??)? ??? ? ????. parseInt() ??? ?? ??? ? ? ???? ?? ??? ? ?? ????.
var num1 = parseInt("1234blue"); //1234 var num2 = parseInt(""); //NaN var num3 = parseInt("0xA"); //10(十六進(jìn)制) var num4 = parseInt("22.5"); //22 var num5 = parseInt("070"); //56(八進(jìn)制) var num6 = parseInt("70"); //70 var num7 = parseInt("10",2); //2(按二進(jìn)制解析) var num8 = parseInt("10",8); //8(按八進(jìn)制解析) var num9 = parseInt("10",10); //10(按十進(jìn)制解析) var num10 = parseInt("10",16); //16(按十六進(jìn)制解析) var num11 = parseInt("AF"); //56(八進(jìn)制) var num12 = parseInt("AF",16); //175
parseInt() ??? ????,parseFloat()? ? ?? ??(?? 0)?? ???? ? ??? ?? ?????. ??? ???? ?? ??? ?? ??? ?? ??? ?? ??? ??? ??? ?? ?????. ?, ???? ? ?? ???? ????? ? ?? ???? ???? ???? ? ?? ???? ?????. ?? ?? "22.34.5"? 22.34? ?????.
parseFloat()? parseInt()? ? ?? ???? ?? ?? 0? ????? ????. parseFloat() ?? ??? ?? ?? ????? ? ?? ??? ??? ???? ??? ????. String ??? 0? ??? 16?? ???? ??, ? ???? ??? ?? ???? ???? ? ?????. ???? ?????(') ?? ????(")? ??? ? ????.
var str1 = "Hello"; var str2 = 'Hello';
?? ???? ??? ?? ?? ??? ????? ?? ? ????
?? ???? ???? ???? ? ??? ????. ? ??? ?? ?? ?? ?? toString() ???? ???? ????. ageAsString = age.toString(); //String "11"
varfound = true; varfoundAsString =found.toString(); //String "true"var num1 = parseFloat("1234blue"); //1234 var num2 = parseFloat("0xA"); //0 var num3 = parseFloat("22.5"); //22.5 var num4 = parseFloat("22.34.5"); //22.34 var num5 = parseFloat("0908.5"); //908.5.
? ??? ? ? ??? base? ???? toString() ???? ?? ?? ?????. ? 10? ??? ?? ?? ?? ?? ?? ???? ??? ? ????.
??? ?? null?? ???? ??? ? ? ?? ?? ?? ?? String()? ??? ?? ????. ? ??? ?? ??? ?? ???? ??? ? ????. String() ??? ?? ?? ??? ????.
● ?? toString() ???? ??? ???? ?? ???? ???? ?? ??? ?????.
● ?? null?? "null"? ?????.
● ?? ???? ?? ?? "???? ??"? ?????
var num = 10; alert(num.toString()); //"10" alert(num.toString(2)); //"1010" alert(num.toString(8)); //"12" alert(num.toString(10)); //"10" alert(num.toString(16)); //"a"
?? ??
??? ??? ???? ??? ?????. ??? ??? ?? ??? ?? ?? new ???? ???? ??? ? ????. ?? ??? ????? ???? ??? ?? ?/?? ???? ???? ??? ?? ??? ??? ? ????.
var o = new Object();
Object? ?? ?????? ??? ?? ??? ???? ????.
● ??? - ?? ??? ???? ? ???? ??? ?????.
● hasOwnProperty(propertyName) - for ??? ??? (????? ?????? ??) ?? ???? ????? ?????. ? ? ????? ???(propertyName)? ??? ??? ???? ???? ???. (?: o.hasOwnProperty("name"))
● isPrototypeOf(object) - ???? ??? ??? ????? ?????. ? ?? ?? Prototype
● propertyIsEnumerable(propertyName) - for-in ?? ???? ??? ??? ??? ? ??? ???? ? ?????
● toString() - ??? ??? ??? ?????.
● valueOf() - A? ?????. ??? ???, ?? ?? ?? ?????. ????? toString() ???? ?? ?? ?????.