动态REM方案

媒体查询

​ 在做移动端的页面开发时,为了满足主流手机在不同像素下页面的完美显示,通常会做成响应式页面,通过媒体查询@media,在不同的手机宽度下显示不同的代码,显然这样做是非常麻烦的,得设计好几套代码。
​ 例如,当手机屏幕宽度由320像素变为420像素时,用媒体查询一直保持内容居中。

Flexible.js

​ 在GitHub上,flexible.js是一个开源方案,用于移动端的自适应,这里我们将讨论该方案的实现原理,也就是动态REM方案。

Read More

JS:基本类型有属性吗?

基本类型有没有属性?

答案是NO

那从上面图中,明显可看出s1的数据类型为‘string’,它就是基本类型啊,怎么还会有length属性呢?
为了解释这个问题,就得来看JS的设计者Brendan Eich他的设计思路了。

Read More

浏览器渲染顺序

解析和渲染

解析是指浏览器读取HTML里的每一行代码,渲染是浏览器将解析的代码放到页面上,供用户体验。

解析

以下面HTML代码来说:

1
2
3
4
5
6
7
8
9
10
11
12
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>浏览器渲染顺序</title>
<link rel="stylesheet" href="style.css">
<script src="main.js"></script>
</head>
<body>
<button id='button'>按钮</button>
</body>
</html>

Read More

计算机怎么把程序变成0 1

  1. 计算机先定好一些规则,比如每个语句都有两部分:操作符,内容。
  2. 操作符可能有赋值、声明、循环等,然后把把每个操作符编号,例0 赋值1 循环2 声明
  3. var a = 1,可能变成2 'a',0 'a' 1,其中’a’也会变成0 1。
  4. 所有万物皆0 1
  5. 代码变成0 1的前提就是有很多规则。

JS:内存图

内存

计算机中所有程序的运行都是在内存中进行的,这里的内存一般指的是PC中的内存条,我们知道内存条里只能存取二进制数0和1,那么1G的内存条里能存多少个0或1呢?
1G = 10243B = 10243*8位≈85.8亿位(一个字节有8位),也就是说1G的内存可以存85.8亿个0或1。

Read More

var与let的区别

var和let

两者都是指对变量声明,由于var的用法会造成很多bug,故ES6新增了let。

var

var表示声明函数作用域的变量,var会有变量提升,将变量提到作用域的前方。
以下面JS代码为例:

1
2
3
4
5
6
var a=1
function foo(){
alert(a)
var a =2
}
foo.call()

Read More

《这一代人的学习》笔记

如何自学前端

1. 焦虑感

在我们自学前端时,会有一种焦虑感,来自于选择的焦虑,我到底是学HTML4还是学HTML5、是学CSS2还是学CSS3、是学jQuery还是学React.js、是学原生JS还是学框架、要不要学Node.js等等,我们害怕在某一方面投入过多的时间,却学到的时过时的知识,在选择教材时也会有焦虑感。这种焦虑感会影响我是否该坚持自学下去。
还有一种焦虑是前端的新知识太多了,我现在掌握的是否已经过时了或者错了。在自学时由于没有外部的肯定,很容易陷入自我的怀疑。
Node.js更新太快无法出书,书在前端的领域能帮助你的东西很少(除了一些经典书籍)。
幸存者偏差,你自学要么成功,要么失败。

Read More

JS:事件委托

基本概念

把想要被监听的元素委托给它的父元素或祖先元素来监听。

实例分析

假如有个button标签,当用户每次点击时,会在有序列表‘ol’里添加一个列表‘li’,给每个‘li’绑定上监听事件。当用户点击某一‘li’时,会执行某种操作,这里我们假定绑定的监听事件是把’li‘标签删除。
HTML代码如下:

1
2
<button id="takenumber">+</button>
<ol id="numbers"></ol>

Read More

浏览器的事件机制

事件机制

事件机制也叫做‘冒泡&捕获’,也可以叫做事件流。

三大共识

假设有个id等于parent的div,它里面有个id等于child的div,当用户点击了child子元素时:

  • 操作系统是最先知道用户点击了鼠标,浏览器次之。

  • 子元素(child)被点击了,也就意味着父元素(parent)也被点击了。

  • 如果同时监听child和parent,那谁先通知呢?这就涉及到两个阶段。

    Read More