mobx源码初读笔记

mobx 3.1.9 autorun autorun observable globalstate reaction 实现: 123456789var bankUser = mobx.observable({ name: '张三', income: 3, debit: 2});mobx.autorun(() => { console.log('张三的账户存款:', bankUser.income);}); 可观察watcher调用 mobx.observable() 方法,创建了 observable 对象, 对象的所有属性都拷...

阅读全文

keydown长按时短暂卡顿问题

keydown 属于键盘事件(Keyboard Events),当键盘按下某个按键时触发,且默认情况下,长按某按键会重复触发。但事件会判断用户是否长按还是连续按下,因此会有一定延迟(有点类似移动端适配时onclick事件会有300ms延迟)。一般情况下该延迟很难察觉,但在开发JS游戏时,发现该延迟会严重降低游戏体验,给玩家一种十分卡顿的感觉。此时就很有必要解决该问题。 不废话,先看代码逻辑: Game 类 1234567891011121314151617181920function Game () { this.bindEvent(); this.start(); t...

阅读全文

从new操作符看原型与原型链

ECMA-262中,把对象定义为:”无序属性的集合,其属性可以为基本类型值、对象或者函数。”而一般我们要创建对象(更准确一点叫做创建对象实例)时,会使用 new 操作符。最简单的如 new Object() ,然后我们把创建对象实例的那个东西(也就是 new 操作符后面跟着的那个东西,一般都是一个函数)叫做构造函数(有人也叫做构造器)。再然后我们会把 new Object() 的返回值赋值给一个变量如 obj ,写成 var obj=new Object(); ,而后我们就会对obj进行各种操作,但其中到底发生了什么? 当 new Foo(...) 被执行 引用 MDN 上关于当 ne...

阅读全文

【翻译】MDN:transform-function

原文地址: MDN : transform-function transform-function用于对元素的显示做变换。通常,这种变换可以由矩阵表示,并且可以使用每个点上的矩阵乘法来确定所得到的图像。 以下为3D图像关于各种转换函数的定义。 perspective() perspective() 这个CSS函数定义了 z=0平面与用户之间的距离,以便给三维定位元素一定透视度。当每个3D元素的z>0时会显得比较大,而在z<0时会显得比较小。其影响的程度由这个属性的值来决定。 语法1perspective(l) 参数 l 该参数是一个 length, 给定从用户(显示屏)到z...

阅读全文

从onmouseover和onmouseenter说起

初学JS时,onmouseover 和 onmouseenter 触发几乎一样,但在使用 onmouseover 和 onmouseout 时,发现如果在父级元素上定义事件,鼠标移动到其子元素上也会触发该事件,如下图所示,我在父div上设置mouseover,希望实现鼠标移入div时,其子元素p能显示,然后鼠标移走时,p再消失,类似某宝商品简介效果: 可以发现当鼠标从div盒子下方移入时,子盒子p会出现鬼畜现象。。。而使用 onmouseenter 和 mouseleave 时不会出现此种现象。 另外,还有如下神奇的事件: 三个div盒子的层级关系为 红div (box1)>...

阅读全文

关于JS中变量、函数声明提升优先级问题的实验

在复习JS-函数时遇到函数声明提升,回想起之前的变量声明的提升,加上JS无重载一说,若出现同名函数,则后者会覆盖前者。想搞清楚既然变量、函数都能提升,那他们之间的优先级是什么,遂做个小实验验证一下。 其实我是被自己写的一题给绕晕了 123456789101112console.log(a); var a = 100;var a = function() { console.log("a");}console.log(a);function a() { console.log("aa");}console.log(a); 结论 变量声明、函数声明...

阅读全文

Hexo同步源文件至GitHub

以前用Hexo最大的痛点就是想在其他电脑上写文章然后更新站点很麻烦,或者换系统后发现忘记备份源文件,然后以前写的东西又得通过各种方法找回再重新部署。没办法,静态站点就是这样。 此时程序员思维就出现了,能不能在我每次写完新文章后自动备份源文件,或者我在hexo d的时候一起把我的.md文件也deploy上去。 当然,方法各种,这里我直接使用 hexo-deployer-git 这个小插件的功能,相对简单些。 安装方法直接一句话搞定: 1npm install hexo-deployer-git --save 当然,作者说如果想使用最新版,可用下面的命令: 对于npm版本低于4的用户 ...

阅读全文

JS笔试基础知识点

听公开课讲得一些JS笔试中容易出现的知识点。 与其说是知识点,不如说是—“那些年走过的JS大坑” 一般关于JS的笔试会走两极端—-要么很基础的知识点,要么考察最新JS框架(或结合公司已使用技术) 字面量相关定义:计算机能识别类型的数据。 特殊字面量顾名思义,计算机识别不了的—NaN,指的不是一个正常的数。 常见考察点 正数/0=正无穷Infinity 0/0=NaN parseInt(“string”); 将字符串转为整数的数字类型,条件:纯数字字符串或数字开头字符串,其他为NaN 数据类型参与数值运算: ”数据类型—数字、字符串、undefined、布尔、null”; ”数学运算— ...

阅读全文

RHEL7.0日志分析记录

背景最近一个客户服务老挂,检查服务器,无法ping通且登录界面黑屏,只能强行重启,尝试检查日志发现默认日志为重启删除,坑。 服务器信息 Red Hat Enterprise Linux Server release 7.0 (Maipo) 日志相关回顾一般位置:/var/log 常见日志: /var/log/boot.log 顾名思义,系统启动日志,仅保留本次开机 /var/log/cron 所有crontab计划任务日志 /var/log/lastlog 记录系统所有账号最后登录信息 /var/log/maillog & /var/log/mail/* 往来邮...

阅读全文

NBU catalog报错处理办法

现象描述 环境说明: NBU 7.7.3 Master Server Windows Server 2008R2 x64操作系统 NBU Master Server备份catalog一直报错,错误代码2 status详细信息如下: 123456789102017-12-8 8:40:23 - Info bpdbm (pid=12608) staging relational database files for catalog backup2017-12-8 8:40:23 - Info bpdbm (pid=12608) staging NBAZDB backup to C:\...

阅读全文

© 2019 lvbin's Blog All Rights Reserved.
Theme by hiero