felayman--javascript技巧小結

來源:互聯網
上載者:User

/**************************************該文檔內容長期更新***********************************************/

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);//這樣就錯了。


 

 

 

 

 

 

 

 

 

 


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.