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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/113718.html
標籤:JavaScript
上一篇:版本管理工具介紹—Git篇
