js
文章平均质量分 50
解读js的特性
霜叶w
搞不懂就去做吧
展开
-
promise、async函数、异步打印的面试题理解
事件循环和同步异步的了解,附带一个面试题讲解,async,promise原创 2022-04-06 23:53:05 · 1608 阅读 · 0 评论 -
从一个面试题认识原型链
原型与原型链原创 2022-03-27 11:17:36 · 1236 阅读 · 0 评论 -
react的setState怎么用以及解析
setState的使用以及解析原创 2022-03-13 19:44:48 · 2039 阅读 · 0 评论 -
webpack5知识点总结
webpack的知识点总结原创 2022-03-08 22:58:17 · 739 阅读 · 0 评论 -
浏览器输入一个url到页面显示发生了什么?
从输入url到页面显示原创 2022-03-02 23:47:21 · 601 阅读 · 0 评论 -
js 模块化,AMD、CMD以及commonjs和es6模块化
模块化详解原创 2022-03-02 21:53:48 · 948 阅读 · 0 评论 -
Promise的实现
实现Promise原创 2022-03-01 23:04:48 · 325 阅读 · 0 评论 -
js函数防抖与节流
防抖不管时间触发的频率有多高,必须要在停止触发后的一定时间内才能执行,例如:滚动事件,必须等到滚动停止后才能输出打印// 利用闭包,返回 function debounce(fn, wait, immediate) { console.log("heihei") let timer = null; // 返回一个函数 return function (...args) { console.log(this)原创 2022-02-27 20:49:35 · 109 阅读 · 0 评论 -
js中的类、继承、构造函数
在es5中实现一个构造函数,并用new调用,即可得到一个类的实例。到了es6发布了Class的写法,js的面向对象变成也变得比较规范了。聊到类就不能不说类的构造函数以及类如何继承原创 2022-02-26 23:57:45 · 512 阅读 · 0 评论 -
js中的六种错误
SyntaxError:语法错误// 1.1 变量名不符合规范var 1 // Uncaught SyntaxError: Unexpected number// 1.2 给关键字赋值function = 5 // Uncaught SyntaxError: Unexpected token =Uncaught ReferenceError:引用错误 // 2.1 引用了不存在的变量 // 至少声明了才能用,声明了不赋值是undefined cons原创 2022-02-26 12:06:15 · 383 阅读 · 0 评论 -
js闭包应用
闭包:函数能够访问其他函数内部的变量在一个函数作用域中,函数内部的变量可以被它的子函数所访问,这是因为在js运行时会创建上下文环境,js寻找变量的过程就是从当前作用域寻找,找不到就去上级寻找,一直到window,如果还是没有就返回undefined。闭包优点:避免全局变量的污染变量长期保存在内存中,不会被清除常见例子:返回内部子函数 function count(){ var a = 0 return { up:function ()原创 2022-02-25 23:18:38 · 325 阅读 · 0 评论 -
var、let、const三者的区别
let var const原创 2022-02-20 23:22:22 · 590 阅读 · 0 评论 -
js连等赋值
连等赋值原创 2022-02-10 23:14:53 · 649 阅读 · 0 评论 -
前端登录过程aes加密
登录过程aes加密原创 2022-02-08 22:50:53 · 4006 阅读 · 0 评论 -
百度地图鼠标绘制后判断点是否在圈内isPointInRect的api异常
业务场景:在一次开发中,需要通过页面鼠标绘制多边形圈选人创建群聊鼠标绘制利用百度地图的鼠标绘制api画出多边形,例:百度鼠标绘制DEMO;圈选完成后利用BMapLib.GeoUtils完成判断点是否在多边形内,BMapLib.GeoUtils中提供了多种判断的api但是矩形的判断一直失败。。。。。无奈之下我打印了isPointInRect方法,并且复制下来在内部加了打印,发现类型判断一直不能通过,bounds参数的getSouthWest等方法也不存在。 41 GeoUtils.isPo原创 2021-12-13 18:15:00 · 962 阅读 · 0 评论 -
VScode调试模式,在代码中加入debugger
VScode调试模式,在代码中加入debugger原创 2021-12-05 22:50:05 · 1596 阅读 · 0 评论 -
window.loaction和window.history对象
window.locationwindow.location.hrefa标签路由管理插件哪些引起页面刷新原创 2021-11-22 23:55:31 · 457 阅读 · 0 评论 -
webpackChunkName在Vue配置路由懒加载时的作用
webpackChunkName打包时定义的chunkName原创 2021-11-22 21:40:59 · 2511 阅读 · 0 评论 -
Js模块化规范
模块化前端模块化我们所熟知的是AMD、CMD、ES6模块化、CommonJSCommonJS这是由node引入的一种规范,这种规范的特点是每个文件是一个模块,有自己的作用域。在任意一个模块中都有一个module对象,它的exports属性是对外提供的接口,其他文件加载模块的时候就是在读取这个属性的值,用require命令读取模块。CommonJs的读取过程是同步的,这在服务端因为资源都在本地,所以并不会造成阻塞。参考 阮一峰CommonJS规范AMD、CMDAMD、CMD规范都是异步加载的,原创 2021-11-05 00:02:36 · 100 阅读 · 0 评论 -
广度优先遍历、深度优先遍历js实现
介绍深度优先遍历:自上而下的遍历广度优先遍历:逐层遍历例如一个二叉树,每次遍历优先找叶子节点就是深度优先,每次先找同一层次的节点就是广度优先一、深度优先 var tree = [ { name: "中国", children: [ { name: "北京", children: [ { name: "海淀区", },原创 2021-10-14 00:44:22 · 544 阅读 · 0 评论 -
数组排序的算法用js实现
冒泡排序 var arr = [2, 11, 5, 3] function sort1(arr) { var len = arr.length for (var i = 0; i < len; i++) { /** * 第一次循环时i = 0, * 进过内层的循环后,确保arr[0]为数组的最小项 * 不必比较当j = 0,也就是j =< i时的情原创 2021-09-28 08:15:00 · 121 阅读 · 0 评论 -
js继承的实现
这里主要介绍两种比较好的继承方式组合继承组合继承实际上指的是继承了父类的原型链并且调用了父类的构造函数代码如下: function Person(name){ this.name = name || 'user' console.log(this.name) this.showName = function(){ console.log('my name is '+ this.name) } }原创 2021-09-24 11:19:07 · 87 阅读 · 0 评论 -
call、apply、bind实现
call改变this指向,传递参数为(目标对象,方法的参数逐个传入)代码如下: var obj = { name: 'sss' } function showName(name) { console.log('name:' + name + ' this.name:' + this.name) } Function.prototype.myCall = function (object) { let obj = object ||原创 2021-09-24 10:39:38 · 82 阅读 · 0 评论 -
new操作符做了什么,实现一个new方法
new操作符做了什么MDN上的说明是:创建一个空的简单JavaScript对象(即{});为步骤1新创建的对象添加属性__proto__,将该属性链接至构造函数的原型对象 ;将步骤1新创建的对象作为this的上下文 ;如果该函数没有返回对象,则返回this。实践一下 function Person(name,age){ this.name = name this.age = age } var child1 = new Person('t'原创 2021-09-23 11:17:20 · 144 阅读 · 0 评论 -
js计算数组中的最大值
不再示范循环遍历的方法1.sort排序sort排序需要注意sort函数本身会按照字符串形式进行排序,正确的排序需要用一个比值函数 var arr = [4,22,45,1,31,52] arr.sort(fn) console.log(arr,arr[arr.length-1]) // [1, 4, 22, 31, 45, 52] 52 // 比值函数 function fn(a,b){ return a-b }2.reduce方法原创 2021-09-21 23:29:08 · 2951 阅读 · 0 评论 -
js实现观察者模式与发布订阅模式的对比
观察者模式当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者与发布订阅模式的不同观察者模式只有两个角色,发布订阅模式多了中间管理者观察者和被观察者之间是松耦合关系,发布者和订阅者之间完全不存在耦合关系发布订阅模式的系统更加庞大适用于较大的系统,观察者模式适用于单个应用内部实现代码 // 目标者类 class Subject { constructor() {原创 2021-09-21 12:13:21 · 200 阅读 · 0 评论 -
js简单实现发布订阅者模式
发布订阅模式在发布订阅模式中,发布者和订阅者并不会直接交流,由一个中间调度者做中间人,实现消息的传递。相对于观察者模式,发布订阅模式的规模更适用于较大规模的消息通知优点:发布订阅模式将对象之间解耦,发布者不必关心消息传递给谁,订阅者只需要负责对应主题消息的接受即可缺点:订阅者一旦实例化就必须占用内存,但订阅者并不能一定获取到对应主题发送的消息,也就是这个主题不一定会有新的消息通知JS代码实现发布者=》主题中间件=》订阅者// 发布者 class Publish{ cons原创 2021-09-21 11:45:48 · 691 阅读 · 0 评论 -
js的this指向哪里
js的this指向哪里原创 2021-09-15 16:25:21 · 383 阅读 · 0 评论