- SyntaxError 語法錯誤
-
ReferenceError引用錯誤,在作用域中找不到
-
TypeError是在作用域中找到了但是 做了它不可能做的事情
-
在JavaScript的世界裏,一切都是對象
-
''和`` 單引號和反撇號: 反撇號是EC6新增的模板字符串,它對裏面的內容空格、回車不進行轉義,變量的話用${}進行轉義
-
DOM對象和jQuery對象的區別:
jQuery對象就是通過jQuery包裝DOM對象後產生的對象,它是jQuery獨有的,用$('#id')獲取 DOM對象是通過document.getElementById("id")獲取的,沒有jquery對象的所有方法 兩者可以使用的方法不同,不過兩者之間是可以互相轉換的 var $cr=$("#cr"); //jquery對象 var cr = $cr[0]; //dom對象 也可寫成 var cr=$cr.get(0); var cr=document.getElementById("cr"); //dom對象 var $cr = $(cr); //轉換成jquery對象
名字空間
全局變量會綁定到window
上,不同的JavaScript文件如果使用了相同的全局變量,或者定義了相同名字的頂層函數,都會造成命名衝突,並且很難被發現。
減少衝突的一個方法是把自己的所有變量和函數全部綁定到一個全局變量中。例如:
// 唯一的全局變量MYAPP:
var MYAPP = {};
// 其他變量:
MYAPP.name = 'myapp';
MYAPP.version = 1.0;
// 其他函數:
MYAPP.foo = function () {
return 'foo';
};
把自己的代碼全部放入唯一的名字空間MYAPP
中,會大大減少全局變量衝突的可能。
許多著名的JavaScript庫都是這麼幹的:jQuery,YUI,underscore等等。