js进阶
文章平均质量分 80
江醉鱼
神游全世界,苟活人世间
展开
-
mp3-id3v1和id3v2详解
区分id3v1和id3v2<script type="text/javascript" src="binaryajax.js"></script><script type="text/javascript" src="id3.js"></script><script type="text/javascript"> //id3v2文件 //var file = "Isobel Campbell - Are You Going to L原创 2020-10-20 18:31:41 · 2293 阅读 · 0 评论 -
service worker
ExtendableEvent.waitUntil() 方法告诉事件分发器该事件仍在进行。这个方法也可以用于检测进行的任务是否成功。在服务工作线程中,这个方法告诉浏览器事件一直进行,直至 promise 解决,浏览器不应该在事件中的异步操作完成之前终止服务工作线程。服务工作线程(service workers)中的 install 事件使用 waitUntil() 来将服务工作线程保持在 installing 阶段。如果传入 waitUntil() 的 promise 被拒绝,则将此次安装视为失败,丢弃这原创 2020-09-22 17:50:23 · 199 阅读 · 1 评论 -
‘The fetching process for the media resource was aborted by the user agent at the user‘s request.‘报错
music的audio.play的时候报错。如下原创 2020-09-01 16:07:59 · 3469 阅读 · 3 评论 -
JS经典案例
function Foo() { getName = function () { alert (1); }; return this;}Foo.getName = function () { alert (2);};Foo.prototype.getName = function () { alert (3);};var getName = function () { alert (4);};function getName() { alert (5);}//答案:Foo.g原创 2020-05-09 18:25:00 · 932 阅读 · 0 评论 -
请求拦截器和响应拦截器
请求拦截器请求拦截器的作用是在请求发送前进行一些操作,例如在每个请求体里加上token,统一做了处理如果以后要改也非常容易。关于拦截,这里只说原理,前端的请求,最终还是离不开 ajax,像vue 的 vue-resource 、axios,都只是对ajax进行了统一的封装,它暴露出来的拦截器,其实就是写了一个方法,把ajax写在这个方法里面,(我们先说请求拦截器哈)在执行这个方法的时候,先将请...原创 2019-11-21 21:36:46 · 17354 阅读 · 3 评论 -
Event lopp 事件循环机制(宏任务和微任务-promise和setTimeout的优先级)
首先先看看概念:①macro-task(宏任务):包括整体代码script,setTimeout,setInterval②micro-task(微任务):Promise,process.nextTick宏任务和微任务的执行流程:new Promise(function(resolve){ console.log(2) for( var i=0 ; i<10000 ;...原创 2019-10-10 00:35:11 · 463 阅读 · 0 评论 -
前端架构
前端架构围绕四个核心:代码、流程、测试、文档编码规范开发流程自动化测试文档输出架构师的职责:1 确认需求架构师要懂得用户需求,理解用户真正想要什么,这使得架构师必须要和分析人员不断沟通,反复确认需求规格说明书,以此来保证他精准清楚用户需求。2 系统分解一般分为纵向分解和横向分解,纵向分解是将整个系统分层,从而将整体系统分解成下一级的子系统与组件。横向分解是在系统分解成不同的逻...原创 2019-05-20 16:26:43 · 471 阅读 · 0 评论 -
前端设计模式
设计模式的定义设计模式是在面向对象软件设计过程中针对特定问题的简洁而优雅的解决方案。在不同的编程语言中,对设计模式的实现其实是可能会有区别的。比如java和javascript,在Java这种静态编译型语言中,无法动态地给已存在的对象添加职责,所以一般通过包装类的方式来实现装饰者模式。但在JavaScript这种动态解释型语言中,给对象动态添加职责是再简单不过的事情。这就造成了JavaScrip...转载 2019-05-16 00:31:34 · 211 阅读 · 0 评论 -
前端性能优化一网打尽
1、负载均衡(1)DNS服务器实现负载均衡。缺点:无法判断哪一个server是down机的,无法判断每个server的负载(2)硬件设备:负载均衡器(Load Balancer),作为独立的硬件置于客户端与服务器之间。价格昂贵(3)反向代理:Nginx服务器,反向代理是实现负载均衡的主流手段之一,当我们访问拥有反向代理的网站时,实际访问的是其反向代理服务器,而非真正的服务器,当请求到达反向代...原创 2019-05-13 00:34:21 · 170 阅读 · 0 评论 -
前端技术点
1 .标签:行内元素,块级元素,行内快元素以及区别2 .jQuery事件绑定的几种方式:on ,live,delegate,bind.3 .flex布局4 .js继承5 .bind , call及apply的用法和区别6 .angularjs的声明周期:启动阶段、初始化阶段、编译阶段、运行阶段。...原创 2019-02-11 23:27:52 · 1679 阅读 · 0 评论 -
Js 变量声明提升和函数声明提升(转载)
转载自:https://www.cnblogs.com/Gary-Guoweihan/p/6251870.htmlJs 变量声明提升和函数声明提升Js代码分为两个阶段:编译阶段和执行阶段Js代码的编译阶段会找到所有的声明,并用合适的作用域将它们关联起来,这是词法作用域的核心内容包括变量声明(var a)和函数声明(function a(){})在内的所有声明都会在代码被执行前的编译阶段首先...转载 2019-01-19 00:40:42 · 120 阅读 · 0 评论 -
JS闭包
js运行环境的销毁机制和引用变量不被销毁是理解闭包的关键大概这两篇博文就可以理解了转载:https://blog.csdn.net/dovlie/article/details/76339244https://www.cnblogs.com/malinlin/p/6028842.html...转载 2019-01-18 00:40:45 · 119 阅读 · 0 评论 -
this关键字
转载自:http://www.cnblogs.com/lisha-better/p/5684844.html本文主要解释在JS里面this关键字的指向问题(在浏览器环境下)。阅读此文章,还需要心平气和的阅读完,相信一定会有所收获,我也会不定期的发布,分享一些文章,共同学习首先,必须搞清楚在JS里面,函数的几种调用方式:普通函数调用作为方法来调用作为构造函数来调用使用apply/cal...转载 2019-01-18 00:18:56 · 215 阅读 · 1 评论 -
高阶函数
什么是高阶函数?面试的时候碰到的问题,一时蒙蔽了,回来一查资料,what’s the fack ???百度百科的解释:在数学和计算机科学中,高阶函数是至少满足下列一个条件的函数:①接受一个或多个函数作为输入;②输出一个函数第一个条件就是:函数作为参数传入另一个函数,那就是回调函数。例如:var arr = [1,2,3,4];arr.map(function(item,index,a...原创 2018-12-23 00:00:02 · 245 阅读 · 0 评论 -
JS判断Object与Aarry的六种方法
一、经常遇见的问题:JS中判断一个对象的类型时,通常使用typeof,这时候问题就来了,因为typeof()辨别数组的时候返回的是object,所以JS中判断一个对象是不是数组需要一些特殊的处理方式,下面将介绍个人总结的六种处理方法。二、开门见山开发中要判断一个对象是不是数组,推荐使用下面这个函数:function isArray(obj){if(Array.isArray){ret...原创 2018-11-18 23:02:07 · 1168 阅读 · 0 评论 -
JS文件内容读取FileReader
做了一个文件上传的功能,之前没用过FileReader,写下来就权当笔记了。代码如下:点击我就这样,很简单。原创 2019-01-01 22:48:30 · 465 阅读 · 0 评论 -
JS--浏览器直接打开pdf文档
最近做了一个blob数据类型的pdf文档直接在浏览器打开,有一些难度。首先需要给后台发送一个{responseType:‘blob’},让后台返回的数据类型为blob代码如下:var promise = model.postData(‘path’,params,{responseType:‘blob’});promise.then(function(resp){var blob = re...原创 2019-01-01 23:11:59 · 16939 阅读 · 0 评论 -
动态生成ul的li并添加addEventListener
<!DOCTYPE html><html><head><meta charset="utf-8"> <title>li</title> <style> ul{ list-style:none } li{ width:200px; height:30px; background: gr...原创 2020-01-05 13:45:36 · 766 阅读 · 0 评论 -
JavaScript中的可枚举属性与不可枚举属性
在JavaScript中,对象的属性分为可枚举和不可枚举之分,它们是由属性的enumerable值决定的。可枚举性决定了这个属性能否被for…in查找遍历到。一、怎么判断属性是否可枚举js中基本包装类型的原型属性是不可枚举的,如Object, Array, Number等,如果你写出这样的代码遍历其中的属性:var num = new Number();for(var pro in nu...原创 2020-04-29 10:53:31 · 126 阅读 · 0 评论 -
input的粘贴事件
直接操作DOM的话比较简单,还有一种特殊情况:shadow dom的粘贴事件就需要先真实dom: 使用定时器setTimeout()去获取就可以了input.addEventListener('paste', event => { event.preventDefault(); let pasteValue=(event.clipboardData || window.clipboardData).getData('text'); document.execCommand('in原创 2020-06-02 18:07:30 · 2971 阅读 · 0 评论 -
js和React Hooks的防抖和节流
概念防抖:多次连续调用执行一次节流:多次连续调用,在一段时间内只执行一次两者的目的都是减少触发的次数,保证性能和效率,区别在于业务场景和需求的不同。可以触发防抖和节流的事件有:onscroll、onmouseMove、onChange、onResize等。具体怎么实现的还是看代码比较容易理解<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title&原创 2020-06-09 15:21:20 · 1446 阅读 · 0 评论