摘要: js代码解析原则 首先js引擎在读取js代码时会进行两个步骤,第一个步骤是解释,第二个步骤是执行。 所谓解释就是会先通篇扫描所有的Js代码,然后把所有声明提升到顶端,第二步是执行,执行就是操作一类的。 例子1: 1 2 3 4 5 以上代码输出 undefined 原因: 变量提升(把变量声明提升到 阅读全文
posted @ 2018-02-26 15:48 朱珠的猪 阅读(184) 评论(0) 推荐(0) 编辑
摘要: JavaScript中的每个对象都有一个prototype属性,我们称之为原型,而原型的值也是一个对象,因此它也有自己的原型,这样就串联起来了一条原型链,原型链的链头是object,它的prototype比较特殊,值为null。 原型链的作用是用于对象继承,函数A的原型属性(prototype pr 阅读全文
posted @ 2018-02-26 15:20 朱珠的猪 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 当执行一段JavaScript代码(全局代码或函数)时,JavaScript引擎会创建为其创建一个作用域又称为执行上下文(Execution Context),在页面加载后会首先创建一个全局的作用域,然后每执行一个函数,会建立一个对应的作用域,从而形成了一条作用域链。每个作用域都有一条对应的作用域链 阅读全文
posted @ 2018-02-26 15:11 朱珠的猪 阅读(75) 评论(0) 推荐(0) 编辑
摘要: IIFE的全称是Immediately-invoked Function Expression,立即执行函数表达式。 在讲IIEF之前,我们首先需要区分函数表达式和函数声明。 这个叫做函数表达式。 这个叫做函数声明。 函数表达式中的函数可以为匿名函数,也可以有函数名,但是该函数实际上不能直接使用,只 阅读全文
posted @ 2018-02-26 14:53 朱珠的猪 阅读(208) 评论(0) 推荐(0) 编辑
摘要: Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。 var n=999; function f1(){ alert(n); } f1(); // 999 另一方面,在函数外部自然无法读取函数内的局部变量。 function f1(){ var n=999; } alert(n) 阅读全文
posted @ 2018-02-26 13:58 朱珠的猪 阅读(102) 评论(0) 推荐(0) 编辑