js中tostring()问题

问题描述

js中tostring()问题

var obj =Object.create({ x:1}) ;
alert(typeof obj.toString);
返回的为什么是“function”?

解决方案

 toString 方法是所有内建的 JScript 对象的成员。它的操作依赖于对象的类型: 

对象 操作
Array 将 Array 的元素转换为字符串。结果字符串由逗号分隔,且连接起来。
Boolean 如果 Boolean 值是 true,则返回 “true”。否则,返回 “false”。
Date 返回日期的文字表示法。
Error 返回一个包含相关错误信息的字符串。
Function 返回如下格式的字符串,其中 functionname 是被调用 toString 方法函数的名称:
function functionname( ) { [native code] }
Number 返回数字的文字表示。
String 返回 String 对象的值。
默认 返回 “[object objectname]”,其中 objectname 是对象类型的名称。  

你这里Object.create,返回是类对象,也就是function 方法

typeof 可以用来检测给定变量的数据类型,可能的返回值:1. 'undefined' --- 这个值未定义;
2. 'boolean'    --- 这个值是布尔值;
3. 'string'        --- 这个值是字符串;
4. 'number'     --- 这个值是数值;
5. 'object'       --- 这个值是对象或null;
6. 'function'    --- 这个值是函数。
再typeof function就是字符串function

解决方案二:

alert(typeof obj.toString)
返回的是函数
alert(typeof obj.toString())
调用函数,返回的是返回值类型

解决方案三:

{
toString:function{
}
}

解决方案四:

顶二楼,楼主调的是obj.toString,而不是obj.toString();

解决方案五:

toString是object的默认方法,typeof方法当然返回的是function,你要执行toString()后才会得到的是toString的返回值

时间: 2025-01-28 10:33:04

js中tostring()问题的相关文章

浅谈JS中String()与 .toString()的区别_javascript技巧

我们知道String()与 .toString()都是可以转换为字符串类型,但是String()与 .toString()的还是有区别的 1..toString()可以将所有的的数据都转换为字符串,但是要排除null 和 undefined 例如将false转为字符串类型 <script> var str = false.toString(); console.log(str, typeof str); </script> 返回的结果为 false,string 看看null 和

判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解_基础知识

1.typeof(param) 返回param的类型(string) 这种方法是JS中的定义的全局方法,也是编译者们最常用的方法,优点就是使用简单.好记,缺点是不能很好的判断object.null.array.regexp和自定义对象. 示例代码: 复制代码 代码如下: var str='str';var arr=['1','2'];var num=1;var bool=true;var obj={name:'test'};var nullObj=null;var undefinedObj=un

在Node.js中使用HTTP上传文件的方法

  这篇文章主要介绍了在Node.js中使用HTTP上传文件的方法,作者以windows下的visual studio作为操作node的环境,推荐阅读!需要的朋友可以参考下 开发环境 我们将使用 Visual Studio Express 2013 for Web 作为开发环境, 不过它还不能被用来做 Node.js 开发.为此我们需要安装 Node.js Tools for Visual Studio. 装好后 Visual Studio Express 2013 for Web 就会转变成一

JavaScript中toString()方法的使用详解

  这篇文章主要介绍了JavaScript中toString()方法的使用详解,是JS入门学习中的基础知识,需要的朋友可以参考下 JavaScript Boolean.toSource()方法返回表示对象的源代码的字符串. 注意:此方法不会在Internet Explorer中运行. 语法 ? 1 boolean.toSource() 下面是参数的详细信息: NA 返回值 返回表示对象的源代码的字符串. 例子: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1

JS中获取数据库中的值的方法

在项目中遇到一个问题,需要在JS中读取数据库中的值,然后再把值返回到页面中,解决方案如下:使用Ajax方法来实现,需要用到ajax.dll(一个ajax技术开发的帮助类库).   实施过程如下:     1.引用Ajax.dll     2.在App_Code写具体的方法,最好单独建立一个类文件,然后写具体方法.       复制代码 代码如下: public class AjaxMethod www.jb51.net {     public AjaxMethod()     {       

js中日期的加减法

  JavaScript实现日期加减计算功能代码实例,因为在js中没有类似C#中的AddDays方法,所以要想实现日期加减的话,就需要自己写函数来实现. 今天就算对JS中日期的加减法做个总结,一共两步 第一步,引入date.format.js,这个JS的作用是将日期转为指定的格式,代码如下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37

Node.js中的流(Stream)介绍

 这篇文章主要介绍了Node.js中的流(Stream)介绍,本文讲解了什么是流.pipe方法.流的分类.Readable流状态的切换等内容,需要的朋友可以参考下     什么是流? 说到流,就涉及到一个*nix的概念:管道--在*nix中,流在Shell中被实现为可以通过 |(管道符) 进行桥接的数据,一个进程的输出(stdout)可被直接作为下一个进程的输入(stdin). 在Node中,流(Stream)的概念与之类似,代表一种数据流可供桥接的能力. pipe 流化的精髓在于 .pipe(

解决JS中乘法的浮点错误的方法

 本篇文章主要介绍了解决JS中乘法的浮点错误的方法.需要的朋友可以过来参考下,希望对大家有所帮助 JS里做小数的乘法运算时会出现浮点错误,具体可以测试一下:     <script>  alert(11*22.9)  </script>    结果是251.89999999999998 而不是251.9     这个问题想必有很多人为之头痛.那么如何解决呢?在此给出解决办法.    1.    代码如下: <script>  alert(11*(22.9*10)/10)

js中浮点型运算BUG的解决方法说明

 本篇文章主要是对js中浮点型运算BUG的解决方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 曾经项目用到过的,之前在网上找到此代码,但在特定条件下除法和加法运算依然会出现BUG个人对此稍作优化     代码如下: //除法函数,用来得到精确的除法结果 //说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显.这个函数返回较为精确的除法结果. //调用:accDiv(arg1,arg2) //返回值:arg1除以arg2的精确结果 function acc