240
收录了54篇文章 ·218个问题 · 0人关注

JavaScript知识问答社区,提供从入门到进阶JavaScript学习过程中常见疑惑问题答案和技术分享,同时包括了资深编辑和热心网友的回答。


0

js设计模式在web前端开发中的实践——网站登录

本文,笔者将以一个登录模块的开发流程,向各位说明穿插在其中的知识点 —— 【单例模式】和【发布-订阅模式】的使用。OK,步入正题。假如你是一个大型网站的前端开发人员,在经过激烈地讨论以后,决定让你负责登录模块的开发。先说,这个网站很大,所以有很...

0

JavaScript继承大全!

前言:JS里边的继承是工作中必用的,也是面试中必考的,所以这篇文章就给大家介绍一下每种继承的特点,希望对大家有所收获~!原型链继承//父类 functionPerson(name){ this.name=name||'hpp'; this.sayName=function(){ returnthis.name; } } //子类 ...

0

【JavaScript设计模式】策略模式

写在前面这个系列的文章是通过对《JavaScript设计模式》一书的学习后总结而来,刚开始觉得学习的时候只需看书即可,不用再另外记录笔记了,但是后面发现书中有些内容理解起来并不是很容易,所以结合书中的描述就将自己的理解也梳理了一下并将它记录下来,希望...

0

【JS排序算法】JavaScript实现冒泡排序

写在前面本文是学习"ben大叔"大佬的相关文章所总结而成。作为一名前端,你可以不了解复杂的一些算法实现,但是关于排序算法你可要了解和掌握哦,比如以下这几种:冒泡排序简介冒泡排序作为排序算法家族中的成员来说,相当于编程语言学习中的"Hello World",因...

0

JavaScript判断数据类型

1、定义检测数据constnum=123; conststr='aaa'; constbool=true; constarr=[1,2]; constjson={name:'aaa',num:111}; constfunc=()=>console.log('function'); co...

0

JS中的闭包回顾

在弄明白函数闭包前,先要弄清楚函数执行时的上下文环境。console.log(fn); varfn=function(){//函数表达未 return55; } //打印undefined console.log(fn); functionfn(){//函数声明 return55; } //打印 /* ƒfn(){ return55; } */在全局环境下,由于有变...

0

JS原型链温故

在js中,对于对象的理解很重要。js的数据类型主要分为基本类型和引用类型。基本类型包括String、Number、Boolean、undefined、null。引用类型包括Object。通常判断一个数据类型是基本类型可以使用typeof,判断一个数据类型是引用类型的可以使用instanceof。本...

0

javascript设计模式十:装饰者模式

在js函数开发中,想要为现有函数添加与现有功能无关的新功能时,按普通思路肯定是在现有函数中添加新功能的代码。这并不能说错,但因为函数中的这两块代码其实并无关联,后期维护成本会明显增大,也会造成函数臃肿。比较好的办法就是采用装饰器模式。在保持现...

0

javascript设计模式九:中介者模式

中介者对象践行了最少知识原则,指一个对象尽可能少的了解别的对象,从而尽量减少对象间耦合程度。这样各个对象只需关注自身实现逻辑,对象间的交互关系交由中介者对象来实现和维护。需求背景:手机购买页面,在购买流程中,可以选择手机的颜色及输入购买数量...

0

javascript设计模式八:职责链模式

职责链的定义:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象能处理它为止,传递链中的这些对象就叫节点。需求背景: 一个电商网站,用户交500定金且定金已付时,...

0

javascript设计模式七:模板方法模式

模板方法模式,是一种典型的通过封装变化提高系统扩展性的设计模式。在传统的面向对象语言中,一个运用了模板方法模式的程序中,子类的方法种类和执行顺序都是基本不变的,所以把这部分逻辑抽象到父类的模板方法中。而子类的方法具体怎么实现则是可变的,于是...

0

javascript设计模式六:发布-订阅模式(观察者模式)

发布-订阅模式也叫观察者模式,是js开发中应用广泛的一种模式。下面将列举一个通用发布订阅模式的示例,应用到闭包、this、apply/call、自执行函数等概念,起码达到熟悉的程度,才能说把发布-订阅模式真正吃透并能灵活运用到实际场景中去。常见的发布订阅模式...

0

javascript设计模式五: 原型模式

在javascript语言中,原型与原型链是一个非常重要的概念,因为它们是javascript语言得以成立的根本。因为javascript是基于原型的面向对象编程语言,这有别于基于类的java、python等面向对象编程语言。虽然javscript现在也有了class,但它骨子里还是个基于原型...

0

javascript设计模式四:迭代器模式

迭代器模式分为内部迭代器和外部迭代器,内部迭代器就是在函数内部定义好迭代的规则,它完全接手整个迭代的过程,外部只需一次初始调用。内部迭代器以下自行实现的类似jquery中$.each()的each()函数就是内部迭代器//实现一个jq的$.each()迭代器vararr=[1,2,3,...

0

javascript设计模式三:代理模式

代理模式是一种对程序对象进行控制性访问的一类解决方案。引入代理模式,其实是为了实现单一职责的面向对象设计原则。单一职责其实就是指在一个类中(js中通常指对象和函数等),应仅有一个引起它变化的原因。这样会帮助程序设计具有良好的健壮和高内聚特性,...