javaScript
文章平均质量分 93
javaScript相关内容
问白
网易高级前端开发工程师
展开
-
HTML5 WebSocket介绍与基本使用(解析服务端返回的二进制数据)
WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。原创 2023-07-11 19:41:13 · 2133 阅读 · 2 评论 -
异步的终极方案Async-Await 和Generator
之前解决异步我们一直使用Promise的方案,虽然解决了回调地狱的情况,但使用链式写法也并不特别优雅。比如看下面的代码。所以就出现了一种号称异步的终极方案AsyncAwait。我们看他的定义async 函数是使用async关键字声明的函数。async 函数是 AsyncFunction 构造函数的实例,并且其中允许使用await 关键字。async 和 await 关键字让我们可以用一种更简洁的方式写出基于 Promise 的异步行为,而无需刻意地链式调用promise。原创 2023-07-03 19:38:23 · 353 阅读 · 0 评论 -
深入了解Promise机制并使用JS实现一个Promise(二)
Promise 实例的 catch() 方法用于注册一个在 promise 被拒绝时调用的函数。它会立即返回一个等效的 Promise 对象,这可以允许你链式调用其他 promise 的方法。此方法是 Promise.prototype.then(undefined, onRejected) 的一种简写形式。我们看下原生promise.catch的效果finally() 方法返回一个 Promise。原创 2023-07-02 23:48:08 · 192 阅读 · 0 评论 -
深入了解Promise机制并使用JS实现一个Promise(一)
关于为什么会有Promise以及Promise的一些用法和基本机制可以参考之前的文章JS中的异步与Promise使用整体来说,Promise可以帮助我们很好的解决异步的问题,号称是异步的终极解决方案。在浏览器中Promise是使用C++实现的,今天就使用js来实现一个JS版本的Promise。这样可以更深层次的帮助我们理解Promise每一个Promise对象都有三种状态: pending 、resolve 和 rejectPENDING : 进行中,Promise 对象的初始状态。原创 2023-07-01 23:50:09 · 518 阅读 · 0 评论 -
JS中的异步与Promise使用
Promise是JavaScript异步编程的一种流行解决方案(号称是终极解决方案),掌握Promise的使用是js开发者不可或缺的一项基本技能。但是要想熟练掌握并深入的理解它,还是必须要知道它的实现原理的。在浏览器中Promise的实现是通过C++实现的,我们这里就使用js来实现一个js版本的Promise。原创 2023-07-01 14:30:43 · 467 阅读 · 0 评论 -
函数式编程相关概念介绍
函数式编程(Functional Programming)也称函数程序设计是一种编程范式,它将电脑运算视为函数运算,并且避免使用程序状态以及可变物件在js中,函数是一等公民,函数本身既可以作为其他函数的入参,也可以作为一个函数的返回值。而函数式编程强调函数执行的结果而非过程。倡导利用若干简单的执行单元让计算结果不断渐进,逐层推导复杂的运算结果,而不是设计一个复杂的执行过程。原创 2023-06-26 20:17:22 · 344 阅读 · 0 评论 -
常用设计模式(三)
接着之前的思路今天来介绍一下常用的设计模式有哪些。原创 2023-06-12 20:33:54 · 545 阅读 · 0 评论 -
常用设计模式(二)
接着上一篇来聊一下设计模式的分类以及在GoF中提出的共有23种设计模式。原创 2023-06-12 18:45:00 · 277 阅读 · 0 评论 -
常用设计模式(一)
常用的设计模式-设计原则原创 2023-06-11 18:36:40 · 1020 阅读 · 0 评论 -
浅谈浏览器加载、解析、渲染的机制
今天上午写display:none、opacity:0、visibility:hidden的时候拓展了一些关于浏览器加载,解析页面的东西,所以晚上写一篇关于浏览器是如何加载,解析,渲染的过程。其实以前也在各种论坛上看过很多大神写的关于浏览器的加载,解析,渲染的这一系列文章,但是说实话,诶呀,根本就没法统一嘛,真的是看的脑袋瓜子都大了,每个人说的都不一样...说实话给我造成了蛮大的困惑的,直到后来是...原创 2018-03-04 22:18:42 · 4203 阅读 · 0 评论 -
趣谈一下javascript中的“闭包”
“闭包”这是js语言中最强大且最有特色的技术点之一了。我敢肯定但凡写过js的前端开发人员都听说过“闭包”这个词,毕竟它的名声在外,如果你都没听过“闭包”的话,都不敢称自己是一名JS的开发人员了,但却不是每个人都能很清楚的理解并能熟练自如的运用这一强大的技能,今天就来谈一谈我对“闭包”的理解。我们都知道在javascript中变量的查找是遵循词法作用域(下文会详细说明这个概念)规则的。当然我们这...原创 2018-02-28 22:35:07 · 3129 阅读 · 2 评论 -
Range对象介绍
在web中有个不常用,但挺强大的一个对象Range。他表示一个包含节点与文本节点的一部分的文档片段。1、创建Range实例有三种办法可以得到一个Range, 一旦一个 Range 对象被建立,在使用他的大多数方法之前需要去设置他的临界点通过 Range() 构造函数来得到Range, 新创建的对象属于全局 Document 对象通过 Document.createRange 方法创建 Range通过 Selection 对象来获取range下面我们来一一介绍,介绍例子时候,使用一份html文原创 2021-03-20 17:59:46 · 5733 阅读 · 0 评论 -
javascript中“this”机制的小结
this是我们在日常写js代码中所经常用到的,用起来确实方便很多,有的刚刚接触到js开发这一块的朋友,可能还不清楚this指向的问题,所以周末闲来无事,就this指向问题做个小结。在理解this之前,首先需要理解函数调用位置,调用位置就是函数在代码中被调用的位置,而非你申明函数的位置,每个函数的this是在调用的时候被绑定的(ES6中箭头函数除外,下文会详细说明),完全取决于函数的调用位置(也...原创 2018-03-03 17:01:59 · 3307 阅读 · 0 评论 -
JavaScript单线程的运行机制
每一种语言都有自己的运行机制,javascript当然也不例外,了解了js的运行机制,对于想要深入学习js的我们来说有着莫大的帮助。好了话不多说,下面开始讲述一js的整个运行机制,但是在此之前你先要了解几个概念。下面一一列举,并配合实例来帮助大家理解记忆。一、js是一门单线程的语言那什么是单线程呢。? 单线程通俗的来说就是同一时间只能做一件事情,不能同时做几件事情,与传统的后台编程...原创 2018-02-26 15:30:57 · 5949 阅读 · 0 评论 -
好用不难的粘性布局 position:sticky
背景最近项目中遇到一个需求大体是在一个复杂表格中实现滚动的时候,第一行是置顶固定不动,其余行正常滚动,有点类似于表格左右滚动的时候设置了固定列的效果一样。但是在现在的ui库中不管是antd, ele ui还是material-ui中都没有设置固定行的效果,最多是可以设置固定列。后来在github上了解到 antd 不做这种效果的原因是这样会多出很多复杂的计算,担心会影响页面性能,后来就用posi...原创 2019-11-07 16:05:48 · 7570 阅读 · 4 评论 -
常用清除浮动的几个方法
浮动是我们在平时布局时经常用到的一种方式,不过也因此而带来一些问题,比如浮动会造成浮动元素的父元素高度“坍塌”的问题,那么这篇文章就来介绍几种常用的解决由浮动带来的一些问题。浮动造成的父元素高度“坍塌”<style> .container{ background: #2aabd2; } .fl{ ...原创 2018-02-25 23:04:48 · 3175 阅读 · 0 评论 -
关于Cookie、localStroage和sessionStorage的小结
今天和大家聊一聊有关Cookie、localStroage、sessionStorage在日常开发中会经常用到的,所以和大家简单分享一下。一、CookieCookie: HTTPCookie一般直接称之为cookie,最初是用来存储会话信息的,由HTTP服务器设置,然后保存在浏览器中,目前已近成为了一种标准。由于HTTP协议是一种无状态协议,在前端请求服务器对任何HTTP请求都需要携带co...原创 2018-02-27 22:40:56 · 4797 阅读 · 1 评论 -
常用布局之IFC布局
前面两篇分别介绍了BFC以及FFC布局,因为BFC和FFC布局经常用到,而且东西比较多,所以每一个都分别写了一篇文章并且详细的介绍了他们的功能。这里就介绍一些其他布局方式IFC还有GFC布局以及一些布局的总结。bfc传送门:http://blog.csdn.net/weixin_38080573/article/details/79360324ffc传送门:http://blog.csdn.net...原创 2018-02-24 20:34:37 · 4599 阅读 · 1 评论 -
常用布局之FFC布局
页面布局应该是前端的小伙伴们入坑做页面的时候遇到的第一个问题了吧, 一般页面布局是结合者display属性,float属性和position属性,这三个属性就想是我们手中可用的武器一样,不同的运用就可以达到不同的布局效果了 下面就总结下常用的页面布局所用的手段。页面布局之FFC布局(弹性布局) 弹性布局(FFC-Flex Formattig-Contexts 自适应格式化上下文)申明 di...原创 2018-02-23 23:19:52 · 3654 阅读 · 0 评论 -
关于opacity:0、visibility:hidden、display:none三个属性的比较以及拓展
今天上午看某头条的时候有个刚入门的前端小伙伴提问道opacity:0、visibility:hidden、display:none。这三个属性的区别,这三个属性在我们日常开发中也算是用到频率也是蛮多的,所以干脆就就把这三个属性放在一起,配合实例做一个比较。首先这三个属性依次设置为0/hidden/none都可以使得用户看不见页面上的元素,不过他们之间还是有区别的,不然若是一样的话,也就没必要用三个...原创 2018-03-04 13:50:31 · 8357 阅读 · 0 评论 -
变量声明系列之ES5(变量提升)
变量声明恐怕是我们日常开发中最最经常遇到的了,那今天我们就来总结下现在js一共有哪几种变量声明的方式以及各个声明方式的特点。这个变量声明系列分两篇文章,一篇写ES5(var,function)的变量声明方式及其特点,下一篇写ES6的变量声明方式(let,const,class,import)及其特点。ES5变量声明方式有var, function。通过这两种方式声明的变量特点就是具有“变量提升”的...原创 2018-02-25 23:08:33 · 5028 阅读 · 0 评论 -
jQuery源码分析之 $.isEmptyObject和$.isPlainObject的区别以及自己的一些看法
最近一段时间一直在努力的去看jQuery的源码,这是一个非常富有挑战的过程,在这个过程中也收获颇多,就想把自己在看jQuery源码的时候遇到的一些困惑和读出的一些心得体会总结出来弄成一个jQuery源码分析系列分享给大家,希望对大家也能有所帮助。对自己而言也是一份读完之后的总结,归纳。jquery“类”和jquery实例的扩展在看jquery源码的时候,我们必须先要知道,jquery中有很多方法是...原创 2018-03-05 17:42:23 · 4340 阅读 · 0 评论 -
常用布局之BFC布局
上一篇文章写了常用并且很强大的弹性布局,这次来说下另一种布局方式BFC布局BFC(Block Formatting Contexts -- 块格式化布局)布局是需要其他属性值设置为某些特定的值方可触发BFC布局,也就是说这个bfc不像弹性布局一样,只要申明display:flex就可以申明一个flex的容器,bfc有一些特定的属性值,申明之后自动回触发bfc,能触发bfc布局的属性如下:float...原创 2018-02-24 14:23:01 · 4827 阅读 · 0 评论