- 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等等。