|
/**************************************該文檔內容長期更新***********************************************/
1.由於瀏覽器對於解析js不同資料類型之間的差異,不建議對同一個變數進行反覆換資料類型
如 var message="felayman";
如下操作不建議:
message=100;
message=99.9;
message=false;
messsage = null;
這樣做會增加瀏覽器解析成本,而且更改次數多了,會不利於開發。
因此建議,變數最好只保持一種資料類型。
如下面操作:
var message="hello":
message="wolrd":
message="helloworld";
2.在定義變數的時候我們要注意範圍
如:
//全域變數
function fun(){
message="hello": //全域變數,函數結束後不會銷毀該變數
}
fun();
alert(message);//依然會譚吹message
//局部變數
function fun(){
var message="hello";
}
fun();
alert();//什麼都不會彈出,因為該變數在函數結束後被銷毀
3.變數的定義方法和c,java一樣的方式定義,即在一個var關鍵字後定義多個變數
如:
var name1,name2,name3,....;
或者
var name1="name1",
name2="name2"
...................
namen="namen";
4.搞清楚js的六種資料類型
@1 undefined 就是在定義某個變數後沒有為其賦值
如:
var message;
alert(message==undefined);//會彈出ture
@2 NULL 不能誤解為'',一般是指定某個變數的值為null,或者nullNull 物件
如:
var obj=null;
alert(obj);
或者
var obj=null;
alert(typeof obj);//會彈出object
@3 boolean 該值表示true或false
表示true的情況:
1.true本身
var bool=true;
if(bool)
alert(bool);
2.非Null 字元串
var str = "hi";
if(str)
alert(str);
3.非零數字
var str = -1;
if(str)
alert(str);
4.對象(非null對象)
var str = new String("hello");
if(str)
alert(str);
5.js裡建立對象的三種方式
@1: 普通的物件導向的思想來建立對象
var obj1 = new Object();
obj1.name="felayman":
obj1.age=22;
obj1.hobby="籃球";
alert(obj1.name+obj1.age+obj1.hobby);
@2:利用JSON格式來建立對象
var obj2 ={
name:"felayman",
age:23,
hobby:"足球"
};
alert(obj2.name+obj2.age+obj2.hobby);
@3:直接這麼寫
var obj = {};//等效於var obj = new Object();
obj.name="felayman";
alert(obj);
@4:對象的可複製性
var obj3 = obj2;
alert(obj3);//屬性和obj2一樣
下面給出一個經典案例:要求是對於傳入不同的參數,會給出不同的輸出
function displayInfo(args){
var output='';
if(typeof args.name=="string"){
output +="name:"+args.name+"\n";
}
if(typeof args.age=="number"){
output +="age:"+args.age+"\n";
}
alert(output);
}
displayInfo({
name:"felayman",
age:22
});
displayInfo({
name:"felay"
}); |
這樣就有點向java了,傳入的不是單純的資料類型了,而是一個複雜的對象了,通過將
對象傳入到函數的參數中,我們就可以對該參數對象的屬性進行操作了。同時這也是現在對於資料
傳輸的最好方式,可以通過對象的封裝進行大量資料的傳輸了。
當擷取到對象參數時,我們可以通過兩種方式來擷取其屬性
@1:args['name']
@2:args.name
這兩種方式都可以擷取到我們想要的參數。,一般的書籍會說這兩種方式沒有區別,但是還是有一個小的區別
如:一個屬性中含有空格的時候,就只能通過[]來擷取了。
var obj = {};
obj['first name']="felayman";
alert(obj['first name']);//會彈出felayman
alert(obj.first name);//這樣就錯了。
|