diff --git a/docs/arraybuffer.md b/docs/arraybuffer.md index 04a3ce6..9f74d29 100644 --- a/docs/arraybuffer.md +++ b/docs/arraybuffer.md @@ -508,7 +508,7 @@ int8[0] = -129; int8[0] // 127 ``` -上面例子中,`int8`是一个带符号的8位整数视图,它的最大值是127,最小值是-128。输入值为`128`时,相当于正向溢出`1`,根据“最小值加上余值(128除以127的余值是1),再减去1”的规则,就会返回`-128`;输入值为`-129`时,相当于负向溢出`1`,根据“最大值减去余值(-129除以-127的余值是2),再加上1”的规则,就会返回`127`。 +上面例子中,`int8`是一个带符号的8位整数视图,它的最大值是127,最小值是-128。输入值为`128`时,相当于正向溢出`1`,根据“最小值加上余值(128除以127的余值是1),再减去1”的规则,就会返回`-128`;输入值为`-129`时,相当于负向溢出`1`,根据“最大值减去余值(-129除以-128的余值是1),再加上1”的规则,就会返回`127`。 `Uint8ClampedArray`视图的溢出规则,与上面的规则不同。它规定,凡是发生正向溢出,该值一律等于当前数据类型的最大值,即255;如果发生负向溢出,该值一律等于当前数据类型的最小值,即0。 diff --git a/docs/module-loader.md b/docs/module-loader.md index 606dd56..022860e 100644 --- a/docs/module-loader.md +++ b/docs/module-loader.md @@ -104,6 +104,10 @@ const isNotModuleScript = this !== undefined; - CommonJS 模块输出的是一个值的拷贝,ES6 模块输出的是值的引用。 - CommonJS 模块是运行时加载,ES6 模块是编译时输出接口。 +第二个差异是因为 CommonJS 加载的是一个对象(即`module.exports`属性),该对象只有在脚本运行完才会生成。而 ES6 模块不是对象,它的对外接口只是一种静态定义,在代码静态解析阶段就会生成。 + +下面重点解释第一个差异。 + CommonJS 模块输出的是值的拷贝,也就是说,一旦输出一个值,模块内部的变化就影响不到这个值。请看下面这个模块文件`lib.js`的例子。 ```javascript