ECMAScript:標準、核心
HTML 標簽類型:block、inline、inline-block、table……
JS中的數(shù)據(jù)類型:數(shù)字(Number)、字符串(String)、布爾(boolean)、函數(shù)、對象(obj、[]、{}、null)、未定義(undefined)
typeof 判斷數(shù)據(jù)類型
- typeof操作符的操作數(shù)可以是變量也可以是數(shù)值字面量。
var i = 100;
alert( typeof i ); // number
alert(typeof 100); //number
var s = ' miaov ';
alert( typeof s ); // string
alert( s.length ); // 7
alert( s.charAt(3) ); // 'a'
var b = true; // 布爾值:true false
alert( typeof b ); // boolean
var arr=[5,6,9,3];
alert(typeof(arr)); //object
var obj = document;
alert( typeof obj ); // object 物體、東西、對象
var n = null;
alert( typeof n ); //object(從邏輯角度看,null值表示一個空對象指針,所以會返回object)
var a;
alert(typeof a); //undefined
數(shù)據(jù)類型轉(zhuǎn)換-number
- JS中有三個函數(shù)可以將非數(shù)值轉(zhuǎn)化為數(shù)值:Number(),ParesInt(),ParesFloat()。
- 區(qū)別:Number()可以用于任何數(shù)據(jù)類型,而另外兩個函數(shù)專門用于把字符串轉(zhuǎn)換成數(shù)值
Number()函數(shù)的轉(zhuǎn)換規(guī)則如下
- 如果是boolean值,true和false會分別轉(zhuǎn)化為1和0;
var a=true;
alert(Number(a)); // 1
- 如果只是數(shù)字值,只是簡單的傳入和返回。
var a=100;
alert(Number(a)); // 100
- 如果是Null值,則會返回0;
var a = null;
// alert( Number(a) ); // 0
- 如果是undefined,函數(shù),json則都返回NaN;
var json = {};
// alert( Number(json) ); //NaN
var u;
// alert( Number(u) ); //NaN
var a3 = function (){ alert(1); };
// alert( Number(a3) ); // NaN
- 如果是字符串,遵循下列規(guī)則:
- 如果字符串中只包含數(shù)字(包括正負,并且前導的零會被忽略),則將其轉(zhuǎn)換為十進制數(shù)值
var a = '+100';
alert( a+100 ); // '100100'
alert( Number(a) ); // 100
- 如果字符串中包含有效的浮點數(shù),則將其轉(zhuǎn)化為對應(yīng)的浮點數(shù)
var a=2.123;
alert(Number(a)); //2.123
- 如果字符串中包含有效的十六進制格式,如'0xf',則將其轉(zhuǎn)化為相同大小的十進制數(shù)值
var a=0xAD;
alert(Number(a)); //173
- 如果是空字符串(不包含任何字符),則將其轉(zhuǎn)換為0;
var a1 = ' ';
// alert( Number(a1) ); // 0
- 其他格式的字符串將會被轉(zhuǎn)化為NaN;
parseInt()轉(zhuǎn)換規(guī)則如下:
- 它會忽略字符串前面的空格,直至找到第一個非空字符,如果第一字符不是數(shù)字符號,則返回NaN。
- 空字符串也會被轉(zhuǎn)換為NaN。
- 從第一數(shù)字字符開始解析,直到解析到最后一個數(shù)字字符或者遇到一個非數(shù)字字符則會停止解析,相應(yīng)的小數(shù)點也不會被解析。
- 當需要解析進制數(shù)時最好在函數(shù)中添加第二個參數(shù):轉(zhuǎn)換時使用的基數(shù)(即多少進制的數(shù)字)。
var num=parseInt('0xAF',16) //175
parseFloat()的與parseInt()的一些區(qū)別:
- 它解析的第一個小數(shù)點有效,第二個小數(shù)點無效。
- 前導0會被忽略,所以只能解析十進制
//特殊的一些轉(zhuǎn)換
var a=parseFloat('0xAF'); //0
var b=parseFloat('3.125e7'); //31250000