1. 立即执行函数 创建完了就执行,只执行完就不再执行了. ( function(){} )(); 例 ( function(a,b){ alert("Hello ,我是一个匿名函数!"); alert("a = "+a); alert("b = "+b); })(3,4); 2. 方法 把一个函数设置为一个对象的属性,我们称该函数为此对象的方法. var god = new Object(); god.name = "猪八戒"…
对象的属性值 如果要使用特殊的属性名,需 对象["属性名"] = 属性值       // 存 对象["属性名"]       // 取 obj["123"] = 456; var n = "123"; // 可以传一个变量到 [] ,来取变量对应在 Object 中的属性值 console.log(obj[n]); 对象的属性值可以是任意数据类型,包括对象和函数. 使用 in 运算符来检查一个对象是否含有某属性 consol…
Object 对象的相关方法 Object.getPrototypeOf() 返回参数对象的原型. 这是获取某对象的原型对象的标准方法. var F = function () {}; var f = new F(); Object.getPrototypeOf(f) === F.prototype // true 几种特殊对象的原型 // 空对象的原型是 Object.prototype Object.getPrototypeOf({}) === Object.prototype // tru…
在 js 中有两种作用域:全局作用域,局部作用域. 全局作用域 直接写在 <script> 标签中的变量和方法. 在网页打开时创建,在网页关闭时销毁. 全局作用域有一个全局对象 window,可以直接使用...代表浏览器的窗口,由浏览器创建 在全局作用域中创建的变量和函数,都会作为 window 的属性和方法保存. 变量的声明提前,函数的声明提前 指的是,用 var 和 function 关键字创建的变量和函数,会在所有代码执行之前声明...仅仅是声明,不会赋值. 函数作用域 创建函数时,同时…
函数        实现特定功能的 n 条语句封装体. 1. 创建一个函数对象 var myFunc = new Function(); // typeof myFunc 将会打印 function 将要封装的代码以字符串的方式传递给构造函数 var aFunc = new Function("console.log('Hello!');"); console.log(aFunc); // 打印: " function anonymous(){ console.log(&qu…
JavaScript 对象的 toString() 方法改变输出 在平常,我们 console.log(对象);    // 会打印 [Object Object] 但是我们想要更详细的输出,此时,我们可以重写 对象.toString() 方法 Person.toString = function(){ return "Person ["+this.name+" , "+this.gender+","+this.age+"]"…
垃圾积累过多,致使程序运行缓慢,什么是垃圾? 当堆中某个内容,再也没有指针指向它,我们将再也用不了它,此时就是一个垃圾. 出现这种情况是因为 obj = null; 此时,js 中的垃圾回收机制会自动回收垃圾. 因此,对于不需要的变量,我们只需要  xxx = null; 即可,剩下的交给垃圾回收机制处理.…
严格模式 除了正常的运行模式,JavaScript 还有第二种运行模式:严格模式(strict mode).顾名思义,这种模式采用更加严格的 JavaScript 语法 同样的代码,在正常模式和严格模式中,可能会有不一样的运行结果. 一些在正常模式下可以运行的语句,在严格模式下将不能运行. 设计目的 早期的 JavaScript 语言有很多设计不合理的地方,但是为了兼容以前的代码,又不能改变老的语法, 只能不断添加新的语法,引导程序员使用新语法 严格模式是从 ES5 进入标准的,主要目的有以下几…
异步操作 单线程模型 指的是,JavaScript 只在一个线程上运行 也就是说,JavaScript 同时只能执行一个任务,其他任务都必须在后面排队等待 注意,JavaScript 只在一个线程上运行,不代表 JavaScript 引擎只有一个线程. 事实上,JavaScript 引擎有多个线程,单个脚本只能在一个线程上运行(称为主线程),其他线程都是在后台配合 JavaScript 之所以采用单线程,而不是多线程,跟历史有关系. JavaScript 从诞生起就是单线程,原因是不想让浏览器变…
ParentNode 接口,ChildNode 接口 节点对象除了继承 Node 接口以外,还会继承其他接口. ParentNode 接口 表示当前节点是一个父节点,提供一些处理子节点的方法. ChildNode 接口 表示当前节点是一个子节点,提供一些相关方法. ParentNode 接口 如果当前节点是父节点,就会继承ParentNode接口. 由于只有元素节点(element).文档节点(document)和文档片段节点(documentFragment)拥有子节点 因此只有这三类节点会继…