![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JS
new_liu
这个作者很懒,什么都没留下…
展开
-
VUE手写横向轮播图
VUE手写横向轮播图,宽度自适应原创 2022-06-13 16:44:28 · 1081 阅读 · 0 评论 -
常用正则校验
js常见校验原创 2021-12-24 14:19:41 · 380 阅读 · 0 评论 -
高阶函数和高阶组件
如果一个函数操作其他函数,即将其他函数作为参数或将函数作为返回值,将其称为高阶函数。高阶组件(high-order component)类似于高阶函数,接收组件作为输入,输出一个新的组件。实现高阶组件的方法有如下两种。属性代理(props proxy)。属性组件通过被包裹的 React 组件来操作 props。 反向代理(inheritance inversion)。高阶组件继承于被...原创 2019-11-21 14:29:05 · 396 阅读 · 0 评论 -
纯函数
纯函数的概念:不能改变入参 不能影响作用域之外的变量老规矩,举例子:let obj={name:'作用域之外的对象'}function test(param){ obj = '修改作用域之外的对象,不是纯函数'; param.name='改变了入参,不是纯函数';}function test1(param){ let obj1 = param; ...原创 2019-11-07 15:56:13 · 111 阅读 · 0 评论 -
桥接模式
将抽象部分与他的实现部分分离,这样抽象化与实现化解耦,使他们可以独立的变化 应用场景:实现系统可能有多个角度分类,每一种角度都可能变化 桥接双方可以通过实现桥接口进行单方面扩展,也可以继续抽象类而单方面扩展,而之间的调用就从桥接口来作为突破口,不会受到双方扩展的任何影响class A{ constructor(bridge){ this.bridge = bridge; }...原创 2019-10-31 17:50:39 · 96 阅读 · 0 评论 -
状态和策略模式
当一个对象的内部状态发生改变时,会导致其行为的改变,这看起来相是改变了对象 对象有自己的状态 不同状态下执行的逻辑不一样 明确状态和每个状态下执行的动作 用来减少 if else子句//状态模式class SuccessState{ show(){ console.log('high'); }}class WarningState{ sho...原创 2019-10-30 09:28:58 · 104 阅读 · 0 评论 -
原型模式
原型模式是一个创建型的模式 创建基类的时候,简单差异化的属性放在构造函数中,消耗资源相同的共嗯那个放在基类原型中对象都是由函数创建,函数也是对象,so,万物皆对象,so easy !!!想哭。let obj = {name:'aaa'} //是下列代码的语法糖:let obj = new Object();obj.name = 'aaa'每个函数都有一个属性 叫 prototy...原创 2019-10-30 09:37:09 · 91 阅读 · 0 评论 -
发布订阅模式
发布订阅模式-1//jQuery callbacks原理window.jQuery= { callbacks(){ let callbacks = []; function add(callback){ callbacks.push(callback) } function remove(cal...原创 2019-10-30 09:38:48 · 116 阅读 · 0 评论 -
mousewheel DOMMouseScroll
mousewheel事件火狐不兼容,但是火狐支持DOMMouseScroll,解决方案:let courseCenterContainer = document.querySelector(".tab-content"); let srcollFn = function(e){ if(e.wheelDelta){ let v = -e.wheelDelt...原创 2019-10-24 17:20:01 · 193 阅读 · 0 评论 -
外观模式和观察者模式
外观模式该模式就是把一些复杂的流程封装成一个接口提供给外部用户更简单的使用 门面角色:外观模式的核心,它倍客户角色调用,它熟悉子系统的共嗯那个,内部根据客户角色的需求预 子系统角色:实现了子系统的功能,它对客户角色和Facade是未知的 客户角色:通过调用Facede来完成要实现的功能class Sum{ sum(a,b){ return a+b; }...原创 2019-10-30 09:38:27 · 466 阅读 · 0 评论 -
单例模式
透明单例有一些对象我们往往只需要一个,比如线程池、全局缓存、浏览器中的 window对象等。function Window(name){ this.name = name;}Window.prototype.getName = function(){ console.log(this.name)}let CreateSingle = function(Const...原创 2019-10-16 14:45:00 · 166 阅读 · 0 评论 -
vue 路由跳转,路由传参
1. router-link<router-link :to="{ path: 'pathName', params: { name: 'name', id: data }, query: { name: 'name', id: data } }"> </router-link><!--直接写路由路径--><router-link t...原创 2019-09-20 16:08:48 · 109 阅读 · 0 评论 -
根据url地址生成二维码,微信扫描二维码可直接打开网址
需求:根据url地址生成二维码,微信扫描二维码可直接打开网址html代码:<input id="text" type="text" value="http://www.runoob.com" onblur="makeCode();" onkeydown="keyEnter();"/><div id="qrcodeContent"> <div id...原创 2019-07-12 15:38:35 · 11322 阅读 · 0 评论 -
浏览器检测
浏览器及版本号可以通过navigator对象来做判断,但是兼容性问题太大,具体怎么用大家去百度。这次要给大家推荐的是一个js小程序——浏览器嗅探器,有了它,浏览器检测就变得简单了。该js主要用于判断浏览器的名称、版本号及操作系统。戳这里 ——> browserdetect.js下载地址接下来说一下使用方法,超级简单,比自己判断要方便多了,希望能解决大家的问题。alert(Bro原创 2018-01-10 16:13:05 · 305 阅读 · 0 评论 -
正则表达式截取身份证号码加密
直接上代码:var idCard = '420119188404098978X';//保留前四位和后四位,中间用*号加密idCard = idCard.replace(/(\d{4})\d*([0-9a-zA-Z]{4})/,"$1******$2");//结果:4201******978X原创 2018-06-26 10:04:00 · 1261 阅读 · 0 评论 -
iCheck插件使用
最近项目里正好用到这个插件,奈何记性不好 ,每次都得查资料,写在这里一劳永逸,欢迎大家提意见,共勉。好啦,上代码。1.引用对应文件首先需要去下载icheck插件必要的js和css文件,贴一个非唯一的下载地址:http://plugins.jquery.com/icheck/1.0.1/此插件是依赖jquery的,一定要先加载jquery.js。如何引用js和css我就不赘述了,差...原创 2018-07-10 15:27:52 · 2519 阅读 · 0 评论 -
数组重分组
场景:有一个数组,希望将数组里的元素按照3个一组重新分组,返回一个新的数组regrouping(data){ let result = []; let chunk = 3; //每3个分一组 for (let i = 0, j = data.length; i < j; i += chunk) { result.push(data.slice(i...原创 2019-06-06 10:56:44 · 288 阅读 · 0 评论 -
日期格式化
Date.prototype.format = function (format) { var date = { "M+": this.getMonth() + 1, "d+": this.getDate(), "h+": this.getHours(), "m+": this.getMinutes(), "...原创 2019-06-19 09:39:02 · 69 阅读 · 0 评论 -
swiper 自定义左右箭头样式 将箭头移出容器
关键点:1.在".swiper-container"外层套一个父级容器“.swiper-father”,并让其position:relative;2.重点:箭头相关的两行代码,要从“.swiper-container”移出来,放在“.swiper-father”下css代码:.swiper-father { position: relative; padding:0 37px...原创 2019-07-02 10:20:34 · 5426 阅读 · 0 评论 -
JQuery自定义模态框
重点:基于jQuery ,也可改造成原生模态框功能:可以自定义模态框的宽高等等一系列css样式; 关闭、提交都可以执行自定义的回调函数; js和html分离,除了部分带了js功能的class不能遗漏之外,其他的都可自行增减html代码:<div class="dialog-tiya" id="voteModal"> <div class="modalB...原创 2019-07-03 11:11:42 · 543 阅读 · 1 评论 -
一行代码实现纯数据json对象的深度克隆
JSON.parse(JSON.stringify( dataObj ))补充:只支持纯对象的嵌套,对象里嵌套函数或者new Fn都不支持原创 2019-07-10 15:00:37 · 326 阅读 · 0 评论 -
浏览器用户代理检测
用户代理检测通过检测用户代理字符串来确定实际使用的浏览器。在每一次 HTTP 请求过程中,用户代理字符串是作为响应首部发送的,而且该字符串可以通过 JavaScript 的navigator.userAgent 属性访问。用户代理代理检测,主要通过navigator.userAgent 来获取用户代理字符串的,通过这组字符串,我们来获取当前浏览器的版本号、浏览器名称、系统名称。PS:在服务原创 2018-01-11 11:27:43 · 498 阅读 · 0 评论