#JavaScrip

在javascript中获取一个对象内属性的个数

varfoo={a1:'1',a2:'2',a3:'3'};//获得对象所有属性的数组Object.getOwnPropertyNames(foo);>['a1','a2','a3']//获取对象属性的个数Object.getOwnPropertyNames(foo).length;>3getOwnProp...

javascript设计模式实践之职责链--具有百叶窗切换图片效果的JQuery插件(三)

在上一篇《javascript设计模式实践之模板方法--具有百叶窗切换图片效果的JQuery插件(二)》里,通过采用模板方法模式完成了切换效果对象的构建编写。接下来就是完成各效果对象的调用和联动。切换要求:当前图片显示指定时间后执行切换效果并切换下一张图片,最后一个切换后从头开始。按照要求一个效果对象完成后要执行下一个...

javascript设计模式实践之模板方法--具有百叶窗切换图片效果的JQuery插件(二)

在上一篇《javascript设计模式实践之迭代器--具有百叶窗切换图片效果的JQuery插件(一)》里,通过采用迭代器模式完成了各初始化函数的定义和调用。接下来就要完成各个切换效果的编写。先思考一下一个切换效果需要完成的操作1.准备阶段,将各个strip归位到动画效果开始的位置。2.动画效果处理。3.执行。3.完成。...

javascript设计模式实践之迭代器--具有百叶窗切换图片效果的JQuery插件(一)

类似于幻灯片的切换效果,有时需要在网页中完成一些图片的自动切换效果,比如广告,宣传,产品介绍之类的,那么单纯的切就没意思了,需要在切换的时候通过一些效果使得切换生动些。比较常用之一的就是窗帘切换了。先贴上完成的效果。   实现原理不复杂,在动的一条一条的称之为“窗帘条”或者是“strip”...

javascript设计模式实践之策略模式--输入验证

策略模式中的策略就是一种算法或者业务规则,将这些策略作为函数进行封装,并向外提供统一的调用执行。先定义一个简单的输入表单:<!DOCTYPEhtml><html><head><metacharset="utf-8"><style>.form{width:400...

画一画javascript原型链

在javascript中,几种数据类型String,Number,Boolean,Object,Function都是函数,可称之为函数对象。可以说拥有prototype属性的都是函数。所有对象都拥有__proto__属性,因为原型链就是靠__proto__的指向进行构建。使用函数,并在该函数前添加new操作符的调用,可...
代码星球 ·2021-02-25

交换排序---快速排序算法(Javascript版)

快速排序是对冒泡排序的一种改进。通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,最终达到整个数据变成有序序列。假设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数...

交换排序---冒泡排序算法(Javascript版)

比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 functionsort(elements...

选择排序---堆排序算法(Javascript版)

堆排序分为两个过程:1.建堆。堆实质上是完全二叉树,必须满足:树中任一非叶子结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。堆分为:大根堆和小根堆,升序排序采用大根堆,降序排序采用小根堆。如果是大根堆,则通过调整函数将值最大的节点调整至堆根。2.将堆根保存于尾部,并对剩余序列调用调整函数,调整完成后,...

选择排序---直接选择排序算法(Javascript版)

在要排序的一组数列中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。functionsort(elements){for(i=0;i<elements.length;i...

插入排序---希尔插入排序算法(Javascript版)

取一个小于n的整数作为第一个增量,把序列分组。所有距离为增量的倍数的元素放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量(第二个<第一个)重复上述的分组和排序,直至所取的增量=1,即所有元素放在同一组中进行直接插入排序为止。 一般的初次取序列的一半为增量,以后每次减半,直到增量为1。&nb...

插入排序---直接插入排序算法(Javascript版)

将n个元素的数列分为已有序和无序两个部分。数列:{a1,a2,a3,a4,…,an}将该数列的第一元素视为有序数列,后面都视为无序数列:{{a1},{a2,a3,a4,…,an}}将无序数列中的元素插入到有序数列的对应位置,插入前通过比大小的方式找到其在有序数列中的对应位置。 代码:以下代码在nodejs环境...

“云”端的语雀:用 JavaScript 全栈打造商业级应用

语雀是一个专业的云端知识库,面向个人和团队,提供与众不同的知识管理,打造轻松流畅的工作协同,它提供各种格式的在线文档(富文本、表格、设计稿等)编辑能力,支持实时在线多人协同编辑,数据云端保存不丢失。而语雀与其他文档工具最大的不同是,它通过知识库来对文档进行组织,让知识创作者更好的管理知识。原型阶段语雀诞生于2016年,...

JavaScript简写技巧 转载 持续搬运,方面自己查看

  关于一些JavaScript的小技巧,转载自https://www.geekjc.com/post/5a0a8c9a592e38541f7703c8。  1if语句可以简写三目运算:constx=20;letanswer;if(x>10){answer='greaterthan10';}else{answer...

javascript是面向对象的,怎么体现javascript的继承关系?

一个简单的例子:varA=function(){}A.prototype={v:5,tmp:76,echo:function(){console.log(this.tmp);},}//v、tmp、echo都是属于A的原型,varb=newA();b.echo();//但是此处会发现b也可以调用A的所有原型,而b并没有声...
首页上一页12345...下一页尾页