前端面试 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());
相关推荐
阿蒙Amon几秒前
JavaScript学习笔记:17.闭包
javascript·笔记·学习
布茹 ei ai1 分钟前
QtWeatherApp - 简单天气预报软件(C++ Qt6)(附源码)
开发语言·c++·qt·开源·开源项目·天气预报
Wpa.wk2 分钟前
自动化测试 - 文件上传 和 弹窗处理
开发语言·javascript·自动化测试·经验分享·爬虫·python·selenium
LinHenrY12274 分钟前
初识C语言(编译和链接)
c语言·开发语言·蓝桥杯
_OP_CHEN4 分钟前
【Python基础】(二)从 0 到 1 入门 Python 语法基础:从表达式到运算符的全面指南
开发语言·python
l1t4 分钟前
利用小米mimo为精确覆盖矩形问题C程序添加打乱函数求出更大的解
c语言·开发语言·javascript·人工智能·算法
composurext13 分钟前
录音切片上传
前端·javascript·css
我命由我1234513 分钟前
Python Flask 开发:在 Flask 中返回字符串时,浏览器将其作为 HTML 解析
服务器·开发语言·后端·python·flask·html·学习方法
程序员小寒13 分钟前
前端高频面试题:深拷贝和浅拷贝的区别?
前端·javascript·面试
csbysj202014 分钟前
Scala 类和对象
开发语言