Javascript學習一資料型別
1、介紹js的基本資料型別
Undefined、Null、Boolean、Number、String
(1) Undefined和Undifined區別
null是一個表示"無"的物件,轉為數值時為0;undefined是一個表示"無"的原始值,轉為數值時為NaN。
- undefined:
- (1)變數被聲明瞭,但沒有賦值時,就等於undefined。
- (2) 呼叫函式時,應該提供的引數沒有提供,該引數等於undefined。
- (3)物件沒有賦值的屬性,該屬性的值為undefined。
- (4)函式沒有返回值時,預設返回undefined。
- null:
- (1) 作為函式的引數,表示該函式的引數不是物件。
- (2) 作為物件原型鏈的終點。
(2)資料型別之間的轉換
typeof檢視,返回六個字串
number string boolean object undefined function
(3)強制轉字串
String(變數) 可以轉任何資料型別
變數.toString(); 除了null undefined,其它均可
(4)強制轉數字
Nunber(); 可以轉任何資料型別,只有能轉成功或不能轉成功之分。
轉成功就是數字,轉不成功就是NaN
parseInt() 轉整數
parseFloat() 轉小數
如果轉不成功,則返回NaN
(5)隱式型別轉換
+ - * / % ++ --
(6)NaN
1、NaN同誰都不相等,包括它自己
2、任何涉及NaN的操作返回的都是NaN
3、typeof檢視返回的是number
(7)isNaN
不喜歡數值(包括字串的數字),但喜歡數值型別的NaN
喜歡的是非數字
2複雜資料類類
複雜、引用資料型別(object)
資料封裝類物件:Object、Array、Boolean、Number 和 String
其他物件:Function、Arguments、Math、Date、RegExp、Error
3 全等判定:
相等,值是否相等,會發生型別轉換
全等,值和型別都要相等才相等,不會發生型別轉換
console.log(1 == '1'); // true console.log(true == 1); // true console.log(null == undefined); // true,除此之外,它們不能和其它的值進行比較 // === 全等,值和型別都要相等才相等,不會發生型別轉換 console.log(1 === '1'); // false console.log(true === 1); // false console.log(null === undefined); // false console.log(null !== undefined); // true console.log(null != undefined); // false
3、this物件的理解
this總是指向函式的直接呼叫者(而非間接呼叫者);
如果有new關鍵字,this指向new出來的那個物件;
在事件中,this指向觸發這個事件的物件,特殊的是,IE中的attachEvent中的this總是指向全域性物件Window。
1 閉包:函式裡面套函式,被巢狀函式就叫閉包。
閉包特點:
function init() { var name = "Mozilla"; // name 是一個被 init 建立的區域性變數 function displayName() { // displayName() 是內部函式,一個閉包 alert(name); // 使用了父函式中宣告的變數 } displayName(); } init();