javaScript一些須要注意的細節

變量聲明早於代碼運行javascript

函數聲明早於變量聲明html

this指針表明的是執行當前代碼的對象的全部者java

JavaScript執行完同步,才能執行異步隊列。如:alert,for if while 同步執行,在執行這些代碼時,其它代碼不執行。//關於JavaScript異步執行異步

屬性在查找時先查找當前對象中屬性,再查找繼承原型,最後查找最終原型object是否存在。object的prototype爲null。函數

object.prototype共享一分內存。構造方法重複構造。this

花括號({})是function的簡寫,方括號([])是array的簡寫。spa

a=b;爲a指向同一個bprototype

a=b();爲執行b,返回值賦值給a指針

a=new b();爲在內存新建一個b,a指向一個新的b對象code

function b(){
    return 1+2;
}
var a=b();//out 3
var c=b;//out:function b(){ return 1+2;}

 y = y || 0;

若是y已經定義 , y || 返回 y, 由於 y 是 true, 不然返回 0, 由於 undefined 爲 false。

  1. false0、空字符串("")、NaNnull 和 undefined 被轉換爲 false
  2. 全部其餘值被轉換爲 true

在C++或C#中,當咱們談到對象,指的是類或者結構體的實例。對象根據他們實例化的模板(就是所謂的類),會擁有不一樣的 屬性和方法。但在JavaScript裏對象不是這個概念。在JavaScript中,對象就是一個鍵/值對的集合 -- 你能夠把JavaScript的對象想象成一個鍵爲字符串類型的字典。

有兩種簡單方法能夠建立一個空對象:

var obj = new Object();

和:

var obj = {};

這兩種方法在語義上是相同的。第二種更方便的方法叫做「對象字面量(object literal)」法。這種也是 JSON 格式的核心語法,通常咱們優先選擇第二種方法。

「對象字面量」也能夠用來在對象實例中定義一個對象:

var obj = {
    name: "Carrot",
    "for": "Max",
    details: {
        color: "orange",
        size: 12
    }
}

對象的屬性能夠經過鏈式(chain)表示方法進行訪問:

obj.details.color; // orange
obj["details"]["size"]; // 12
var str="size";
obj["details"][str]; // 12 動態訪問
var str2="length";
obj["details"][str2]=100;//動態添加
obj["details"]["length"]; // 100

var obj = {
    name: "Carrot",
    "for": "Max",
    details: {
        color: "orange",
        size: 12,
        length:100          
    }
}

以上代碼示例來自----來自 

相關文章
相關標籤/搜索