JS高級程序設計筆記-ECMA基礎
一、原始值和引用值
原始值:存儲在棧(stack)中的簡單數據段,它們的值直接存儲在變量訪問的位置。
引用值:存儲在堆(heap)中的對象,存儲在變量處的值是一個指針,指向存儲對象的內存處。
二、原始類型:(基本數據類型)
undefined、null、boolean、number、string
三、typeof運算符(判斷基本數據類型)
輸出結果:undefined、boolean、number、string、object
1、undefined
當一個未聲明的變量和一個聲明但並未初始化的變量使用typeof都會輸出undefined,如下代碼所示
var value1; //var value2console.log(typeof value1);//undefined console.log(typeof value2);//undefined
PS:當函數無明確返回值時,返回的也是undefined。
2、null類型
undefined派生自null。null表示尚未存在的對象。
3、number類型
(1)八進制:首數字為0;
(2)十六進制:首數字為0x;
(3)ECMAScript默認把6個或6個以上的前導0的浮點數轉換為科學計數法;
(4)幾個被定義為Number類型的特殊值:
Number.MAX_VALUE
Number.MIN_VALUE
(5)isFinit()方法:確定該數不是無窮大
(6) NaN (非數),特性:不能用於算數計算;
與自身不相等;
(7) isNaN()方法:確定是否為NaN;
4、String類型
首字符從位置0開始,字符串最後一個字符的位置是字符串的長度減1;
四、轉換
1、轉換成字符串:toString()方法
Boolean類型:輸出“true”或“false”
Number類型:根據兩種模式:
默認模式:相應數字值得字符串輸出;
基模式:輸出不同進制形式數字對應的字符串;
2、轉換成數字
只有對string類型調用這些方法才能正確運行,對其他類型返回NaN;
parseInt():
運行機制:從位置0開始查找判斷是否為有效數字,如果不是返回NaN,如果是則繼續向後查找,直到找到非有效數字,將之前的字符串轉換為數字。
PS:parseInt()方法有基模式,將二進制、八進制、十六進制的字符串轉化為整數,由第二個參數指定。
parseFloat():
運行機制:從位置0開始查找每個字符,直到出現第一個非有效字符,將之前的字符串轉化為數字。第一個出現的小數點是有效字符,第二個是無效的。
PS:字符串必須以十進制形式表示浮點數,不能用八進制或十六進制形式,沒有基模式。
3、強制類型轉換
Boolean(value):
(1)轉換成Boolean類型;
(2)轉換的值至少是有一個字符的字符串、非0數字或對象時,返回true;
(3)轉換的值為空字符串、數字0、undefined、Null,返回false;
Number(value):轉換成數字;
(1)與parseInt(),parseFloat類似,但轉化的是整個值,不是部分值。如果字符串值能完整的被轉換,Number()將判斷調用parseInt()還是parseFloat()。
String(value):將任何值轉換成字符串;
JS高級程序設計筆記-ECMA基礎