javaScript应用
逐步探索js的特性,到完全掌握js使用方法
妙团团
人生只有一次,就该全力以赴。
展开
-
模拟事件总线
单页面应用,页面不刷新,页面定义的变量和函数是一直保持的,vue中的全局事件总线是把要触发的回调方法挂到了vue全局变量上。先监听,然后在需要的地方触发。存在于全局变量,子孙组件通过引用都可以访问到。简单理解为,............原创 2022-08-30 18:02:19 · 210 阅读 · 0 评论 -
js异步变同步阻塞等待执行
在某些场景下,我们需要执行一些有等待时间的同步操作,可能会想到用定时器,是的就是用定时器。为什么要这么做,在stop函数的作用域下,如果有多个执行逻辑,且不能修改原有的逻辑代码,而新增加逻辑必须要等待,那么这种情况下,阻塞stop函数内部执行是可行的。......原创 2022-07-08 11:57:14 · 1849 阅读 · 0 评论 -
BM22 比较版本号 js 数组转字符串
描述牛客项目发布项目版本时会有版本号,比如1.02.11,2.14.4等等现在给你2个版本号version1和version2,请你比较他们的大小版本号是由修订号组成,修订号与修订号之间由一个"."连接。1个修订号可能有多位数字组成,修订号可能包含前导0,且是合法的。例如,1.02.11,0.1,0.2都是合法的版本号每个版本号至少包含1个修订号。修订号从左到右编号,下标从0开始,最左边的修订号下标为0,下一个修订号下标为1,以此类推。比较规则:一. 比较版本号时,请按从左到右的顺序依次比较它原创 2022-04-17 16:57:13 · 134 阅读 · 0 评论 -
js 归并排序
js归并排序思路: 将数组粒度拆到最小,相互对比;其中回调是用来判断升降序的function merge(left, right, cd){ const res = []; while(left.length && right.length){ let isAscendingOrder = typeof cd === 'function' && cd(left[0], right[0]); if (typeof cd !== 'function' || isA原创 2022-04-16 23:29:50 · 298 阅读 · 0 评论 -
BM19 寻找峰值
描述给定一个长度为n的数组nums,请你找到峰值并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个所在位置即可。1.峰值元素是指其值严格大于左右相邻值的元素。严格大于即不能有等于2.假设 nums[-1] = nums[n] = -\infty−∞3.对于所有有效的 i 都有 nums[i] != nums[i + 1]4.你可以使用O(logN)的时间复杂度实现此问题吗?数据范围:1 \le nums.length \le 2\times 10^5 \1≤nums.length原创 2022-04-11 22:42:26 · 297 阅读 · 0 评论 -
BM18 二维数组中的查找
描述在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]给定 target = 7,返回 true。给定 target = 3,返回 false。数据范围:矩阵的长宽满足 0 \le n,m \le 5000≤n,m≤500 , 矩阵中的值满足 0原创 2022-04-11 22:22:44 · 55 阅读 · 0 评论 -
javaScript大数相加算法
JS 在存放整数的时候是有一个安全范围的,一旦数字超过这个范围便会损失精度。我们不能拿精度损失的数字进行运行,因为运算结果一样是会损失精度的。最好是用字符串来保存数字,不用数字类型如果我们直接加let a = "12345678901234567891111111111111111111111111111111111111111111111111111111";let b = "123456789012345678911111111111111111111111111111111111111111原创 2022-04-05 22:15:52 · 531 阅读 · 0 评论 -
BM5 合并k个已排序的链表
描述合并 k 个升序的链表并将结果作为一个升序的链表返回其头节点。数据范围:节点总数满足 0 \le n \le 10^50≤n≤105,链表个数满足 1 \le k \le 10^5 \1≤k≤105,每个链表的长度满足 1 \le len \le 200 \1≤len≤200 ,每个节点的值满足 |val| <= 1000∣val∣<=1000要求:时间复杂度 O(nlogk)O(nlogk)示例1输入:[{1,2,3},{4,5,6,7}]返回值:{1,2,3,4原创 2022-04-04 22:58:49 · 612 阅读 · 0 评论 -
链表内指定区域间反转
关于牛客的在线编程链表题原创 2022-04-04 13:33:38 · 529 阅读 · 0 评论 -
书写不可维护的javaScript代码
编写不可维护的javaScript代码不可维护分析1,代码可读性。2,结构紧凑开始基本格式化1,缩进层级2, 语句结尾3, 行的长度4, 换行5, 空行6,命名注释前言: 本文旨在编写不可维护的javaScript代码。如果有代码洁癖,请不要阅读,以免造成思想包袱。这里不做过多阐述,都是干货;不可维护分析不可维护不代表不可运行1,代码可读性。代码可读性,是代码维护效率的关键。本意上代码都是给人读的,机器执行的是编译后的二进制,把二进制封装为更简单更易上手的用法,就是从底层向高级语言的进化。那么可读原创 2021-11-14 19:13:24 · 981 阅读 · 0 评论 -
设计模式之单例模式
设计模式之单例模式 //单例模式 function Dan(fn){ var res = null; return function(){ return res || (res = fn()); } } function Fun(opt = {}){ return { data:opt, get:function(){ return this.data;原创 2021-09-18 20:26:25 · 47 阅读 · 0 评论 -
手写事件列队
事件列队遵循先进先出的原则 这种方法只能说是模拟。function Ld(){ let index = arguments.length; //获取参数列表长度 const arr = []; //接收参数 for(var i = 0 ;i<arguments.length;i++){ if( typeof arguments[i] === 'function'){ arr.push(arguments[i]); } } t原创 2021-07-25 20:18:46 · 67 阅读 · 0 评论 -
vue写选项卡
刚开始写vue不知道可以这么,可把人难死了,还好方法总是学会的; <div id='app'> <div class='app-div'> <div class='div'v-for='(item,i) in mesgg' :class='{"ye":i==sum}' v-on:click='show1(i)'>{{item}}</div> </div> <di原创 2021-05-31 22:47:07 · 229 阅读 · 0 评论 -
递归遍历Dom树
想了很久,这个问题必须的攻克;如何遍历dom节点树?最近学习了vue有一个虚拟dom,本质上来讲,虚拟dom就是个对象,在对象中储存不同节点的信息。然后和新的数据对比,做出修改;根据这个思路写了一个Vw构造函数,根节点可以使用,id查找,类名或者标签;代码如下;function Vw(e){ this.el=e.el.replace(/\s*/g,''); this.data=e.data; this.success=e.success; this.tree=[];原创 2021-05-27 15:53:05 · 349 阅读 · 0 评论 -
变量提升
文章目录一、var二.let三.const四.如果不声明是没有作用域的js声明声明变量有 var let const三种方式提示:以下是本篇文章正文内容,下面案例可供参考一、var通过var声明变量,会将变量提升到作用域最顶部,赋值留在本地。如果在赋值之前使用变量的值为空。如下 console.log(x); var x=0;效果二.letlet es6新增语法 一个{}就是一个块级作用域,同一个作用域中只能存在一个let声明的变量。如果重复声明则会报错,{ l.原创 2021-04-10 20:45:42 · 73 阅读 · 1 评论 -
js原型链
js的原型链就是继承的关系文章目录一、__proto__二、get和set三.属性特征原型链:当从一个对象哪里调取属性或者方法的时候,如果该对象自身不存在这样的属性或方法,就会去关联的prototype哪里寻找,如果prototype没有就会去prototype关联的prototype哪里寻找,直到prototype的prototype为null的时候。从而形成了原型链提示:以下是本篇文章正文内容,下面案例可供参考一、protojs的对象都有一个__proto__ 属性,这个原型属性是对另一原创 2021-04-10 19:23:17 · 132 阅读 · 0 评论 -
js原型链流程图
原型链流程图通过new关键字将构造函数生成实例对象原创 2021-04-10 16:52:32 · 113 阅读 · 0 评论 -
js 构造函数
构造函数工厂模式,提高代码的复用率,建设代码沉于文章目录一、基本对象构造函数1.使用方法一、基本对象对象可以储存多种数据类型 可以把事物共有的属性提炼出来var stu={ name:'妙团团', age:24, weight:70, eat:function(){ // 在基本对象内部this指向的是当前的对象 console.log(this); console.log('今天在干嘛'); } }当一个对象赋值原创 2021-04-09 17:33:42 · 179 阅读 · 1 评论