一,基本數據類型:number string Boolean NaN undefind
引用數據類型: (對象數據類型)Object (函數數據類型)function
number:正數 ,負數, 0
NaN: 是不相等的;
=/是賦值的意思;
==/是判斷左右兩邊的值是否相等;
/isNaN()檢測一個值是否是有效的命題 無效爲ture 有效爲false
parseInt()//強制取整轉換 從左到右取整 不識別小數點
parseFloat()//強制取整小數
Boolean:ture false
!一個歎號是取反的意思 首先將值轉化爲布爾 在取反
!!兩個歎號的做用 是將其餘的數據類型轉化爲布爾值 取反兩次至關於
對象==對象 //永遠不相等
對象==字符串//先將對象轉換爲字符串 而後再進行比較(調用toString方法)比較
例子:
[1,2,3,4,5]="";
[1,2,3,4,5].toString()//"1,2,3,4,5"不等於空字符串""
二,數據類型轉換規則
1>null ==undefined/ture 可是null,undefined和其餘書籍類型比較都不相等;
2>數字==布爾//布爾須要轉換爲數字
3>數字==字符串 字符串轉換爲數字
4>若是隻有一個值 判斷這個值是真仍是假,遵循:只有0,NaN "" null undefined
這五個是假的 其餘都爲真
Object:引用數據類型(對象數據類型)
//js數據類型中的對象數據類型
//有多組[屬性名和屬性值]組成,多組鍵值對組成,有多個key:value
//屬性名和屬性值是用來描述這個對象特徵的
var obj ={name:"zhufeng",age:6};
var personinfo ={
name:"張三",
age:28,
height:"180cm",
weight:"60kg"
}
var obj ={name:"zhang"};//字面量建立方式 能夠直觀的看出
var obj =Object();//實例建立對象
//給一個對象增長一組屬性名和屬性值
obj.name ="zhang";
obj["name"]="zhang";
//獲取屬性名和屬性值,若是屬性名不存在,默認返回的結果是undefined
console.log(obj["name"]);
console.log(obj.name);
console.log(obj.zz);//沒有obj.zz的屬性值 因此爲undefined
//刪除屬性名和屬性值
假刪除 obj.age = null;
真刪除 delete obj.age;
console.log(obj);
//對象數據類型中,還能夠具體細分;
//對象(object),數組(arr),正則(RegExp),時間(date),字符串(string)布爾
var obj ={};
var arr =[];
var reg =/$/;
//js中對象,類,實例的區別:對象是泛指:js中萬物皆對象,類是對象的具體細分,
//實例是類中的一個具體的事物,萬物皆對象
三,基本數據類型和引用數據類型的區別
var num1 = 12;
var num2 = num1;把num1變量表明的值給了num2變量
num++//自增1 本身加1 也能夠寫成 num+=1
數據類型的檢測
//typeof運算符 不管檢測什麼數據類型都會返回字符串數組