程序员鸡皮
文章 分类 评论
289 4 34

站点介绍

一名PHP全栈程序员的日常......

标签 前端 下的文章

一名小码农的日常,学习&生活

本站是作为记录一名北漂程序员编程学习以及日常的博客,欢迎添加微信BmzhbjzhB咨询交流,喜欢吃红薯或粉条的也可以私聊我......

发布于2024-07-04

在什么情况下会选择使用WeakMap而不是Map?

WeakMap管理target原对象:WeakMap的键`target`是我们原始的对象,比如Vue组件中的数据对象。当一个组件不再使用时,它的相应数据`原对象`也会被销毁。如果我们使用的是Map,由于Map对键值是强作用的,这些原对象将不被垃圾回收,从而导致内存泄漏。

异步编程方案一《回调函数》

回调函数是早期处理异步编程的主要方式,虽然它本身存在很多缺陷比如哪个时候对复杂的异步处理常常会`出现回调地狱`。但是因为Javascript中当时并没有很好的API来帮助我们以比较优雅的方式编写代码,所以依然应用非常广泛。

Map和WeakMap有什么不同?解释WeakMap的特性

Map是一种键值对集合,可以**使用任何类型的值为键**,包括对象和基本类型。WeakMap也是一种键值对,但它的`键必须是对象`,不能是基本类型,WeakMap中的键是弱引用的,也就是说,如果没有其他引用指向该对象,那么即使这个对象是WeakMap的键,**它也会被垃圾回收机制回收**。

比较Proxy和Object.defineProperty之间的区别?

Object.defineProperty在设计时并不是为了做数据监听而创建的,他的设计目的主要是为了提供对象属性的精细控制。Object.defineProperty允许我们详细地定义或修改对象的属性描述符,包括属性的可写性writable,可枚举型enumerable,可配置性configurable等。通过这些描述符,我们可以对对象的属性行为进行更细的控制。

解释Javascript中的Proxy对象是什么以及它是如何工作的,用于哪些场景?

Proxy是ES6引入的一种新特性,运行我们创建一个代理对象来拦截并定制对另一个对象的基本操作,比如获取数据,设置数组,删除数据等。

Reflect在代码中的具体使用场景是怎样的?

在早期的ECMA规范中没有考虑到这种对`对象本身`的操作`如何设计会更规范`,所以将这些API放在了Object上。但是Object作为一个构造函数,这些操作实际上放到它身上并不合适。

认识Reflect

Reflect也是ES6新增的一个API,他是一个对象,字面意思是反射。

Proxy的监听器有哪些?

如果我们想要监听某些具体的操作,那么就可以在handler中添加对应的捕捉器Trap: 比如set和get两个监听器,分别对应的是函数类型

认识Proxy:我们希望监听这个对象中的属性被设置或获取的过程要怎么办呢?

我们通过之前的了解可以指定使用Object.defineProperty,但是它有什么缺点呢? 首先,Object.defineProperty设计的初衷,不是为了去监听截止一个对象中所有属性的。其次,如果我们想监听更加丰富的操作,比如新增属性,删除属性,那么Object.defineProperty是无能为力的。

Javascript中this绑定的应用代码案例

Javascript中this绑定的应用代码使用让我们更加清楚的了解Javascript中this绑定的几种规则的优先级。

Javascript中this绑定的优先级规则是什么?

隐式绑定,显式绑定,New绑定,默认绑定,那么他们几个的优先级顺序是什么?

Javascript中,this的绑定规则有哪些?

this的绑定规则:1.this的绑定和定义的位置`编写的位置`没有关系 2.this的绑定和调用方式以及调用的位置有关系 3.this是在运行时绑定的

Javascript为什么要使用this关键字?

this关键字在Javascript以及其他面向对象的编程语言中比如Java,C++中存在的主要原因是为了提供一种在对象方法中引用当前对象的方式。

原型链的终点是什么?如何打印对象的原型链直至终点?

在Javascript中,原型链的终点是null,当一个对象的__proto__属性为null时,这意味着它已经到达了原型链的终点,通常,所有对象的原型链最终都会追溯到Object.prototype,而Object.prototype.__proto__就是null。因此,null标志着原型链的结束。

为什么Javascript需要存在原型和原型链,他的作用是什么?

Javascript中的原型和原型设计的主要目的是为了实现继承,而继承是面向对象编程的重要特性之一。Javascript是一门支持多范式的编程语言,一方面它支持函数式编程来开发,另一方面也支持对象形式来开发。

日历

2026年06月

 123456
78910111213
14151617181920
21222324252627
282930    

站点公告
本站是作为记录一名北漂程序员编程学习以及日常的博客,欢迎添加微信BmzhbjzhB咨询交流,喜欢吃红薯或粉条的也可以私聊我......
点击小铃铛关闭
配色方案