摘要: mac上默认的python版本为2.7.10版本,需要升级到python3 版本,通过brew升级 $brew install python3 提示错误 $ brew install python3 Warning: python3 3.6.3 is already installed, it's 阅读全文
posted @ 2018-06-05 18:30 douglasvegas 阅读(3757) 评论(0) 推荐(0) 编辑
摘要: Why Fetch XMLHttpRequest是一个设计粗糙的API,不符合关注分离(Separation of Concerns)的原则,配置和调用方式非常混乱,而且基于事件的异步模型写起来也没有现代的Promise,generator/yield,async/await友好。 Fetch的出现 阅读全文
posted @ 2017-08-15 16:05 douglasvegas 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 边框变粗的原因 css中的1px并不等于移动设备的1px,不同手机有不同的像素密度。window对象中有一个devicePixelRatio属性,即css中的像素 / 设备的像素比 之前的解决方案 1. 0.5px 通过javascript检测浏览器能否处理0.5px的边框,如果可以则给html元素 阅读全文
posted @ 2017-08-15 15:00 douglasvegas 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 为什么是单线程? 单线程即是同一时间只能做一件事,为什么JavaScript不能有多个线程? JavaScript的主要作用是与用户互动,及操作dom。这决定了它只能是单线程,否则会带来很复杂的问题。 假设两个线程,一个线程在某个DOM节点上添加内容,另一个线程删除这个节点,这时浏览器应该以谁为准? 阅读全文
posted @ 2017-08-15 15:00 douglasvegas 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 先上代码 控制台打印可以看到答案是0,因为typeof先进行计算。如果改成下面这样: 答案则是 number typeof运算符本身只会返回字符串, typeof来判断数据类型会有几个坑: 1. null返回的是object,但是不能当对象使用 2. 对NaN返回的是number,但是不能进行算术运 阅读全文
posted @ 2017-08-15 14:59 douglasvegas 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 代码示例 构造函数 用来初始化新创建的对象的函数是构造函数。上例中Foo()就是构造函数 实例对象 通过构造函数的new操作符创建的对象是实例对象。一个构造函数可以构造多个实例对象 原型对象及prototype 构造函数有一个prototype属性,指向实例对象的原型对象。构造函数实例化的多个对象具 阅读全文
posted @ 2017-08-08 11:18 douglasvegas 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 在解释BFC之前,先说一下文档流。常说的文档流分为定位流、浮动流和普通流三种。而普通流其实就是BFC中的FC (formatting context) 直译过来就是格式化上下文。它是页面中的一块渲染区域,有一套渲染规则,决定了其子元素如何布局,以及和其他元素之间的关系和作用。 常见的FC有BFC和I 阅读全文
posted @ 2017-08-07 15:42 douglasvegas 阅读(101) 评论(0) 推荐(0) 编辑
摘要: CSS过渡(transition)是通过定义元素从起点的状态到终点的状态,在一定的时间区间内实现元素平滑过渡或变化的一种补间动画机制。 transition的四个子属性: transition property transition duration transition timing functi 阅读全文
posted @ 2017-08-07 15:32 douglasvegas 阅读(332) 评论(0) 推荐(0) 编辑
摘要: react组件生命周期无外乎存在两种情况: 1. 初次挂载组件 2. 已挂载待更新组件 初次挂载组件: 1. 创建时调用一次 2. 组件挂载前调用一次。如果此时setState,本次的render函数可以看到更新后的state,并且只渲染一次 3. 在组件挂载(render)之后调用一次。此时可以使 阅读全文
posted @ 2017-08-07 10:30 douglasvegas 阅读(152) 评论(0) 推荐(0) 编辑
摘要: ``` onkeyup="this.value=this.value.replace(/\D|^0/g,'')" onafterpaste="this.value=this.value.replace(/\D|^0/g,'')" ``` 阅读全文
posted @ 2017-08-04 10:47 douglasvegas 阅读(9532) 评论(0) 推荐(0) 编辑