From e60dd8f133ba149da6c76f5fd21a1e6ae7655d8c Mon Sep 17 00:00:00 2001 From: Cloudyan Date: Thu, 7 Sep 2017 20:25:07 -0500 Subject: [PATCH 1/6] Update CNAME --- CNAME | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CNAME b/CNAME index b4f552f0..f7609851 100644 --- a/CNAME +++ b/CNAME @@ -1 +1 @@ -javascript.ruanyifeng.com +js.devnode.cn \ No newline at end of file From fed5f14ec0c0b02898bad3d313821136a85e137a Mon Sep 17 00:00:00 2001 From: jack <1395093509@qq.com> Date: Fri, 8 Sep 2017 10:25:48 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- grammar/conversion.md | 2 ++ stdlib/object.md | 75 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) diff --git a/grammar/conversion.md b/grammar/conversion.md index fbb3a278..63fe2e04 100644 --- a/grammar/conversion.md +++ b/grammar/conversion.md @@ -95,6 +95,8 @@ Number([5]) // 5 3. 如果`toString`方法返回的是对象,就报错。 +`valueOf` 方法更多参见[valueOf()详解](/stdlib/object.html) + 请看下面的例子。 ```javascript diff --git a/stdlib/object.md b/stdlib/object.md index 88fcc793..d3551dd5 100644 --- a/stdlib/object.md +++ b/stdlib/object.md @@ -231,6 +231,81 @@ o.valueOf = function (){ 上面代码自定义了`o`对象的`valueOf`方法,于是`1 + o`就得到了`3`。这种方法就相当于用`o.valueOf`覆盖`Object.prototype.valueOf`。 +** 关于 `valueOf()` 函数的详解 ** + +`valueOf()` 函数用于返回指定对象的原始值。 + +该方法属于`Object`对象,由于所有的对象都"继承"了`Object`的对象实例,因此几乎所有的实例对象都可以使用该方法。 + +语法: + +```javascript +object.valueOf( ) +``` + +返回值 + +`valueOf()`函数返回指定对象的原始值。 + +JavaScript的许多内置对象都重写了该函数,以实现更适合自身的功能需要。因此,不同类型对象的`valueOf()`方法的返回值和返回值类型均可能不同。 + +-----------|----- +对象 |返回值 +----------|------ +Array |数组实例对象。 +Boolean |布尔值。 +Date |以毫秒数存储的时间值,从 UTC 1970 年 1 月 1 日午夜开始计算。 +Function |函数本身。 +Number |数字值。 +Object |对象本身。这是默认设置。 +String |字符串值。 + +示例&说明 + +```javascript +// Array:返回数组对象本身 +var array = ["CodePlayer", true, 12, -5]; +document.writeln( array.valueOf() === array ); // true + +// Date:当前时间距1970年1月1日午夜的毫秒数 +var date = new Date(2013, 7, 18, 23, 11, 59, 230); +document.writeln( date.valueOf() ); // 1376838719230 + +// Number:返回数字值 +var num = 15.26540; +document.writeln( num.valueOf() ); // 15.2654 + +// 布尔:返回布尔值true或false +var bool = true; +document.writeln( bool.valueOf() === bool ); // true +// new一个Boolean对象 +var newBool = new Boolean(true); +// valueOf()返回的是true,两者的值相等 +document.writeln( newBool.valueOf() == newBool ); // true +// 但是不全等,两者类型不相等,前者是boolean类型,后者是object类型 +document.writeln( newBool.valueOf() === newBool ); // false + +// Function:返回函数本身 +function foo(){ +} +document.writeln( foo.valueOf() === foo ); // true +var foo2 = new Function("x", "y", "return x + y;"); +document.writeln( foo2.valueOf() === foo2 ); // true + +// Object:返回对象本身 +var obj = {name: "张三", age: 18}; +document.writeln( obj.valueOf() === obj ); // true + +// String:返回字符串值 +var str = "http://www.365mini.com"; +document.writeln( str.valueOf() === str ); // true +// new一个字符串对象 +var str2 = new String("http://www.365mini.com"); +// 两者的值相等,但不全等,因为类型不同,前者为string类型,后者为object类型 +document.writeln( str2.valueOf() === str2 ); // false +``` + + ### Object.prototype.toString() `toString`方法的作用是返回一个对象的字符串形式,默认情况下返回类型字符串。 From cdddb1a839ff1835c547280f4daa2b28017b44ba Mon Sep 17 00:00:00 2001 From: jack <1395093509@qq.com> Date: Fri, 8 Sep 2017 10:29:02 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- stdlib/object.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/object.md b/stdlib/object.md index d3551dd5..21874868 100644 --- a/stdlib/object.md +++ b/stdlib/object.md @@ -231,7 +231,7 @@ o.valueOf = function (){ 上面代码自定义了`o`对象的`valueOf`方法,于是`1 + o`就得到了`3`。这种方法就相当于用`o.valueOf`覆盖`Object.prototype.valueOf`。 -** 关于 `valueOf()` 函数的详解 ** +** JavaScript `valueOf()` 函数的详解 ** [引自](http://www.365mini.com/page/javascript-valueof.htm) `valueOf()` 函数用于返回指定对象的原始值。 From bd12cc6c000d9fa51518714047def55ac0b0b5f0 Mon Sep 17 00:00:00 2001 From: jack <1395093509@qq.com> Date: Fri, 8 Sep 2017 10:55:17 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E6=9B=B4=E6=96=B0toString=20=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- stdlib/number.md | 10 +++++++++- stdlib/object.md | 36 ++++++++++++++++++++++-------------- 2 files changed, 31 insertions(+), 15 deletions(-) diff --git a/stdlib/number.md b/stdlib/number.md index 85cce09f..e8f6f17a 100644 --- a/stdlib/number.md +++ b/stdlib/number.md @@ -64,7 +64,7 @@ Number.MIN_SAFE_INTEGER // -9007199254740991 ### Number.prototype.toString() -`Number`对象部署了自己的`toString`方法,用来将一个数值转为字符串形式。 +`Number`对象部署了自己的`toString`方法,用来将一个数值转为指定进制的字符串形式。 ```javascript (10).toString() // "10" @@ -72,6 +72,14 @@ Number.MIN_SAFE_INTEGER // -9007199254740991 `toString`方法可以接受一个参数,表示输出的进制。如果省略这个参数,默认将数值先转为十进制,再输出字符串;否则,就根据参数指定的进制,将一个数字转化成某个进制的字符串。 +```javascript +// 语法 +numberObject.toString( [ radix ] ) +``` + +参数radix,可选,支持 [2, 36] 之间的整数。例如:参数值为2,则表示二进制;为8,则表示八进制;为16,则表示十六进制。 +如果省略参数radix,则默认为10(十进制)。 + ```javascript (10).toString(2) // "1010" (10).toString(8) // "12" diff --git a/stdlib/object.md b/stdlib/object.md index 21874868..606b9b4d 100644 --- a/stdlib/object.md +++ b/stdlib/object.md @@ -356,6 +356,8 @@ o + ' ' + 'world' // "hello world" `Object.prototype.toString`方法返回对象的类型字符串,因此可以用来判断一个值的类型。 +由于所有的对象都"继承"了Object的对象实例,因此几乎所有的实例对象都可以使用该方法。 + ```javascript var o = {}; o.toString() // "[object Object]" @@ -369,20 +371,26 @@ o.toString() // "[object Object]" Object.prototype.toString.call(value) ``` -不同数据类型的`Object.prototype.toString`方法返回值如下。 - -- 数值:返回`[object Number]`。 -- 字符串:返回`[object String]`。 -- 布尔值:返回`[object Boolean]`。 -- undefined:返回`[object Undefined]`。 -- null:返回`[object Null]`。 -- 数组:返回`[object Array]`。 -- arguments对象:返回`[object Arguments]`。 -- 函数:返回`[object Function]`。 -- Error对象:返回`[object Error]`。 -- Date对象:返回`[object Date]`。 -- RegExp对象:返回`[object RegExp]`。 -- 其他对象:返回`[object Object]`。 +`toString()`函数的返回值为String类型。返回当前对象的字符串形式。不同数据类型的`Object.prototype.toString`方法返回值如下。 + +注意:JavaScript的许多内置对象都重写了该函数,以实现更适合自身的功能需要。 + + +类型 |返回值|行为描述 +----------|-----|------- +Object(默认)|`[object ObjectName]`| 其中 ObjectName 是对象类型的名称。 +数值 Number| `[object Number]`|返回数值的字符串表示。还可返回以指定进制表示的字符串,请参考[Number.toString()](/stdlib/number.html)。 +字符串 String| `[object String]`|返回 String 对象的值。 +布尔值 Boolean| `[object Boolean]`|如果布尔值是true,则返回"true"。否则返回"false"。 +undefined| `[object Undefined]`| +null| `[object Null]`| +数组 Array| `[object Array]`|将 Array 的每个元素转换为字符串,并将它们依次连接起来,两个元素之间用英文逗号作为分隔符进行拼接。 +arguments对象| `[object Arguments]`| +函数 Function| `[object Function]`| 返回如下格式的字符串,其中 functionname 是一个函数的名称,此函数的 toString 方法被调用: "function functionname() { [native code] }" +Error对象| `[object Error]`|返回一个包含相关错误信息的字符串。 +Date对象| `[object Date]` |返回日期的文本表示。 +RegExp对象|`[object RegExp]`| +其他对象| `[object Object]`| 也就是说,`Object.prototype.toString`可以得到一个实例对象的构造函数。 From b959573b357d43adc70bf44b4ef745546648516b Mon Sep 17 00:00:00 2001 From: jack <1395093509@qq.com> Date: Fri, 8 Sep 2017 11:08:32 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- stdlib/object.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/stdlib/object.md b/stdlib/object.md index 606b9b4d..2858a076 100644 --- a/stdlib/object.md +++ b/stdlib/object.md @@ -378,19 +378,19 @@ Object.prototype.toString.call(value) 类型 |返回值|行为描述 ----------|-----|------- -Object(默认)|`[object ObjectName]`| 其中 ObjectName 是对象类型的名称。 -数值 Number| `[object Number]`|返回数值的字符串表示。还可返回以指定进制表示的字符串,请参考[Number.toString()](/stdlib/number.html)。 -字符串 String| `[object String]`|返回 String 对象的值。 -布尔值 Boolean| `[object Boolean]`|如果布尔值是true,则返回"true"。否则返回"false"。 -undefined| `[object Undefined]`| -null| `[object Null]`| -数组 Array| `[object Array]`|将 Array 的每个元素转换为字符串,并将它们依次连接起来,两个元素之间用英文逗号作为分隔符进行拼接。 -arguments对象| `[object Arguments]`| -函数 Function| `[object Function]`| 返回如下格式的字符串,其中 functionname 是一个函数的名称,此函数的 toString 方法被调用: "function functionname() { [native code] }" -Error对象| `[object Error]`|返回一个包含相关错误信息的字符串。 -Date对象| `[object Date]` |返回日期的文本表示。 -RegExp对象|`[object RegExp]`| -其他对象| `[object Object]`| +Object(默认)|[object ObjectName]| 其中 ObjectName 是对象类型的名称。 +数值 Number| [object Number] |返回数值的字符串表示。还可返回以指定进制表示的字符串,请参考[Number.toString()](/stdlib/number.html)。 +字符串 String| [object String] |返回 String 对象的值。 +布尔值 Boolean| [object Boolean]|如果布尔值是true,则返回"true"。否则返回"false"。 +undefined| [object Undefined]| +null| [object Null]| +数组 Array| [object Array]|将 Array 的每个元素转换为字符串,并将它们依次连接起来,两个元素之间用英文逗号作为分隔符进行拼接。 +arguments对象| [object Arguments]| +函数 Function| [object Function]| 返回如下格式的字符串,其中 functionname 是一个函数的名称,此函数的 toString 方法被调用: "function functionname() { [native code] }" +Error对象|[object Error]|返回一个包含相关错误信息的字符串。 +Date对象| [object Date] |返回日期的文本表示。 +RegExp对象|[object RegExp]| +其他对象| [object Object]| 也就是说,`Object.prototype.toString`可以得到一个实例对象的构造函数。 From cac4db0613e51f337b88f6726c9e4271e6c10b9c Mon Sep 17 00:00:00 2001 From: Cloudyan Date: Mon, 1 Apr 2019 11:25:46 +0800 Subject: [PATCH 6/6] Update CNAME --- CNAME | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CNAME b/CNAME index f7609851..a4a18f3f 100644 --- a/CNAME +++ b/CNAME @@ -1 +1 @@ -js.devnode.cn \ No newline at end of file +js.deepjs.cn \ No newline at end of file