js
文章平均质量分 57
一个大BUG
这个作者很懒,什么都没留下…
展开
-
重写Promise.all()方法
Promise.myall = function(arr){ let n = 0;//声明一个计算器,当全部执行成功后再resolve() let resolveValue = [];//存放结果的数组 return new Promise(function(resolve,reject){ //对promise对象的数据进行循环 for(let i = 0;i<arr.length;i++){ //如果执行成功后,将结果添加到数组中原创 2020-10-21 11:22:23 · 456 阅读 · 0 评论 -
数组去重常见的3种方式
1.将数组先进行排序(冒泡),然后通过splice()进行去重let arr = [1,2,3,3,2,3,4,2,2,2,4,4,4];function px(arr){ for(let i = 0;i<arr.length;i++){ for(let j = 0;j<arr.length-i;j++){ if(arr[j]>arr[j+1]){ var t ; t=arr原创 2020-10-21 11:16:47 · 224 阅读 · 0 评论 -
Promise承诺对象
Promise()是一个构造函数,通过new调用来创建一个承诺对象,承诺对象主要用于封装异步操作。一个承诺对象主要有三种状态承诺发起 pending承诺成功 resolved承诺失败 rejected只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。这也是Promise这个名字的由来,它的英语意思就是“承诺”,表示其他手段无法改变。1) 获取或者创建一个承诺对象let promise = new Promise(function(resolve,reject){原创 2020-09-07 20:23:00 · 443 阅读 · 0 评论 -
Iterator的使用以及对象如何转换为可迭代对象
在es6中新增了一个概念:迭代器Iterator,。Iterator是一种接口,为不同的数据结构提供统一的访问机制。不管是什么数据类型,只要部署了Iterator接口(一个数据结构只要部署了Symbol.iterator属性,就被视为具有 iterator 接口),就可以完成遍历操作,即依次处理该数组结构的所有成员。在es6中,为数组提供的新API:Array.prototype.keys();Array.prototype.values();Array.prototype.entries();集原创 2020-09-07 19:55:06 · 1761 阅读 · 0 评论 -
JS中如何将一个类数组对象转换为数组
在开发的过程中,我们常常会遇到这样一个需求,我们得到一个类数组对象,但我们想要遍历它,却不能使用数组的API来遍历,那么怎么办呢?这时我们需要将这个类数组对象转换为数组了。方法一使用数组的实例方法slice并且通过call调用方法二方法二和方法一类似,同样是使用slice方法,但不同的是通过es6的解构将数组中的slice方法拿到运行结果:方法三通过es6的数组新增的APIArray.from()一个类数组对象既然可以转换为数组,那么一个数组如何转换为一个类数组对象呢?方法一可以直原创 2020-09-02 00:08:54 · 4570 阅读 · 0 评论 -
javascript的原生ajax
ajax是浏览器提供的用于操作浏览器的sdk,可以让浏览器帮我们发送请求和后台交互。http协议请求报文:请求行 url method请求头Content-Type:application/x-www-form-urlencoded请求体如果请求方式是get,请求体没有数据响应报文:响应行 200 OK响应头 Content-Type :“application/json”响应体 “{“status”:“200”,“message”:“登录成功”,data:{}}”原创 2020-08-25 22:42:31 · 663 阅读 · 0 评论 -
js中调用一个方法,如何获取这个方法的运行结果?
1)通过返回值同步 function add(a,b){ result a+b; } var result = add(1,2);//1+2=3 console.log(result);//3 2)通过回调函数 异步 function add(a,b){ setTimeout(function(){ let result = a+b;原创 2020-08-16 21:43:08 · 619 阅读 · 0 评论 -
javascript中对象,函数,数组的内存图以及原型链
对象Object()构造函数创建的实例,不指向Object(),而通过__proto__指向原型对象,所以可以调用原型中的方法和属性,而不可以调用构造函数中的方法和属性。构造函数的prototype指向原型的地址原型中constructor指向构造函数的地址实例中__proto__指向原型的地址构造函数中也有方法,这些方法就是提供一些工具。【静态方法,类方法】Object.assign({},obj)将obj属性拷贝到第一个参数对象中,并且返回Object.keys(obj)获取obj对原创 2020-08-16 13:36:09 · 503 阅读 · 0 评论 -
javascript中==和===的区别
在js中==和===都是用来判断是否相等的区别:基本的数据类型:==直接比较值,如果数据类型不同,先转换为相同的数据类型再进行比较。===先比较数据类型,如果数据类型不同,则直接返回false,否则,比较值。引用数据类型:都是比较引用数据类型的地址...原创 2020-08-15 22:37:49 · 117 阅读 · 0 评论 -
javascript中的基本数据类型和引用数据类型在内存中的表现
栈区,后进先出,弹夹样式,用于保存变量,如果变量是基本数据类型,基本数据类型的值保存在栈区;如果变量是引用数据类型,引用地址(指针)保存在栈区,而真正的值保存在堆区,指针指向堆区中的内存地址。...原创 2020-08-15 22:25:23 · 108 阅读 · 0 评论 -
JS中如何监听一个对象的属性的变化
var obj = { name:"terry", _age:12 //加_默认为私有属性,没有实际作用 } //为_age设置一个代理age,改变_age提供age即可 Object.defineProperty(obj,"age",{ configurable:true,//属性可配置 set:function(v){ console.log("age发生了改变") this._age=v; }, get:function(){ r原创 2020-08-14 22:40:48 · 3587 阅读 · 2 评论 -
js中遍历为什么__proto__中的属性不能遍历出来
我们使用Object构造函数创造一个对象,它会继承Object.prototype的属性,但我们遍历整个对象的时候并不会输出继承的属性。 var obj = new Object(); obj.name = "terry"; obj.age = 12; for(var k in obj){ console.log(k,obj[k]); } console.log(obj) conso原创 2020-08-12 19:12:46 · 997 阅读 · 0 评论