书架

书架

=一个知识书库=

JS中的Proxy代理详解

JS中的Proxy代理详解

## 前言 > 就目前而言,前端框架基本上被 Vue 和 React 瓜分得差不多了。如果你去面试一个前端岗位,那么或多或少都会问你一些关于 Vue 和 React 框架得知识,无论是原理还是使用,我们都有必要去了解一番。 > > 数据响应式可以说是这些框架的一大特色与核心,这里我们就拿 Vue 来说。在 Vue2.x 时代,实现数据响应式主要是使用 `Object.defineProperty()`这个 API 来实现的,而到了 Vue3.x 时代,数据响应式主要是使用 `Proxy()`来实现的。 > > 如果你还不了解 Proxy,那么你很有必要跟着本篇文章学习一下!
more...
JavaScript对象继承的几种方式

JavaScript对象继承的几种方式

# 1. 以复制方式实现的继承 ## 1.1 浅拷贝 基本类型的复制 ```javascript var parent = { lanage: "chinese" } var child = { name: "xxx", age: 12 } function extend(parent, child) { var child = child || {}; for (const propertype in parent) { child[proper
more...
JavaScript 中的 prototype

JavaScript 中的 prototype

# [[Prototype]] 与 prototype [[Prototype]] 与 prototype 是不同的: ## 凡是被两层方括号括起来的属性都是内部属性,内部属性不能通过“对象.属性”的方式获取。 [[Prototype]] 就是内部属性,它不能通过“对象.[[Prototype]]”的方式获取,但可以通过“对象.__proto__”的方式获取。 prototype 是一般属性,可以直接通过“对象.prototype”的方式获取。 <!--more--> ## 每个对象都有 [[Prototype]] 属性。 我们知道,数组可以通过 ne
more...
js判断当前是移动端(手机端)还是pc端的方法,以及判断操作系统

js判断当前是移动端(手机端)还是pc端的方法,以及判断操作系统

Browser对象中有一个Navigator对象,这个对象中包含所有浏览器的信息 ![](http://www.lixianglong.cn/bg_store/img/content/v2-d26e7c3e73f2f6a5716ce038718f17eb_720w.webp) 其中,一些常用设备访问时返回的**userAgent**属性如下: | 访问设备 | **返回userAgent属性值** | | :--------: | :--------------------------------
more...
JS如何判断滚动条是否滚到底部

JS如何判断滚动条是否滚到底部

首先说一下常识: ```bash 网页可见区域宽: document.body.clientWidth; 网页可见区域高: document.body.clientHeight; 网页可见区域宽: document.body.offsetWidth (包括边线的宽); 网页可见区域高: document.body.offsetHeight (包括边线的宽); 网页正文全文宽: document.body.scrollWidth; 网页正文全文高: document.body.scrollHeight; 网页被卷去的高: document.bod
more...