diff --git a/docs/oop/strict.md b/docs/oop/strict.md index 341f757..cc339c8 100644 --- a/docs/oop/strict.md +++ b/docs/oop/strict.md @@ -108,7 +108,7 @@ function notStrict() { ```javascript // 对只读属性赋值会报错 'use strict'; -Object.defineProperty({}, 'a', { +var obj = Object.defineProperty({}, 'a', { value: 37, writable: false }); diff --git a/docs/oop/this.md b/docs/oop/this.md index 1913fe3..6792c30 100644 --- a/docs/oop/this.md +++ b/docs/oop/this.md @@ -687,7 +687,7 @@ var func = function () { var handler = function (){ func.apply(obj); - // 或者 f.call(obj); + // 或者 func.call(obj); }; // jQuery 的写法 diff --git a/docs/stdlib/object.md b/docs/stdlib/object.md index 24b44ca..783175c 100644 --- a/docs/stdlib/object.md +++ b/docs/stdlib/object.md @@ -56,7 +56,7 @@ obj instanceof Object // true `instanceof`运算符用来验证,一个对象是否为指定的构造函数的实例。`obj instanceof Object`返回`true`,就表示`obj`对象是`Object`的实例。 -如果参数是原始类型的值,`Object`方法将其转为对应的包装对象的实例(参见《原始类型的包装对象》一章)。 +如果参数是原始类型的值,`Object`方法将其转为对应的包装对象的实例(参见《包装对象》一章)。 ```javascript var obj = Object(1); @@ -156,7 +156,7 @@ var obj = { Object.getOwnPropertyNames(obj) // ["p1", "p2"] ``` -对于一般的对象来说,`Object.keys()`和`Object.getOwnPropertyNames()`返回的结果是一样的。只有涉及不可枚举属性时,才会有不一样的结果。`Object.keys`方法只返回可枚举的属性(详见《对象属性的描述对象》一章),`Object.getOwnPropertyNames`方法还返回不可枚举的属性名。 +对于一般的对象来说,`Object.keys()`和`Object.getOwnPropertyNames()`返回的结果是一样的。只有涉及不可枚举属性时,才会有不一样的结果。`Object.keys`方法只返回可枚举的属性(详见《属性描述对象》一章),`Object.getOwnPropertyNames`方法还返回不可枚举的属性名。 ```javascript var a = ['Hello', 'World']; @@ -231,7 +231,7 @@ obj.valueOf() === obj // true 上面代码比较`obj.valueOf()`与`obj`本身,两者是一样的。 -`valueOf`方法的主要用途是,JavaScript 自动类型转换时会默认调用这个方法(详见《数据类型转换》一章)。 +`valueOf`方法的主要用途是,JavaScript 自动类型转换时会默认调用这个方法(详见《数据类型的转换》一章)。 ```javascript var obj = new Object(); diff --git a/docs/types/null-undefined-boolean.md b/docs/types/null-undefined-boolean.md index 9a76679..129dda3 100644 --- a/docs/types/null-undefined-boolean.md +++ b/docs/types/null-undefined-boolean.md @@ -35,7 +35,7 @@ undefined == null 既然含义与用法都差不多,为什么要同时设置两个这样的值,这不是无端增加复杂度,令初学者困扰吗?这与历史原因有关。 -1995年 JavaScript 诞生时,最初像 Java 一样,只设置了`null`表示"无"。根据 C 语言的传统,`null`可以自动转为`0`。 +1995年 JavaScript 诞生时,最初像 Java 一样,只设置了`null`表示“无”。根据 C 语言的传统,`null`可以自动转为`0`。 ```javascript Number(null) // 0 @@ -46,7 +46,7 @@ Number(null) // 0 但是,JavaScript 的设计者 Brendan Eich,觉得这样做还不够。首先,第一版的 JavaScript 里面,`null`就像在 Java 里一样,被当成一个对象,Brendan Eich 觉得表示“无”的值最好不是对象。其次,那时的 JavaScript 不包括错误处理机制,Brendan Eich 觉得,如果`null`自动转为0,很不容易发现错误。 -因此,他又设计了一个`undefined`。区别是这样的:`null`是一个表示“空”的对象,转为数值时为`0`;`undefined`是一个表示"此处无定义"的原始值,转为数值时为`NaN`。 +因此,他又设计了一个`undefined`。区别是这样的:`null`是一个表示“空”的对象,转为数值时为`0`;`undefined`是一个表示“此处无定义”的原始值,转为数值时为`NaN`。 ```javascript Number(undefined) // NaN diff --git a/docs/types/number.md b/docs/types/number.md index bb9c1b0..53ebfb5 100644 --- a/docs/types/number.md +++ b/docs/types/number.md @@ -280,6 +280,12 @@ NaN * 32 // NaN NaN / 32 // NaN ``` +但是,ES6 引入指数运算符(`**`)后,出现了一个例外。 + +```javascript +NaN ** 0 // 1 +``` + ### Infinity **(1)含义** diff --git a/package.json b/package.json index 6f29bac..479b7bb 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,6 @@ "dependencies": { "gh-pages": "6.x", "loppo": "^0.6.24", - "loppo-theme-wangdoc": "^0.7.1" + "loppo-theme-wangdoc": "^0.7.3" } }