變量聲明早於代碼運行。javascript
函數聲明早於變量聲明。html
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。
false
、0
、空字符串(""
)、NaN
、null
和 undefined
被轉換爲 false
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 } }
以上代碼示例來自----來自