摘要: 预编译 函数预编译 检查代码是否错误,符号,词法分析 隐式操作 (形实函运) 函数调用以后,在运行代码之前,会生成一个对象(Activation) 把所有的局部变量和形参添加为AO成员,值为undefined(隐式声明提升) 将实参赋值给形参(AO对象) 将局部函数的变量作为AO对象的成员名,函数体 阅读全文
posted @ 2022-06-12 13:54 a立方 阅读(40) 评论(0) 推荐(0)
摘要: 作用域 每一个作用域在运行时,js引擎会先把作用域内部的关键字隐式提前扫描,并声明;对象内部的不会隐式提升 同名标识符提升问题 先提升变量后提升函数 var a = 30; function a() { console.log(100) } console.log(a); 变量变量同名(有些语言错误 阅读全文
posted @ 2022-06-12 13:53 a立方 阅读(26) 评论(0) 推荐(0)
摘要: 闭包 闭包是什么? 优点和使用场景:技术难点用闭包解决 函数内部的变量 临时数据 比如for循环的i值,希望延时使用,可以使用闭包把临时数据保存到局部变脸域中 防止变脸污染 用闭包把业务变量放在局部作用域中 缺点以及解决方法 闭包使用不当会导致内存泄漏问题 内存泄漏:浏览器运行网页,就会执行js代码 阅读全文
posted @ 2022-06-12 13:53 a立方 阅读(29) 评论(0) 推荐(0)
摘要: 对象的成员访问检测 istanceof:检测对象是不是某个对象的实例化 注意:在某个原型链上也算 isPrototypeOf():在调试的时候用 检测对象的的Prototype是否 function Parent() { // pass } function Child() { // pass } 阅读全文
posted @ 2022-06-12 13:51 a立方 阅读(27) 评论(0) 推荐(0)
摘要: 原型链 原型链中没有找到返回undefined 同一个构造函数创造的的对象会有一块共用的内存 // 对象有__proto__,代表它的原型对象 // 函数有prototype属性,代表创建的对象的原型对象 // 任何函数包括自定义的函数,创建的__proto__ = Function.prototy 阅读全文
posted @ 2022-06-12 12:19 a立方 阅读(18) 评论(0) 推荐(0)