一,基本數(shù)據(jù)類型:number string Boolean NaN undefind
引用數(shù)據(jù)類型: (對象數(shù)據(jù)類型)Object (函數(shù)數(shù)據(jù)類型)function
number:正數(shù) ,負數(shù), 0
NaN: 是不相等的;
=/是賦值的意思;
==/是判斷左右兩邊的值是否相等;
/isNaN()檢測一個值是不是有效的命題 無效為ture 有效為false
parseInt()//強制取整轉(zhuǎn)換 從左到右取整 不識別小數(shù)點
parseFloat()//強制取整小數(shù)
Boolean:ture false
!一個嘆號是取反的意思 首先將值轉(zhuǎn)化為布爾 在取反
!!兩個嘆號的作用 是將其他的數(shù)據(jù)類型轉(zhuǎn)化為布爾值 取反兩次相當于
對象==對象 //永遠不相等
對象==字符串//先將對象轉(zhuǎn)換為字符串 然后再進行比較(調(diào)用toString方法)比較
例子:
[1,2,3,4,5]="";
[1,2,3,4,5].toString()//"1,2,3,4,5"不等于空字符串""
二,數(shù)據(jù)類型轉(zhuǎn)換規(guī)則
1>null ==undefined/ture 但是null,undefined和其他書籍類型比較都不相等;
2>數(shù)字==布爾//布爾需要轉(zhuǎn)換為數(shù)字
3>數(shù)字==字符串 字符串轉(zhuǎn)換為數(shù)字
4>如果只有一個值 判斷這個值是真還是假,遵循:只有0,NaN "" null undefined
這五個是假的 其他都為真
Object:引用數(shù)據(jù)類型(對象數(shù)據(jù)類型)
//js數(shù)據(jù)類型中的對象數(shù)據(jù)類型
//有多組[屬性名和屬性值]組成,多組鍵值對組成,有多個key:value
//屬性名和屬性值是用來描述這個對象特征的
var obj ={name:"zhufeng",age:6};
var personinfo ={
name:"張三",
age:28,
height:"180cm",
weight:"60kg"
}
var obj ={name:"zhang"};//字面量創(chuàng)建方式 可以直觀的看出
var obj =Object();//實例創(chuàng)建對象
//給一個對象增加一組屬性名和屬性值
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);
//對象數(shù)據(jù)類型中,還可以具體細分;
//對象(object),數(shù)組(arr),正則(RegExp),時間(date),字符串(string)布爾
var obj ={};
var arr =[];
var reg =/$/;
//js中對象,類,實例的區(qū)別:對象是泛指:js中萬物皆對象,類是對象的具體細分,
//實例是類中的一個具體的事物,萬物皆對象
三,基本數(shù)據(jù)類型和引用數(shù)據(jù)類型的區(qū)別
var num1 = 12;
var num2 = num1;把num1變量代表的值給了num2變量
num++//自增1 自己加1 也可以寫成 num+=1
數(shù)據(jù)類型的檢測
//typeof運算符 無論檢測什么數(shù)據(jù)類型都會返回字符串