求助:怎么把js对象转为字符串

 我来答
cainiaokan
2017-05-23 · TA获得超过2917个赞
知道小有建树答主
回答量:651
采纳率:66%
帮助的人:610万
展开全部

toString()

使用对象的toString函数把对象转化为字符串。

// plain object
var obj = {};
obj.toString(); // 返回"[object Object]"


// 基本数据封装类
var num = new Number(2.2);
num.toString(); // 返回"2.2"


// 数组
var arr = [1,2,3];
arr.toString(); // 返回"1,2,3"


// 正则对象
var reg = new RegExp('\\d');
reg.toString(); // 返回"/\d/"


// 自定义对象
function Person(name, age) {
    this.name = name;
    this.age = age;
}
Person.prototype.toString = function () {
    return 'name is ' + this.name + 'and age is ' + this.age;
};
var p = new Person('Scott', 31);
p.toString(); // 返回"name is Scott and age is 31"


JSON.stringify

使用json序列化的方式把对象转换为字符串,该方式会把一个对象中所有标记为

enumerable的属性序列化为json格式的字符串。

// plain object
var obj = {name: 'Scott', age: 31};
JSON.stringify(obj); // 返回"{"name":"Scott","age":31}"


// 基本数据封装类
var num = new Number(2.2);
JSON.stringify(num); // 返回"2.2"


// 数组
var arr = [1,2,3];
JSON.stringify(arr); // 返回"[1,2,3]"


// 自定义类型
function Person(name, age, maritalStatus) {
    this.name = name;
    this.age = age;
    // 由于婚姻状况是隐私的属性,不希望序列化字符串的时候暴露给他人,因此这里设置属性为不可枚举的
    Object.defineProperty(this, 'maritalStatus', {
        enumerable: false,
        configurable: false,
        writable: true,
        value: maritalState || 'unknown'
    });
    this.maritalStatus = maritalStatus;
}
var p = new Person('Scott', 31, 'married');
// 序列化的时候是没有maritalStatus的
JSON.stringify(p); // 返回"{"name":"Scott","age":31}"
// 但是maritalStatus确实真实存在于对象中的
p.maritalStatus; // 返回"married"
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式