前端面试 js

作用域链

内存管理

垃圾回收器

引用计数

默认栈里面会有一次引用

问题:循环引用,会产生内存泄漏

标记清除

垃圾回收期会定期从根开始遍历,找到有引用的对象

闭包

内存泄漏

this的指向

默认绑定

独立调用的this都是window

复制代码
function foo(){
  console.log(this)
}
foo()//独立 默认绑定
var obj={
  name:'gg',
  foo:foo
}
obj.foo()//this为obj   隐式绑定

隐式绑定

显示绑定

ps:虽然执行是独立的但已经显示绑定了this了

new绑定

优先级

原型链

复制代码
function Person(name) {
    this.name = name;
}
console.log(Person.prototype); //{}
//prototype为构造函数独有指向person的原型对象

Person.prototype.getName = function () {
    return this.name;
};

const alice = new Person("Alice");
// console.log(Object.getOwnPropertyDescriptors(Person.prototype.__proto__));

console.log(alice.__proto__ === Person.prototype) //true
// 实例对象的原型对象就是构造函数的原型对象
console.log(Person.prototype.constructor) //Person的构造函数
console.log(Person.prototype)
console.log(Person.prototype.__proto__ === Object.prototype) //true
//是对象都有__proto__属性,Object是object的构造函数
console.log(Person.__proto__ === Function.prototype) //true
console.log(alice.getName());
相关推荐
努力努力再努力wz4 分钟前
【c++进阶系列】:万字详解AVL树(附源码实现)
java·运维·开发语言·c++·redis
CHANG_THE_WORLD30 分钟前
C++并发编程指南 std::promise 介绍与使用
java·开发语言·c++·promise
egoist202334 分钟前
[linux仓库]性能加速的隐形引擎:深度解析Linux文件IO中的缓冲区奥秘
linux·运维·开发语言·缓存·缓冲区
Dear.爬虫44 分钟前
Golang的协程调度器原理
开发语言·后端·golang
Mintopia1 小时前
实时 AIGC:Web 端低延迟生成的技术难点与突破
前端·javascript·aigc
Mintopia1 小时前
Next.js 性能优化双绝:Image 与 next/font 的底层修炼手册
前端·javascript·next.js
小菜全1 小时前
使用UniApp实现下拉框和表格组件页面
开发语言·前端·javascript·elementui·前端框架·html
编码浪子1 小时前
趣味学RUST基础篇(构建命令行程序1)
开发语言·后端·rust
周小码1 小时前
极快文本嵌入推理:Rust构建高性能嵌入推理解决方案
开发语言·后端·rust
半夜吃早餐1 小时前
【STM32HAL-----NRF24L01】
c语言·开发语言·stm32·单片机·嵌入式硬件