前端面试 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());
相关推荐
慧慧吖@3 小时前
关于在本地去模拟生产环境检测页面内容注意事项
前端·javascript·vue.js
卡比巴拉—林3 小时前
Python print()函数详讲
开发语言·python
黄团团3 小时前
Vue2整合Electron开发桌面级应用以及打包发布(提供Gitee源码)
前端·javascript·vue.js·elementui·electron
奶思图米球3 小时前
Python多环境管理
开发语言·python
JienDa3 小时前
JienDa聊PHP:基于协同架构的PHP主流框架优势整合与劣势补救策略
开发语言·架构·php
i***39583 小时前
JAVA系统中Spring Boot 应用程序的配置文件:application.yml
java·开发语言·spring boot
时光追逐者3 小时前
C# 中 ?、??、??=、?: 、?. 、?[] 各种问号的用法和说明
开发语言·c#·.net·.net core
量化Mike3 小时前
【python报错】解决卸载Python时报错问题:No Python installation was detected
开发语言·python
q***01773 小时前
PHP进阶-在Ubuntu上搭建LAMP环境教程
开发语言·ubuntu·php
q***01773 小时前
Java进阶学习之路
java·开发语言·学习