Execution Context

前言

JS 引擎只确保 Execution Context 描述的机制,但不确保采用什么手段去实现。

首先,Execution Context 是 ECMAScript 语言规范中的抽象概念,它旨在建立一种易于描述和实现的 ECMAScript 运行机制,JavaScript 是 ECMAScript 的一种实现,而 JavaScript 引擎,例如 V8、SpiderMonkey、Carakan 等,在实现 JavaScript 运行环境时,并不一定会采用固定方式实现 Execution Context,更不会强调哪些类、方法或函数是与 Execution Context 有关的,也许其实现有关的代码到处都是。

但了解 Execution Context 仍然是有意义的,概念可以帮助我们理解现象。

阅读全文

常见Web布局

正常文档流布局(兼容所有浏览器)

按照元素在文档中的出现顺序与书写方向(write-mode),搭配盒模型进行布局。

基于position 的布局(IE 不兼容position:sticky)

通过修改元素的position 来实现一些特殊布局效果。

基于float 的Multicol 布局(几乎兼容所有浏览器)

  • float:none/left/right 用于指定浮动方向,元素会朝对应方向移动,直到碰到容器边缘或另一个float 元素;float 元素会脱离正常文档流,并创建BFC;float 元素的display 可能被强制改为block,且对flex/inline-flex 元素无效。
  • clear:none/left/right/both 用于清除当前BFC 中的前置float 元素的影响,且该元素为非float 元素时,垂直方向的外边距将会折叠;
阅读全文