JavaScript
文章平均质量分 56
44w0
这个作者很懒,什么都没留下…
展开
-
浏览器的进程和线程
浏览器的进程和线程原创 2022-11-02 19:33:59 · 735 阅读 · 1 评论 -
js阻止事件冒泡方案
js阻止事件冒泡原创 2022-08-06 20:15:39 · 571 阅读 · 0 评论 -
使用promise封装Ajax
promise封装ajax原创 2022-06-27 21:02:53 · 295 阅读 · 0 评论 -
前端模块化module
什么是模块化将一个复杂程序按照一定的规则封装成几个块(模块),并组合在一起;模块的内部数据与实现是私有的,只是向外暴漏一些接口(方法)与外部通信。代码抽象、代码封装、代码复用、依赖管理为什么需要模块化没有模块化会出现:变量和方法容易出现命名冲突,造成全局污染加载资源的方式通过script标签从上到下,会导致引入多个scipt:请求过多、依赖模糊(加载顺序模糊)、难以维护模块化的好处:避免了命名冲突,减少命名空间污染更好的分离,按需加载高复用性、高维护性模块化规范Comm原创 2022-05-24 17:24:08 · 191 阅读 · 0 评论 -
实现EventEmitter 订阅监听模式
写一个EventEmitter,实现on(监听事件)、emit(触发事件)、off(清除监听事件)、once(为事件注册单次监听器)以上功能: class EventEmitter { constructor() { // events是一个对象,key对相应的是event,value对应的是函数的数组 this.events = {}; } // 监听event事件,触发时调用callback函数原创 2022-05-09 16:37:29 · 535 阅读 · 0 评论 -
下划线驼峰互转
下划线变驼峰使用另一个变量存储,遍历当前字符串,把当前字符加入到新的变量中,遇到_,后面的字符变大写之后再加入到变量中。遍历字符串,如果遇到_,直接利用slice方法进行切割,对后一个字符进行大写,之后拼接。利用replace()和正则表达式。//1. let str = "hello_world";function fn1(str){ let result =""; for(let i=0;i<str.length;i++){ var res =str原创 2022-05-02 20:59:25 · 784 阅读 · 0 评论 -
排序 js版(冒泡、快排、归并、选择、插入、希尔、堆)
冒泡排序(稳定 O(n^2))通过相邻元素之间的比较和交换,将排序码小的元素逐渐从底部移向顶部。// 冒泡,相邻元素之间比较 function fn(arr){ for(let i=0;i<arr.length-1;i++){ for(let j=0;j<arr.length-1-i;j++){ if(arr[j]>arr[j+1]){ let temp = arr原创 2022-04-26 10:05:30 · 3733 阅读 · 3 评论 -
遍历数组和对象的方法
遍历数组的方法forEach遍历,不能跳出循环。不能使用break、continue或者return语句使用for-in遍历(遍历的是键,能够遍历原型链上的属性,也就是继承的属性)使用for-of遍历(遍历数组,类数组对象、字符串都支持)遍历对象的方法回答的是for-of,但是for-of是不能直接遍历对象的,但是它有提供的其他三种方法:Object.keys()、Object.values()、Object.entries()。for-in 循环遍历对象自身的和继承的可枚举属性(不包含s原创 2022-04-16 10:32:31 · 1384 阅读 · 0 评论 -
js判断数据类型(全)
js基本数据类型基本数据类型:String、Number、Boolean、Undefined未定义、null空、symbol表示独一无二的值(es6引入的新的原始数据基本类型)。Number:返回的特殊值NaN,表示不是数值,用于表示本来要返回的数值的操作失败了。String:字符串是不可变的,一旦创建,值就不能变了。做的字符串操作是先对原字符串进行销毁再创建的。null:null值表示一个空对象指针,typeof null 结果是object。symbol(符号):是原始值,且实例是唯一、不原创 2022-04-11 08:12:21 · 15800 阅读 · 0 评论 -
js中new一个实例对象的过程
new操作符的作用:new操作符用于创建一个构造函数的实例对象。function Person(name,age){ this.name = nage; this.age = age;}Person.prototype.sayName = function(){ console.log(this.name)}conste person1 = new Person('Tom',20);console.log(person1) //Person {name: "Tom", age: 20}原创 2022-04-03 16:38:01 · 2715 阅读 · 6 评论 -
详说Promise与async/await
1.什么是promisepromise是对异步编程的抽象。一个promise对象代表一个异步操作,可以将回调函数与异步对象脱离,通过then方法在这个异步操作上绑定回调函数。2.promise的状态pedding初始状态;fulfilled成功状态;rejected失败状态;状态一旦改变,就不会再发生变化。3.promise的优点将异步对象和回调函数脱离,从回调地狱中解脱,避免了层层嵌套。提供了唯一then接口,更好的控制异步操作,代码简洁化。4.promise的缺点无法中途取消,一旦状态原创 2022-03-06 15:05:27 · 221 阅读 · 0 评论