ducky_L

导航

随笔分类 -  JS

记录常见js问题
js 实现继承
摘要:一、使用原型链 function Animal1(leg){ this.leg=leg; } function Dog1(name){ this.name=name; Animal1.call(this,4) //!!import1 } Dog1.prototype.__proto__=Animal 阅读全文

posted @ 2023-04-24 17:59 ducky_L 阅读(33) 评论(0) 推荐(0)

js 如何实现类
摘要:一、使用原型 function Chicken1(name) { this.name = name } Chicken1.prototype.kind = 'chicken'; Chicken1.prototype.say = function () { console.log(`hello,i'm 阅读全文

posted @ 2023-04-24 17:44 ducky_L 阅读(50) 评论(0) 推荐(0)

js EventLoop事件循环机制
摘要:1、js是单线程语言,其事件分为:同步任务和异步任务,异步任务分为宏任务与微任务; 2、执行顺序为:同步任务(主流程任务) > 微任务 > 宏任务 先执行同步任务,遇到异步任务则放入任务队列中,等同步任务执行完毕,执行任务队列中的微任务,再执行宏任务... 主线程从"任务队列"中读取事件,这个过程是 阅读全文

posted @ 2023-04-17 17:11 ducky_L 阅读(22) 评论(0) 推荐(0)

js 手写发布订阅eventHub
摘要:1、发布-订阅是一种消息范式,通过定义发布者、订阅者、调度中心来完成消息通信。 const eventHub = { map: {}, on(name, fn) { this.map[name] = this.map[name] || []; this.map[name].push(fn); con 阅读全文

posted @ 2023-04-13 16:43 ducky_L 阅读(73) 评论(0) 推荐(0)

js 手写防抖节流
摘要:1、防抖:避免事件的频繁调用,即当事件停止一段时间后再促发。 应用:浏览器resize、input校验、button点击 const myDebounce = (fn, wait){ let timer = null; return (...args) => { if (timer) clearTi 阅读全文

posted @ 2023-04-13 14:51 ducky_L 阅读(91) 评论(0) 推荐(0)

js 闭包是什么
摘要:1、阐述闭包:闭包是js的一种语法特性;即「函数」和「函数内部能访问到的变量」的总和,就是一个闭包。 2、闭包的作用:间接访问一个局部变量;以下就实现了一个闭包,它通过返回一个函数使得外部能获得内部的变量。 const increase=function(){ var count=0; return 阅读全文

posted @ 2023-04-13 09:53 ducky_L 阅读(82) 评论(0) 推荐(0)

js 原型和原型链
摘要:1、原型:js中对象o:{} 有一个隐藏属性(__proto__),这个隐藏属性会指向o的原型:o.__proto__ Object.prototype;那么我们就说:Object.prototype就是o的原型; 2、原型链:假设一个数组a=[];a 的隐藏属性指向它的原型(a.__proto__ 阅读全文

posted @ 2023-04-12 16:18 ducky_L 阅读(32) 评论(0) 推荐(0)

js this是什么?
摘要:1、this:指当前执行上下文的一个属性,在非严格模式下,总是指向一个对象,在严格模式下可以是任意值。 可以理解为:this 就是你call 一个函数时,传入的第一个参数,即谁调用了函数,this就指向谁。 2、函数调用转换: func(p1, p2) 等价于 func.call(undefined 阅读全文

posted @ 2023-04-12 15:47 ducky_L 阅读(50) 评论(0) 推荐(0)

js new运算符
摘要:1、new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。(通过构造函数来创建一个实例对象) 2、new做了什么? ①创建一个临时对象 ②为该临时对象添加属性 __proto__,将该属性链接至构造函数的原型对象(绑定原型) ③将this指向该临时对象 ④执行构造函数 ⑤返回 阅读全文

posted @ 2023-04-12 14:59 ducky_L 阅读(18) 评论(0) 推荐(0)

js 8种数据类型
摘要:1、ES6之前共6种:number\string\Boolean\null\undefined\object; ES6增加symbol:这种类型的对象永不相等,可以解决属性名冲突的问题,做为标记。 ES11增加bigint:写法:1234555n,是指安全存储、操作大整数(不可用于浮点数操作); 2 阅读全文

posted @ 2023-04-11 16:27 ducky_L 阅读(20) 评论(0) 推荐(0)

数组排序、最大值最小值
摘要:1、普通数组排序: ① //升序 Array.sort(); [5, 4, 3, 2, 1].sort(); ==> [1,2,3,4,5] ②Array.sort(function(a,b){return a-b;}) //升序:a-b;降序:b-a; [5, 4, 3, 2, 1].sort(f 阅读全文

posted @ 2017-12-19 18:30 ducky_L 阅读(132) 评论(0) 推荐(0)

JS Date日期处理
摘要:获取当前日期:new Date() Fri Sep 29 2017 15:42:09 GMT+0800 (中国标准时间) 将日期转换为时间戳:1、Date(new Date()) 2、 +new Date() 1506670951670 将时间戳转换成日期:new Date(150667070800 阅读全文

posted @ 2017-09-29 15:43 ducky_L 阅读(98) 评论(0) 推荐(0)

js 获取字符串中的中文
摘要:string.replace(/[^\u4e00-\u9fa5]/gi,"") 阅读全文

posted @ 2017-09-21 14:42 ducky_L 阅读(298) 评论(0) 推荐(0)

跨域请求--Jsonp
摘要:1、原生js处理跨域请求 原理:通过动态创建script标签(无跨域限制),定义一个callback函数处理接口返回的数据 //定义callback函数对请求返回的json数据进行处理 function callback(data) { //do something } //设置需要请求的跨域url 阅读全文

posted @ 2017-08-16 17:34 ducky_L 阅读(122) 评论(0) 推荐(0)

js 发送http请求
摘要:1、在 JavaScript 中,XMLHttpRequest 是客户端的一个 API,它为浏览器与服务器通信提供了一个便捷通道。 2、发送请求步骤: // 1、创建 XHR对象(IE6- 为ActiveX对象) // 2、连接及发送请求 // 3、回调处理 function createXMLHt 阅读全文

posted @ 2017-08-16 16:24 ducky_L 阅读(4058) 评论(0) 推荐(0)

js 手写数组去重
摘要:1、通过遍历原数组和新数组是否重复。new一个新数组存放已经遍历过的、唯一的元素。 function uniqueArr(list){ var newArr= [list[0]]; for(var i=1;i<list.length;i++){ var isRepeat = false; for(v 阅读全文

posted @ 2017-08-01 18:19 ducky_L 阅读(162) 评论(0) 推荐(0)

jquery.validate.js使用实例
摘要:// select only the first element for each name, and only those with rules specified //if ( this.name in rulesCache || !validator.objectLength($(this). 阅读全文

posted @ 2017-07-10 14:32 ducky_L 阅读(284) 评论(0) 推荐(0)