JavaScript基礎語法(2) 數據類型 js中有六種數據類型,包括五種基本數據類型(Number,String,Boolean,Undefined,Null),和一種複雜數據類型(Object)。在JS中,原始類型有6中: 一、數字類型Number (1)、整數: 可以是正數、0、負數,也可以 ...
JavaScript基礎語法(2)
數據類型
js中有六種數據類型,包括五種基本數據類型(Number,String,Boolean,Undefined,Null),和一種複雜數據類型(Object)。在JS中,原始類型有6中:
一、數字類型Number
(1)、整數:
可以是正數、0、負數,也可以是10進位、8進位、16進位等不同進位冪數的表示。
八進位是0開頭的,後面的每個數都不超過7,就是八進位,如果超過7就是十進位。
十六進位是以0x開頭的,後面可以是0-9, A-F。例如:
<script type="text/javascript">
console. log(123) ;
console. log(0123);//0123是8進位的數 ,不是10進位,值對應的10進位的數是:83
console. log(0xabc);//0xabc是16進位表示的整數,對應10進位的值: 2748
</script>
瀏覽器顯示為:
(2)、浮點數:
可以包含小數點,也可以包含e (表示10幕次方數),兩個同時包含也可以,不能用8進位和16進位。例如:
//這幾種寫法,它最終顯示都為0.0001
console. log( .0001);
console. log(0.0001);
console.1og(1e-4);
console.1og(1.0e-4);
浮點數將會自動轉換為整數。
var num = 1.00;
console.log(num);//1,自動轉換為整數
浮點數的最高精確度是17位。
浮點數做數學運算時偶爾有誤差:https://www.cnblogs.com/beimingdaoren/p/12739470.html
(3)、數字常量
可以用math對象獲得:
數字常量 | 含義 | 數字常量 | 含義 |
Math.E | 自然對數的低,即e | Math.LOG10E | 以10為底e的對數 |
Math.LN2 | 2的自然對數 | Math.PI | 常數π(3.1415...) |
Math.LN10 | 10的自然對數 | Math.SQRT1_2 | 0.5的平方根 |
Math.LOG2E | 以2為底e的對象 | Math.SQRT2 | 2的平方根 |
(4)、特殊值
Number對象來獲取:
內容 | 含義 | 內容 | 含義 |
Num.MAX_VALUE | 可表示的最大值 | Num.POSTIVE_INFINITY | 正無窮大 |
Num.NaN | 非數學字元 | Num.NEGATIVE_INFINIIY | 負無窮小 |
Num.MIN_VALUE | 可表示的最小值 |
(5)、NaN:非數字類型。
特點:
- 涉及到的任何關於NaN的操作,都會返回NaN
- NaN不等於自身。
var ab= "a1"; console.log(ab/10);// NaN console.log(NaN == NaN);// false;
(6)、isNaN()函數
用於判斷是否是一個非數字類型。如果傳入的參數是一個非數字類型,那麼返回true;否則返回false;
過程:isNaN()函數,傳入一個參數,函數會先將參數轉換為數值。如果參數類型為對象類型,會先調用對象的valueOf()方法, 再確定該方法返回的值 是否可以轉換為數值類型。如果不能,再調用對象的toString()方法, 再確定返回值。
(7)、數值轉換
- Number()轉型函數,可以用於任何數據類型;
- parselnt(),將值轉換為整型,用的比較多;
- parseFloat();將值轉換為浮點型。
二、字元串類型String
字元串是以單引號’或雙引號"括起來的任意文本,比如'abc', "xyz"等等。
這裡用的單引號與雙引號的作用效果完全一樣。但是要註意,' '或" "本身只是一種表示方式,不是字元串的一部分,因此,字元串'abc'只有a, b, c這3個字元。
字元串有length屬性。可以取得字元串的長度:
var str ="hello"; console.log(str .length);//5
字元串的值是不可變的。要改變一個字元串的值,先要銷毀原來的字元串,再用另一個包含新值的字元串去填充該字元串。
var lang = "java"; lang =lang + "script";
上面這段代碼,先創建一個能容納10個字元的字元串,然後在這個字元串中填充java和script字元串,最後銷毀原來的字元串java和scrip字元串,因為這兩個字元串此時已經沒用了。
這個過程是在後臺發生的。可參照:詳解字元串。
字元串轉換:轉型函數String(),適用於任何數據類型(null,undefined 轉換後為null和undefined) ;toString()方法(null,defined沒有toString()方法)。例如:
var a = "beiming"; var b = null; var c = undefined; console.log(a.toString());//beiming console.log(b.toString());//error報錯 console.log(c.toString());//error報錯 console.log(String(a));//beiming console.log(String(b));//null console.log(String(c));//undefined
三、布爾值
那麼是true,要麼是false,可以直接用true、false表示布爾值,也可以用表達式的結果表示布爾值。
註意:在js中布爾值只能用true和false表示,不能用0和1。
轉化為boolean:轉型函數Boolean();將某個值轉化為Boolean類型,例如:console.log(Boolean(0));//false
四、未定義數據類型
表示在變數被創建後,沒給該變數賦值之前所具有的值。
var name = "beiming"; var age; console.log(name)//beiming console.log(age);//undefined console.log(height);//error,變數height沒有聲明 console.log(typeof name)//string console.log(typeof age);//undefined console.log(typeof height);//undefined,變數height沒有聲明
- 上面這段代碼中,age雖然聲明瞭,但是沒有初始化值,所以,列印出來的是undefined.而變數height沒有聲明,故報錯。
- 但是用typeof操作符去檢測數據類型的時候,變數age沒有初始化,結果是undefined,沒有聲明變數的height檢測的類型也是undefined.
五、空值
- null類型被看做空對象指針, null類型也是空的對象引用。
- 只有一個值,即null值,所以,在你用typeof操作符去檢測null類型的值時,結果是object類型。
- 如果你定義了一個變數,但是想在以後把這個變數當做一個對象來用,那麼最好將該對象初始化為null值。
六、Object類型
js中對象是一組屬性與方法的集合。
具體的關於對象的創建方式以及對象的各種特性,會在後面的的章節中做詳細介紹。這裡就簡單介紹一下六大數據類型中的Object.
constructor屬性:構造函數屬性,可確定當前對象的構造函數。
console.log(o.constructor == Object);//true var arr = new Array(); console.log(arr.constructor == Object);//false