复杂的数据类型如何转成字符串!

简介: 复杂的数据类型如何转成字符串!

1.首先,会调用 valueOf 方法,如果方法的返回值是一个基本数据类型,就返回这个值,

如果调用 valueOf 方法之后的返回值仍旧是一个复杂数据类型,就会调用该对象的 toString 方法,

如果 toString 方法调用之后的返回值是一个基本数据类型,就返回这个值,

如果 toString 方法调用之后的返回值是一个复杂数据类型,就报一个错误。

 

// 1;
var obj = {
    valueOf: function() {
        return 1;
    }
};
console.log(obj + ""); //'1'
// 2;
var obj = {
    valueOf: function() {
        return [1, 2];
    }
};
console.log(obj + ""); //'[object Object]';
// 3;
var obj = {
    valueOf: function() {
        return [1, 2];
    },
    toString: function() {
        return 1;
    }
};
console.log(obj + ""); //'1';
// 4;
var obj = {
    valueOf: function() {
        return [1, 2];
    },
    toString: function() {
        return [1, 2, 3];
    }
};
console.log(obj + ""); // 报错 Uncaught TypeError: Cannot convert object to primitive value

2.括展

var arr = [new Object(), new Date(), new RegExp(), new String(), new Number(), new Boolean(), new Function(), new Array(), Math] console.log(arr.length) // 9
for (var i = 0; i < arr.length; i++) {
    arr[i].valueOf = function() {
        return [1, 2, 3]
    }
    arr[i].toString = function() {
        return 'toString'
    }
    console.log(arr[i] + '')
}

1、若 return [1, 2, 3]处为 return "valueof",得到的返回值是 valueof toString 7valueof 说明:其他八种复杂数据类型是先调用 valueOf 方法,时间对象是先调用 toString 方法


2、改成 return [1, 2, 3],得到的返回值是 9toString 说明:执行 valueof 后都来执行 toString


相关文章
|
5月前
|
存储 Java
JAVA字符串与其他类型数据的转换
JAVA字符串与其他类型数据的转换
108 4
|
3月前
|
JavaScript
JS字符串数据类型转换,字符串如何转成变量,+号只要有一个是字符串,就会把另外一个转成字符串,- * / 都会把数据转成数字类型,数字型控制台是蓝色,字符型控制台是黑色,
JS字符串数据类型转换,字符串如何转成变量,+号只要有一个是字符串,就会把另外一个转成字符串,- * / 都会把数据转成数字类型,数字型控制台是蓝色,字符型控制台是黑色,
|
5月前
|
前端开发 Java Spring
基本数据类型,特殊数据类型-和字符串自动转换
基本数据类型,特殊数据类型-和字符串自动转换
63 0
|
存储 Python
什么是数据类型,都有什么,如何转换
什么是数据类型,都有什么,如何转换
138 0
|
JavaScript 前端开发
数组和字符串的相互转换
1.Array.join()方法 将数组的每一项用指定字符连接形成一个字符串。默认连接字符为 “,” 逗号。 注:将字符串转化为数组的String.split(“分隔符”)与Array.join(“分隔符”)正好相反;
|
JavaScript
数组与字符串相互转换
js数组与字符串相互转换
143 0
062.浮点数转换为字符串
062.浮点数转换为字符串
120 0
|
存储 Java 索引
Java中常用类String与基本数据类型转换字符串 > 基本数据类型、包装类、基本数据类型、包装类 > 字符串、字符数组 > 字符串、字符串 > 字符数组、字节数组 > 字符串、字符串 > 字节数组
Java中常用类String与基本数据类型转换字符串 > 基本数据类型、包装类、基本数据类型、包装类 > 字符串、字符数组 > 字符串、字符串 > 字符数组、字节数组 > 字符串、字符串 > 字节数组
|
JavaScript 前端开发 开发者
13、数据类型的转换
JavaScript 是一种动态类型语言,变量没有类型限制,可以随时赋予任意值。
132 0
|
JSON JavaScript 前端开发
json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值
原文:json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值 主要内容: 一、json相关概念 二、json字符串转换成json对象 (字符串-->JSON对象) 三、json对象转换成字符串(json对象-->字符串) 四、将值转换成字符串(值-->字符串) 五、字符串转成值(字符串-->值)   同步的交流学习社区:http://www.mwcxs.top/page/425.html 一、json相关概念 json,全称为javascript object notation,是一种轻量级的数据交互格式。
6312 0