主頁

JavaScript中获取DOM元素宽度和高度的常用API

JavaScript中获取DOM元素宽度和高度的常用API clientWidth 和 clientHeight 只读属性 对于内联元素, 其clientWidth和clientHeight属性值为 0 Element.clientWidth 属性表示元素的内部宽度,以像素计。该属性包括内边距,但不包括垂直滚动条(如果有)、边框和外边距

阅读更多

JavaScript中的继承

javascript中的继承 继承 继承是面向软件技术当中的一个概念。如果一个类别B“继承自”另一个类别A,就把这个B称为“A的子类”,而把A称为“B的父类”也可以称“A是B的超类”。继承可以使得子类具有父类别的各种属性和方法,而不需要再次编写相同的代码。在令子类别继承父类别的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类别的原有属性和方法,使其获得与父类别不同的功能。另外,为子类追加新的属性和方法也是常见的做法。(引用 维基百科)

阅读更多

快速排序

快速排序 快速排序我们一般将其简称为快排, 是一种非常高效的算法,时间复杂度O(nlogn), 空间复杂度为O(1), 是一种不稳定的原地排序算法。

阅读更多

在浏览器地址栏输入url到页面展示出东西都发生了什么

在浏览器地址栏输入url到页面展示出东西都发生了什么 ​ 看到这个问题,第一反应,这个问题好像已经被面试官问的烂大街了,网上随便一搜,全是,有什么好记录的。我开始也是这么想的,以为被问烂大街的东西不会被问到了,结果上周出去面试,最没想到的是居然被问到了,啊难受。

阅读更多

Vue拦截数组变异方法的思路

Vue拦截数组变异方法的思路 在JavaScript的数组中,有一些可以改变原数组的方法,我们称之为数组的变异方法,包括splice、 sort、push、pop、reverse、shift、unshift等,当我们在vue中通过这些方法更改数组的时候会触发视图更新,这是为什么呢?

阅读更多

Vue响应式系统实现基本思路

Vue响应式系统实现基本思路 在vue中,我们可以使用watch监听数据的变化,像下面代码一样。 const vm = new Vue({ data: { a: 1 } }) vm.$watch('a', () => { console.log('a被修改了') }) vm.a = 2 当执行vm.a = 2的时候,会输出 ‘a被修改了‘, 但这是怎么实现的呢,我将一步一步记录下来,但此篇文章只记录思路,具体vue怎么实现还需要看源码。

阅读更多

JavaScript 设计模式之外观模式

JavaScript设计模式之外观模式 介绍 为子系统的一组接口提供一个高层接口 使用者使用这个高层接口 举例 当你去医院时, 会有一个接待员,接待员回去给你挂号、门诊、划价、取药等等。 UML类图 使用场景 function bindEvent (elem, type, selector, fn) { if (fn === null) { fn = selector selector = null } // ... } bindEvent(elem, 'click', '#div', fn) bindEvent(elem, 'click', fn)

阅读更多