摘要: 执行上下文栈 就是用来存全局上下文对象和函数上下文对象的栈容器。 在全局代码执行之前,js引擎就会创建一个栈容器来存储管理所有的执行上下文对象。 在全局执行上下文(window)确定后,将其添加到栈中(压栈)。 在函数执行上下文创建后,将其添加到栈中压栈)。 在当前函数执行完后,将栈顶的对象移除(出 阅读全文
posted @ 2022-03-13 20:44 青仙 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 1、代码分类(位置) 全局代码 函数(局部)代码 2、全局执行上下文对象 ①在执行全局代码前将window确定为全局执行上下文对象(全局执行上下文对象每次执行js代码只存着一个) ②对全局数据进行预处理 *var定义的全局变量 = =>undefind,添加为window的属性。 *function 阅读全文
posted @ 2022-03-13 16:59 青仙 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 1,变量声明提升 通过var定义的变量,在定义语句之前就可以被访问到。 变量的值:undefind 如: console.log(b);//结果undefind var b=1; 或者: var a=3; function fn(){ console.log(a); var a=2; } fn(); 阅读全文
posted @ 2022-03-13 16:06 青仙 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 面试题1 实例的__proto__属性是实例被创建时赋予的,这个属性指向的是实例被创建时构造函数的prototype对象 function A(){ } A.prototype.n=1; var b=new A(); A.prototype={ n:2, m:3 } var c=new A(); c 阅读全文
posted @ 2022-03-13 15:47 青仙 阅读(225) 评论(0) 推荐(0) 编辑
摘要: instanceof a instanceof A 作用:判断左边这个对象a(实例或属性)是不是右边这个类型(构造函数)A的实例,左边一般是对象的属性或对象的实例,右边一般是构造函数或对象,主要是通过左边的实例的隐式原型属性一直往原型链中找,一直都是通过原型对象的隐式原型属性往原型链中找,右边也通过 阅读全文
posted @ 2022-03-13 10:59 青仙 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 1 通过实例读取对象或构造函数的属性值时:如果在该实例内部没找到,会自动通过实例本身的隐式原型属性_proto_属性去原型链中去找。 实例对象的隐式原型属性等于该对象的构造函数的显式原型属性。 2 设置对象的属性值时:不会查找原型链,如果当前对象实例中没有此属性,直接添加此属性并设置其值。 3 方法 阅读全文
posted @ 2022-03-13 10:47 青仙 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 1. 原型链(图解) *访问一个对象的属性时, *先在自身属性中查找,找到返回 *如果没有, 再沿着 _proto__这条链向上查找, 找到则返回 *如果最终没找到, 返回undefined *别名: 隐式原型链 *作用: 查找对象的属性(方法) 2. 构造函数/原型/实体对象的关系(图解) 一来系 阅读全文
posted @ 2022-03-13 09:43 青仙 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 1 每个函数function都有一个prototype,即显示原型(属性) 2 每个实例对象都有一个 proto_,可称为隐式原型(属性) 3 对象(实例)的隐式原型的值为其对应构造函数的显示原型的值,即他们都指向同一个对象 4 内存结构(如图) //定义构造函数 function Fun(){// 阅读全文
posted @ 2022-03-13 09:39 青仙 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 函数的prototype属性 *① 每个函数都有一个prototype属性,它默认指向一个Object空对象(即称为:原型对象),比如我们新建了一个函数,没有向函数的原型对象中添加属性和方法时,这个prototype指向的Object空对象里就没有我们的属性。 console.log(Date.pr 阅读全文
posted @ 2022-03-13 09:07 青仙 阅读(79) 评论(0) 推荐(0) 编辑
摘要: this是什么? *任何函数本质上都是通过某个对象来调用的,如果没有直接指定this那么this就是window对象。 *所有函数内部都有一个变量this,它的值是调用该函数的当前对象。 *一般异步任务的this是wondow,因为是定时器模块最后交给js引擎(window)调用的。箭头函数写法除外 阅读全文
posted @ 2022-03-13 08:55 青仙 阅读(39) 评论(0) 推荐(0) 编辑
摘要: IIFE 全称:Immediately-Invoked Function Expression(立即执行(调用)函数表达式,也称匿名函数自调用) 作用: *隐藏实现(全局作用域不可访问其内部的方法或变量,除非故意暴露出去) *不会污染外部(全局)命名空间 (function () { //匿名函数自 阅读全文
posted @ 2022-03-13 08:35 青仙 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 1 什么是回调函数? *你定义的 *不用你调用 *但是最终它会被执行(在某个时刻某个条件的情况下) 2 常见的回调函数? ①dom事件回调函数=>发生事件的dom元素调用 document.getElementById(‘btn’).onclick = function () { // dom事件回 阅读全文
posted @ 2022-03-13 08:27 青仙 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 1 什么是函数? *实现特定功能的n条语句的封装体 *只有函数是可以执行的,其它类型的数据不能执行。 2 为什么要用函数? *提高代码复用 *便于交流阅读 3 如何定义函数? *函数声明 function fn1 () { //函数声明 console.log(‘fn1()’) } *表达式 var 阅读全文
posted @ 2022-03-13 08:25 青仙 阅读(21) 评论(0) 推荐(0) 编辑