Js中的數據類型
Js中的數據類型一共有六種,即number,string,boolean,underfine,null,object。
一,number
Number數據類型指的是數字,可以為整型,也可以是浮點數。如
var?a=12,b=12.5;
二,string
字符串由零個或多個字符構成,字符包括字母,數字,標點符號和空格;需要注意的是
字符串必須放在引號里(單引號或雙引號);
var?bob=”man”;
alert(“bob”);
alert(bob);
瀏覽器首先會彈出包含有“bob”的字符串,然后彈出包含有“man”的字符串,前者是直接彈出字符串,后者則是彈出變量的值。
三,boolean
布爾型數據只能有兩種值?true?和?false,在js中true和false是關鍵字。通常,我們設置布爾值時多用于條件的判斷。如:
var?flag=true;
if(flag){
//js 代碼
}
在條件判斷語句中我們將所有的判斷條件看做一個布爾值(這里需要了解一些布爾值的轉換特性)。
四,underfine
underfine通常指的是沒有賦值的變量,通過typeof可以對數據的類型進行判斷。如
var?a,b=underfine;
alert(a);
alert(typeof?a);
兩次結果都為underfine。
五,null
null是一個只有一個值的特殊類型。表示一個空對象引用。如:
var a=null;
將a清空。
六,object
對象就是由一些彼此相關的屬性和方法集合在一起而構成的一個數據實體。常見的對象有array,window,document等。
通過創(chuàng)建對象實例就可以調用對象的方法了,如上就是創(chuàng)建了一個Date的對象實例today,today通過調用Date的方法得出了現(xiàn)在的年月日等信息。
數組array是作為經常使用的對象,是由多個?(鍵-值)?所組成的一個多容器。其索引 默認是從0開始的。創(chuàng)建數組有兩種方法:1創(chuàng)建數組對象實例?var arr=new Array(1,2,3);2直接使用面向字面量?var a=[1,2,3];
js中的類型轉換
一,強制類型轉換
1.強制轉成字符串
方法:?強制轉換為字符串 xxx.toString()
? ? ? ? ?// var age = 18;
? ? ? ? // console.log(typeof age);
? ? ? ? // console.log(typeof age.toString());
2.強制轉換為數字
方法:?-> 1. Number()
? ? ? ? ? ?-> 2. parseInt()
? ? ? ? ? ? -> 3. parseFloat()
1.Number():Number必須是數字字符串
? ? ? ? console.log(Number('1'));
? ? ? ? console.log(Number('1nihao'));
? ? ? ? console.log(Number('1.2.1.1'));
2.parseInt(), parseFloat() 字符串必須以數字開頭,直到遇見第一個字母結束。
? ? ? ?console.log(parseInt('aaa123456789'));
? ? ? ? // parseInt()只能返回整數, parseFloat()可以返回浮點數
? ? ? ? console.log(parseInt('1234.1123')); // 1234
3.布爾類型轉換為數字
方法:
? ? ? ? console.log(Number(true)); // 1
? ? ? ? console.log(Number(false)); // 0
4.?null, undefined 轉換為數字
? ? ? ? console.log(Number(null)); // 0
? ? ? ? console.log(Number(undefined)); // NaN
5.?布爾類型轉換 Boolean()
? ? ? ? // 字符串轉為布爾類型,空字符串為false;
? ? ? ? // 數字轉換為布爾類型, 非0 即為true;
6.NaN
? ? ? ? // NaN 不是一個數字
? ? ? ? // 任何一個NaN 兩者是不相等的
? ? ? ? console.log(NaN == NaN)
? ? ? ? // 檢測NaN的方法: isNaN()
二、隱式轉換(自動轉換)
1.加法中:
如果有字符串,把其他元素的數據類型隱式轉為字符串
如果沒有字符串,轉為數字。
? ? ? ? var a = true + (1 + '你好') + null;//true1你好null
? ? ? ? var b = true + 1 + undefined;//NaN
? ? ? ? var c = true + 1 + null;//2
2.? - * / %: 隱式元素轉為number類型
? ? ? ? var m = '11' - 1;//10
? ? ? ? var d = '11' * 1;//11
? ? ? ? var n = true + '11' - '20';//NaN
? ? ? ? var l = '12' - 0 + false;//12
? ? ? ? // 數字字符串轉為數字也可以使用下面方法:
? ? ? ? // a - 0 || a * 1 || a / 1;
? ? ? ? console.log(m, d, n, l)
3.關系運算符:== === != !== > < >= <=中
? ? ? ?// 1.如果有布爾類型,先轉換為數字類型
? ? ? ? // 2.如果有數字類型的,默認都轉為數字
? ? ? ? // 【注意】: null 跟 undefined 互相相等,等于本身,其他的都不想等。
? ? ? ? //? === !== 是不會進行類型轉換