11 2018 档案
摘要:new操作符具体干了什么呢?其实很简单,就干了三件事情。 第一行,我们创建了一个空对象obj第二行,我们将这个空对象的__proto__成员指向了Base函数对象prototype成员对象第三行,我们将Base函数对象的this指针替换成obj,然后再调用Base函数,于是我们就给obj对象赋值了一
阅读全文
摘要:前言 前一阵子记录了promise的一些常规用法,这篇文章再深入一个层次,来分析分析promise的这种规则机制是如何实现的。ps:本文适合已经对promise的用法有所了解的人阅读,如果对其用法还不是太了解,可以移步我的上一篇博文。 本文的promise源码是按照Promise/A+规范来编写的(
阅读全文
摘要:HTTP状态码,我都是现查现用。 我以前记得几个常用的状态码,比如200,302,304,404, 503。 一般来说我也只需要了解这些常用的状态码就可以了。 如果是做AJAX,REST,网络爬虫,机器人等程序。还是需要了解其他状态码。 本文我花了三个多月的时间把所有的状态码都总结了下,内容太多,看
阅读全文
摘要:前端是庞大的,包括 HTML、 CSS、 Javascript、Image 、Flash等等各种各样的资源。前端优化是复杂的,针对方方面面的资源都有不同的方式。那么,前端优化的目的是什么 ? 1. 从用户角度而言,优化能够让页面加载得更快、对用户的操作响应得更及时,能够给用户提供更为友好的体验。 2
阅读全文
摘要:第一种是通过两个for循环,每一次对比相邻两个数据的大小,小的排在前面,如果前面的数据比后面的大就交换这两个数的位置,这个方法就是比较次数太多了,效率比价低。 我只是传入了一个10位数的数组,如果是上万或者更大的数据,不知道您的电脑会不会蓝屏了,嘿嘿,你可以试试哦! 1 2 3 4 5 6 7 8
阅读全文
摘要:1. 定义对象方法 JS 中对象方法的定义方式是在对象上定义一个指向函数的属性,当方法被调用的时候,方法内的 this 就会指向方法所属的对象。 1.1 定义字面量方法 因为箭头函数的语法很简洁,可能不少同学会忍不住用它来定义字面量方法,比如下面的例子 JS Bin: const calculato
阅读全文
摘要:分为属性和方法的继承 组合继承:原型链继承+构造函数继承 使用原型链实现对原型属性和方法的继承,而通过借用构造函数来实现对实例属性的继承。这样,即通过在原型上定义方法实现了函数复用,又保证了每个实例都有它自己的属性。 1 2 3 4 5 6 7 function Parent(age){ this.
阅读全文
摘要:Array.from(new Set(arr)) [...new Set(arr)] var newarr=[]; abc.filter(a=>!newarr.includes(a)&&newarr.push(a)); abc.forEach(a=>!newarr.includes(a)&&newa
阅读全文
摘要:let deep=1; function array_depths(arr){ let maxDeep=1; arr.forEach(item=>{ if( typeof item == 'object'){ deep = array_depths(item) + 1; maxDeep=deep>m
阅读全文
摘要:我们在JS程序中需要进行频繁的变量赋值运算,对于字符串、布尔值等可直接使用赋值运算符 “=” 即可,但是对于数组、对象、对象数组的拷贝,我们需要理解更多的内容。 首先,我们需要了解JS的浅拷贝与深拷贝的区别。 我们先给出一个数组: 现在怎么创建一份arr数组的拷贝呢?直接执行赋值运算吗?我们来看看输
阅读全文
摘要:for(var i=0;i<5;i++){ setTimeout(function(){ console.log(`错误 ${i}`); },0) } for(var i=0;i<5;i++){ (function(i){ setTimeout(function(){ console.log(`闭包
阅读全文

浙公网安备 33010602011771号