
js
js
陈梵阿
这个作者很懒,什么都没留下…
展开
-
js数组,根据数组内的对象中的某一个值进行分组
有一个数组:let list = [{name:'test',value:'value1',count:6},{name:'test1',value:'value2',count:4},{name:'test1',value:'value3',count:2},{name:'test',value:'value4',count:0},]假如想要根据数组中对象的名字进行分类,可以分为test和test1两类。希望得到如下数据:{ test:[ {name:'test',value:'v原创 2021-11-05 11:25:29 · 4245 阅读 · 11 评论 -
节流阀,避免短时间内多次点击多次触发
节流阀顾名思义,就像是水龙头的阀门,控制着开关,避免水流不停的流出。实现比较简单,直接上代码。不懂留言。<body> <button onclick="test()">没有节流阀</button> <button onclick="test1()">有节流阀</button></body><script> var test = () => { console.log('没节原创 2021-02-04 20:24:48 · 282 阅读 · 0 评论 -
JavaScript 构造函数 原型 原型链
在ES6之前并没有类的概念,而是通过构造函数来创建实例。构造函数:function Animal(name, age) { this.name = name; this.age = age; this.sing = () => { console.log('这是方法!') }}如上所示,这就是一个构造函数,他可以用来创建对象,需要使用new关键词。 var dog = new Animal('狗蛋', '3个月');// new了一个对原创 2021-02-04 19:29:51 · 531 阅读 · 0 评论 -
JS深拷贝和浅拷贝
谈到深拷贝和浅拷贝,首先要知道javascript的数据类型和存储方式。JS数据类型:可分为简单数据类型(基本数据类型)和复杂数据类型(引用数据类型):简单数据类型:String、Number、Boolean、undefined和null复杂数据类型:通过new创建的对象、系统对象、自定义对象。如:Object、Array、Date等简单数据类型和复杂数据类型的存储方式也是不一样的,这时就要引入堆和栈的概念。堆和栈不做深入讲解。总之,简单数据类型存储在栈中;复杂数据类型则存储在堆里,在栈中会存储原创 2021-02-03 17:31:56 · 146 阅读 · 0 评论 -
break、continue和return
break、continue、return都可用于跳出循环。return还可用于函数结束时的返回值。break:跳出循环后直接结束。continue:跳出本次循环,然后继续执行下面的循环。return:结束函数,并返回返回值,为空时直接结束函数。break代码 function test() { for (let i = 0; i < 10; i++) { if (i === 3) { break;原创 2021-02-03 16:38:16 · 728 阅读 · 0 评论 -
let const var的区别
let是es6中用来声名变量的,const是es6中用来声名常量(常变量)的。let:相比于var,let不存在变量提升,且具有块级作用域({}内有效),存在暂时性死区(先赋值,再声明,报错)const:相比于var,具有块级作用域({}内有效),且声明时必须赋值,后续不可修改。一.块级作用域: // let const 具有块级作用域 if (true) { let a = 1; var b = 2; const c = 3;原创 2021-01-29 16:25:39 · 337 阅读 · 0 评论