2020年3月22日

web离线应用前提之离线检测

摘要: 离线web应用就是,设备不能上网情况下仍可以运行的应用。 开发离线应用需要几个步骤,首先确保知道设备能否上网,以便下一步执行正确的操作。然后应用还能访问一定的资源(图像,css,js),之后这样才能正常工作,最后必须有一块本地空间用于保存数据,无论能否上网都不影响读写。 离线检测:navigator 阅读全文

posted @ 2020-03-22 13:18 前端架构师 阅读(387) 评论(0) 推荐(0) 编辑

es6手写一个call

摘要: Function.prototype.selfCall = function(ctx, ...args) { if(typeof this !== 'function') { throw new Error('you must use call with function') } ctx = ctx 阅读全文

posted @ 2020-03-22 13:16 前端架构师 阅读(297) 评论(0) 推荐(0) 编辑

同学给我来个手写的new吧

摘要: 1.手写一个new 首先看看new怎么用 function Person(name){ this.name = name } Person.prototype.eat = function() { console.log("Eating") } var qd = new Person('qd') c 阅读全文

posted @ 2020-03-22 13:15 前端架构师 阅读(393) 评论(0) 推荐(0) 编辑

this综合篇

摘要: var name = 'window' var person1 = { name: 'person1', foo1: function () { console.log(this.name) }, foo2: () => console.log(this.name), foo3: function 阅读全文

posted @ 2020-03-22 13:14 前端架构师 阅读(108) 评论(0) 推荐(0) 编辑

this绑定番外篇之箭头函数绑定

摘要: 我们在前几章说this永远指向最后调用它的那个对象。 但对于箭头函数来说不是的,它里面的this是由外层作用域来决定的,且指向函数定义时的this而非执行时。 它里面的this是由外层作用域来决定的怎么理解呢?首先箭头函数中没有 this 绑定,必须通过查找作用域链来决定其值,如果箭头函数被非箭头函 阅读全文

posted @ 2020-03-22 13:12 前端架构师 阅读(264) 评论(0) 推荐(0) 编辑

vue中引入公用过滤器?

摘要: 比如我们封装一个金钱的过滤器: 不废话,直接上代码 在main.js平级新建filter文件夹,里面新建index.js和money.js index.js import { moneyP } from './money' export default moneyP; 注意这里不要用module.e 阅读全文

posted @ 2020-03-22 13:11 前端架构师 阅读(1115) 评论(0) 推荐(0) 编辑

this详解下

摘要: 3.显示绑定: (使用某些方法,改变函数内部的this的指向。) 通过call(),apply()或bind方法直接指定this绑定的对象,如foo.call(obj). 注意: 使用.call()或者.apply执行的函数是会直接执行的。 bind()是创建一个新的函数。需要手动调用才会执行。 . 阅读全文

posted @ 2020-03-22 13:09 前端架构师 阅读(136) 评论(0) 推荐(0) 编辑

012天this详解上

摘要: 我们知道,this对象在运行时基于函数的执行环境绑定的:在全局函数中,this等于window,而当this某个对象的方法调用时,this等于那个对象。 1. this的绑定形式 1.默认绑定 2.隐式绑定 3.显示绑定 4.英绑定 5.new绑定 2.五种绑定的优先级 默认绑定 < 隐式绑定 < 阅读全文

posted @ 2020-03-22 13:08 前端架构师 阅读(165) 评论(0) 推荐(0) 编辑

011天之跨域资源共享CORS

摘要: 通过XHR实现Ajax通信的一个主要限制,来源于跨域安全策略,默认情况下XHR对象只能访问与包含它的页面位于同一个域中的资源。这种安全策略可以预防某些恶意行为。但是,实现合理的跨域请求对于开发某些浏览器的应用也是非常important的。 CORS(Cross-Origin Resource Sha 阅读全文

posted @ 2020-03-22 13:07 前端架构师 阅读(118) 评论(0) 推荐(0) 编辑

010天JSON.stringify()详解

摘要: JSON.stringify()除了要序列化的js对象外,还可以接受另外两个参数,这两个参数用于指定以不同的方式序列化js对象。第一个参数是个过滤器,可以是一个数组,也可以是一个函数;第二个参数是一个选项,表示是否在JSON字符串中保留缩紧。单独或组合使用这两个参数,可以更全面深入地控制JSON的序 阅读全文

posted @ 2020-03-22 13:06 前端架构师 阅读(285) 评论(0) 推荐(0) 编辑

009天之跨浏览器的事件处理程序

摘要: 为了以️跨浏览器方式处理事件,我们可以使用一些可以隔离浏览器差异的js库。由于业务需求,有时候我们需要写一些我们自己封装一些兼容代码。 比如创建一个addHandler(),它的职责是视情况分别使用DOM0级方法,DOM2级方法或IE方法来添加事件。然后addHandler()方法接受三个参数:要操 阅读全文

posted @ 2020-03-22 13:05 前端架构师 阅读(171) 评论(0) 推荐(0) 编辑

使用XHR上传文件要不要了解一下?

摘要: 上传文件 我们通过File API 能够访问到文件内容,然后把文件内容放到send()方法中,再通过POST请求,的确很容易就能实现上传。但这样做传递的是文件内容,因而服务器还得收集提交的内容,然后保存到另外一个文件中。其实,更好的做法是以表单提交方式来上传文件。 表单方式上传?没错!formDat 阅读全文

posted @ 2020-03-22 13:04 前端架构师 阅读(1085) 评论(0) 推荐(0) 编辑

简单化最小化语句数

摘要: js的语句数量也影响所执行的操作速度。完成多个操作的单个语句要比完成单个操作的多个语句要快。简写这方方面面的我可以给你几条建议。 1.多个变量声明 var count = 5; var color = 'blue'; var now = new Date(); 可以简写为 var count = 5 阅读全文

posted @ 2020-03-22 13:03 前端架构师 阅读(133) 评论(0) 推荐(0) 编辑

高级函数之作用域安全的构造函数

摘要: 构造函数都知道。就是一个使用new操作符调用的函数。当使用new 调用时,构造函数内用到的this对象会指向新创建的对象实例。 function Person(name,age,job) { this.name = name; this.age = age; this.job = job; } le 阅读全文

posted @ 2020-03-22 13:01 前端架构师 阅读(126) 评论(0) 推荐(0) 编辑

学会使用高级函数的安全类型检测

摘要: js内置的类型检测机制并非完全可靠,比如typeof操作符,safari直到第四版在对正则表达式应用typeof操作符时会返回function,因此很难确定某个值到底是不是函数。 再比如instanceof操作符在在存在多个全局作用域(像一个页面包含多个frame)也是问题多多。比如 let isA 阅读全文

posted @ 2020-03-22 13:00 前端架构师 阅读(132) 评论(0) 推荐(0) 编辑

咦?浏览器又崩了?再试试这个呢!

摘要: 由于连续进行过多的dom操作,有时候会导致浏览器运行崩溃,尤其是在ie中使用onrise事件处理的程序中有dom操作,高频的修改可能会导致浏览器崩溃,为了绕开这个问题,可以用定时器对函数进行节流。 当别人问你,同学说一下函数节流吧? 你可以告诉他,某些代码不可以在没有间断的情况连续重复执行。第一次调 阅读全文

posted @ 2020-03-22 12:58 前端架构师 阅读(191) 评论(0) 推荐(0) 编辑

页面太卡了?试试这方法呢!

摘要: 你写的代码导致浏览器运行奔溃,或页面卡住了,卡死了,怎么办? 你可以试试定时器的一个方法,叫做数组分块。 脚本长时间运行的问题通常由两个原因造成的: 1.过长或过深的函数调用 2.进行大量处理的循环。 长时间循环通常遵循下面模式 for(let i = 0,len = data.length; i 阅读全文

posted @ 2020-03-22 12:53 前端架构师 阅读(419) 评论(0) 推荐(0) 编辑

导航

  • !