复杂数据类型如何转变为字符串

简介: 复杂数据类型如何转变为字符串


  • 首先,会调用 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


相关文章
|
7月前
复杂数据类型如何转变为字符串
复杂数据类型如何转变为字符串
27 2
|
7月前
复杂的数据类型如何转成字符串!
复杂的数据类型如何转成字符串!
|
7月前
|
存储 C++
c++复合类型(二)
c++复合类型(二)
45 0
|
7月前
|
存储 C++
c++复合类型(一)
c++复合类型(一)
70 0
|
7月前
|
前端开发 Java Spring
基本数据类型,特殊数据类型-和字符串自动转换
基本数据类型,特殊数据类型-和字符串自动转换
73 0
|
程序员 索引
String类即字符串的相关方法
String类即字符串的相关方法
68 0
|
存储
04-数组和元祖数据类型
04-数组和元祖数据类型
78 0
|
存储 编译器 程序员
认识C++字符串复合类型
认识C++字符串复合类型
113 0
|
C++
C++中的数组类型操作
本文演示了一些可用于查询和操作数组类型(甚至是多维数组)的内置函数。在我们需要信息或操作我们用不同维度启动的数组的情况下,这些函数非常有用。这些函数在头文件 中定义。一些功能包括:
92 0
|
存储 人工智能 C语言
C/C++中的基础数据类型
C/C++中的基础数据类型。整型、浮点型、字符型,存储大小、存储范围、精度与映射范围,ASCII表,代码实例。
146 1
C/C++中的基础数据类型