
JavaScript
zhenzuo_x
这个作者很懒,什么都没留下…
展开
-
js实现继承方式
面试中,我们往往涉及到关于 JS 继承的各方面知识,在这里,总结归纳 JS 常见的一些实现继承的方式。 构造函数的继承 绑定继承 function Animal() { this.species = "动物";}function Dog(name) { Animal.apply(this, arguments); this.name = ...原创 2019-02-24 18:00:27 · 262 阅读 · 0 评论 -
ES6 Symbol数据类型
ES6在ES5的6种数据类型(undefined、null、布尔值、字符串、数值、对象)的基础上引入了一种新的数据类型:Symbol。 在ES6中,Symbol表示独一无二的值,通过Symbol函数生成。 注意:Symbol值不是对象,Symbol函数前不可用new命令,不可为Symbol值添加属性。 1. Symbol函数可以接收一个字符串作为参数,表示对Symbol实...原创 2019-02-24 18:01:58 · 293 阅读 · 0 评论 -
Js函数防抖与节流
函数的防抖跟节流都是用在代码的优化里面的。 函数的节流是指:在一定时间内执行一次该函数,而不是由用户频繁触发而不断执行,从而达到优化性能。(例如实现图片懒加载时的滚动事件)函数的防抖是指:在用户频繁触发的时刻下,等候一定的时间,才来执行该函数。(例如在用户不断输入用户名进而验证的情况下) 1. 函数的防抖原理很简单: 利用setTimeout(); 使用户在每次输入时,清除...原创 2019-02-20 19:24:03 · 458 阅读 · 0 评论 -
Js对象的拷贝
在 js 中,对象的拷贝分为浅拷贝和深拷贝。对浅拷贝的理解,可理解为拷贝得不彻底,如子对象拷贝了父对象的指向地址等,这时,如果父对象的值发生改变,子对象也随之发生改变。如果是深拷贝,则是“完完全全”地拷贝,相当于重新复制了一份,就算父对象的值发生改变,子对象也不会发生改变。 1.浅拷贝let a = {one: '1', two: '2', three: ['3','4']}; //...原创 2019-02-16 14:17:15 · 458 阅读 · 0 评论 -
深入理解 JavaScript 事件循环(一)— event loop
本文转载自: https://www.cnblogs.com/dong-xu/p/7000163.html感觉这一篇说得还是比较容易理解的,故拿来记录一下。 引言 相信所有学过 JavaScript 都知道它是一门单线程的语言,这也就意味着 JS 无法进行多线程编程,但是 JS 当中却有着无处不在的异步概念 。在初期许多人会把异步理解成类似多线程的编程模式,其实他们中有着很大的差别,...转载 2018-10-27 20:37:00 · 196 阅读 · 0 评论 -
js 事件冒泡与阻止冒泡、事件委托
一.定义事件冒泡 :IE的事件流叫做事件冒泡,即事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到较为不具体的节点(文档)。事件捕获 :事件捕获的思想是不太具体的节点应该更早接收到事件,而最具体的节点应该最后接收到事件。事件委托:事件委托利用了事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。二. 关于事件冒泡与阻止事件冒泡的用法:...原创 2018-10-27 17:28:31 · 845 阅读 · 0 评论 -
js实现滑动轮播图
最近做项目总是只会调用别人做好的各种插件效果,想起很久没来自己写点小插件,久了会忘记的,就赶紧来补一下,前端程序员必备,实现一个js轮播图。html代码:<!DOCTYPE HTML><head> <meta charset="utf-8"> <link rel="stylesheet" type="text/css" href=&qu原创 2018-10-26 21:01:31 · 8607 阅读 · 0 评论 -
js实现二叉树(构建、遍历)
二叉树是一种经典的数据结构,二话不说,上代码。。//节点function Node(element, left, right,parents) { this.element = element; this.left = left; this.right = right; this.parents = parents; this.show = function() { retu...原创 2019-02-27 10:54:41 · 2827 阅读 · 0 评论 -
js排序算法实现
1.冒泡排序//冒泡排序function bubbleSort(arr) { for(let i = 0; i < arr.length; i++) { for(let j = 0; j < arr.length-i-1; j++) { if(arr[j] > arr[j + 1]) { let buf = arr[j]; arr[j] = ...原创 2019-03-13 17:31:54 · 138 阅读 · 0 评论