随笔分类 - javascript
摘要:写在开头:当一个图片url被请求并加载之后(不一定得渲染出来),会放在缓存里,下次如果有一个相同的url被请求,会先在缓存里retrieve出该资源,实现节流。 complete: 综上,当出现以下几种状况,则complete=true 1.未设置src/ src=''/ 未设置srcset 2.s
阅读全文
摘要:转载地址:https://blog.csdn.net/vhwfr2u02q/article/details/79492303 核心概念: 1.CPU节能:在页面不刷新时不执行回调(页面在隐藏、最小化等状态下),相比于setTimeOut的后台刷新,更节约CPU性能 2.函数节流:保证在一个刷新区间,
阅读全文
摘要:查看了《云制造》官网源码,为其mega菜单的巧妙实现打call。 其另辟蹊径,采取父级主控分支的方法,仅对父级“增加/删除”控制标识,从而控制子层显示。 ——学无止境,保持好奇。May stars guide your way.
阅读全文
摘要:1.再次clear Timer定时器的作用 setTimeOut绝非是传统意义上的“sleep”功能,它做不到让主线程“熄火”指定时间,它是用来指定:某个回调在固定时间后插入执行栈!(实际执行时间略长于这个固定时间) 2.js或nodejs想"sleep"主线程怎么做? 可以自定义sleep休眠函数
阅读全文
摘要:对异常的捕获和处理是提高程序鲁棒性的一个重要方式,即使在javascript/nodejs等看似“很难写出bug”的弱类型语言里,异常捕获处理仍至关重要,这主要是因为: 1.在一个代码块里,如果程序运行过程中自动、或主动(new Error/Exception)生成异常/错误后,若不主动去try..
阅读全文
摘要:在学习ES6函数一章时,发现了一个有意思的现象,原文描述如下: 这段话主要state了3个事实: ①函数参数有默认值时,会在声明初始化阶段形成一个单独的作用域 ②这个作用域在初始化结束后消失 ③没默认值的情况下,没有①②的现象发生。 这就很有意思了,我们一般说函数作用域,一般就是和全局作用域、局部作
阅读全文
摘要:偶然看到一个网上一个题目: Q: 输出什么? 我觉得很简单啊: undefined; function x(){}; 然鹅,事情并不是这样的: 很显然,两次都打印出了x变量的真实指向→函数体,为什么呢? 为此,我又尝试了函数表达式,结果又是这样的: 这又是为什么呢?于是上网查阅了相关知识和编程指南,
阅读全文
摘要:因为es6在node中用的比较频繁,最近在按计划根据阮一峰的es6教程从头开始学习一遍, 第一步遇到的就是“看似非常熟悉”的let小伙伴,核心character如下: 即:let变量的作用域只在块内。在global全局的if/while等块级语句里面实践了一下,的确是OK的,比var全局挂好多了,直
阅读全文
摘要:话不多说,直接上图。 今日入手开始学习Nodejs,加油吧,小小前端的大V梦ヾ(◍°∇°◍)ノ゙
阅读全文
摘要:在学习vue相关课程中,有一次跟着老师敲代码,写出了如下代码: 将组件注册到app实例后,实例化3个子组件,在点击触发'click'的时候,打印效果如下: 点击一次执行3次可以理解,因为每个子组件都给prototype里的$bus总线push了自己的事件处理函数,但理论上来讲,每个组件实例化的过程中
阅读全文
摘要:在利用vue组件进行事件监听时发现,如果对N个vue组件实例的bus总线绑定同一事件的回调函数,触发任意组件的对应事件,回调函数至少会被执行N次,这是为什么呢? 为此,调研了普通对象的事件绑定和触发实现方式,参考:JavaScript实现自定义对象的自定义事件。 其基本思想就是:设计一个原型对象,作
阅读全文
摘要:在查阅对象自定义事件及其触发实现的过程中,发现了如下代码: 即:构造函数的原型可以是其他构造方法new出来的对象实例,虽然理解构造函数原型就是一个对象,但通常都是用对象直接量来指定,如:F.prototype ={},这种用法,引起了一些思考:如果原型对象和构造函数定义了完全相同的属性,那么原型方法
阅读全文
摘要:在web项目中,经常会使用jquery和mui等js框架,之前只是按照API说明去按规则使用,比如在jq和mui中,事件处理函数中可以直接用this访问事件源,如下面的代码: 在界面触发了点击事件后,打印this.id信息如下: 很显然,此处的this指向了事件源这个对象,或者说,事件处理函数的执行
阅读全文
摘要:在平时的编程过程中,用构造函数创建实例对象比较多,则实例对象instance会继承构造函数原型,如下面例子所示: 打印结果如下: 今天在阅读mui框架源码时,发现了如下原型设置方法,即可在对象诞生后根据自己的需求给其补充原型! 打印结果如下: 后面如有新方法将继续补充......
阅读全文
摘要:在处理类数组中,发现了两种将数组方法应用于类数组的方法,现将call/apply的常用方式总结一下。 一、当做函数调用 二、作为对象的方法,给第三方使用 此处,用一个[]数组实例,来引用它的every方法的call方法; 三、作为原型的方法,给第三方使用 此处,用Array的原型对象中的every方
阅读全文
摘要:在查看一些插件源码时,在做数据校验时,经常用到!!运算符,如: 乍看有点懵,其实按照js内置 "!" 运算符从右到左按次序剖析,也就理解了。 先看内层运算: !obj ,这是一个非运算: 当obj为假时(null/undefined/false/NaN/""等),非运算后的结果未false; 当ob
阅读全文
摘要:很多js的框架与插件编写都用到了闭包,所以,阅读和掌握闭包很有必要。最近学习vue框架时,经常会猜想很多功能的native js实现,很多都应用到了闭包,闭包除了目前已知的一些特性,如:可以保持局部变量以减少对全局作用域的污染外,一些情况下必须用闭包才能实现。 先贴一个根据自己的理解绘制的闭包原理:
阅读全文
摘要:Vue的全局组件,在注册后,可在全局范围内无限次使用,猜想是利用了闭包"可以保持形参"的特性,使初始化时的作用域得意保存,下面用原生js和部分jquery代码模拟了数据解析和组件渲染的技术设计思想,简化期间忽略了应用scope,组件实例直接追加在body里了,具体过程如下: 1.设计并扩展Array
阅读全文
摘要:call/apply是函数原型定义的方法(Function.prorotype),在使用时要注意第一个形参(args[0]),一定是指向函数所要挂载的上下文对象--context,若对象非必须,则要将第一个参数置为null或undefined,不显示传入context,按照call/apply的实现
阅读全文
摘要:扩展Function原型方法,此处用myBind来模拟bind实现 Function.prototype.myBind = function(o /*,args*/){ //闭包无法获取this关键字,故用self进行保存 var self = this; var boundArgs = argum
阅读全文

浙公网安备 33010602011771号