JavaScript对象和字串之间的转换实例探讨


Posted in Javascript onApril 21, 2013

JavaScript 对象定义方式
1. var obj = new Object()

<!--Add by oscar999--> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
<HEAD> 
<TITLE> New Document </TITLE> 
<META NAME="Author" CONTENT="oscar999"> 
<script> 
var obj = new Object(); 
obj.key = "11"; 
alert(obj.key); 
</script> 
</HEAD> 
<BODY> 
</BODY> 
</HTML>

2. var obj = {};
<!--Add by oscar999--> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
<HEAD> 
<TITLE> New Document </TITLE> 
<META NAME="Author" CONTENT="oscar999"> 
<script> 
var obj = {}; 
obj.key = "11"; 
alert(obj.key); 
</script> 
</HEAD> 
<BODY> 
</BODY> 
</HTML>

也可以在定义时初始化值:
var obj = {key:'11'};
对象如何转换成string
如果直接使用 :
obj.toString()

得到的是 [object,object] 这样的字串。
从上面的第二种定义方式 (var obj = {key:'11'};) 可以看出, js 的对象对应的字串类是一对大括号里包着一批键值对的方式。

其实就是JSON的数据格式, 不了解的可以学学json 格式。
使用以下方式就可以取出obj 的key 和value了。

<!--Add by oscar999--> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
<HEAD> 
<TITLE> New Document </TITLE> 
<META NAME="Author" CONTENT="oscar999"> 
<script> 
var obj = {attr1:'value1',attr2:'value2'}; 
for(attr in obj) 
{ 
alert(attr); 
alert(eval("obj."+attr)); 
} 
</script> 
</HEAD> 
<BODY> 
</BODY> 
</HTML>

重点说一下为什么取值使用:
eval("obj."+attr);

而不是直接使用
obj.attr

因为 obj.attr 找到的 obj 中key 值为attr 的value , 但是obj 中并没有attr 的key 值。
这里的attr 是一个变量。 所以 就要借助于eval 的方式了。

String 如何转换为对象
从对象的格式可以看出,如果字串的格式定义成 json 格式的, 就可以直接转换为obj了。
比较以下以下两种的方式:

var obj1 = {attr1:'value1',attr2:'value2'}; 
var obj2 = "{attr1:'value1',attr2:'value2'}";

obj1 直接是一个对象, obj2 只是一个字串。
使用eval(obj2) 就可以转换为对象了。

为什么会有这种用法: 因为很多时候,我们会从服务端返回这种字串供前端处理。

Javascript 相关文章推荐
JavaScript delete 属性的使用
Oct 08 Javascript
Jquery Ajax学习实例5 向WebService发出请求,返回泛型集合数据的异步调用
Mar 17 Javascript
parseInt parseFloat js字符串转换数字
Aug 01 Javascript
快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)
Aug 29 Javascript
JavaScript中Number对象的toFixed() 方法详解
Sep 02 Javascript
前端框架Vue.js构建大型应用浅析
Sep 12 Javascript
浅谈jquery拼接字符串效率比较高的方法
Feb 22 Javascript
解决Vue axios post请求,后台获取不到数据的问题方法
Aug 11 Javascript
js微信分享接口调用详解
Jul 23 Javascript
vue语法自动转typescript(解放双手)
Sep 18 Javascript
LayUi使用switch开关,动态的去控制它是否被启用的方法
Sep 21 Javascript
vue键盘事件点击事件加native操作
Jul 27 Javascript
jquery获取自定义属性(attr和prop)实例介绍
Apr 21 #Javascript
js和jquery对dom节点的操作(创建/追加)
Apr 21 #Javascript
jquery获取焦点和失去焦点事件代码
Apr 21 #Javascript
jQuery获取注册信息并提示实现代码
Apr 21 #Javascript
jQuery隔行变色与普通JS写法的对比
Apr 21 #Javascript
jQuery模拟超链接点击效果代码
Apr 21 #Javascript
jquery 元素控制(追加元素/追加内容)介绍及应用
Apr 21 #Javascript
You might like
用php过滤危险html代码的函数
2008/07/22 PHP
PHP 计算代码执行耗时的代码修正网上普遍错误
2011/05/14 PHP
php采用curl访问域名返回405 method not allowed提示的解决方法
2014/06/26 PHP
PHP中Static(静态)关键字功能与用法实例分析
2019/04/05 PHP
浅析PHP中的 inet_pton 网络函数
2019/12/16 PHP
Alliance vs Liquid BO3 第二场2.13
2021/03/10 DOTA
关于js拖拽上传 [一个拖拽上传修改头像的流程]
2011/07/13 Javascript
Iframe 自动适应页面的高度示例代码
2014/02/26 Javascript
flash遮住div问题的正确解决方法
2014/02/27 Javascript
JavaScript中的原型和继承详解(图文)
2014/07/18 Javascript
JavaScript页面模板库handlebars的简单用法
2015/03/02 Javascript
jQuery oLoader实现的加载图片和页面效果
2015/03/14 Javascript
JS模式之单例模式基本用法
2015/06/30 Javascript
jquery转盘抽奖功能实现
2015/11/13 Javascript
javascript动态添加checkbox复选框的方法
2015/12/23 Javascript
ES6中Symbol类型用法实例详解
2017/04/06 Javascript
jQuery Plupload上传插件的使用
2017/04/19 jQuery
详解Vue路由钩子及应用场景(小结)
2017/11/07 Javascript
JS学习笔记之原型链和利用原型实现继承详解
2019/05/29 Javascript
js 根据对象数组中的属性进行排序实现代码
2019/09/12 Javascript
python处理文本文件实现生成指定格式文件的方法
2014/07/31 Python
python基础教程之Filter使用方法
2017/01/17 Python
python os.listdir按文件存取时间顺序列出目录的实例
2018/10/21 Python
浅谈Python中函数的定义及其调用方法
2019/07/19 Python
python要安装在哪个盘
2020/06/15 Python
css3之UI元素状态伪类选择器实例演示
2017/08/11 HTML / CSS
CSS3 函数技巧 用css 实现js实现的事情(clac Counters Tooltip)
2017/08/15 HTML / CSS
HTML5+JS实现俄罗斯方块原理及具体步骤
2013/11/29 HTML / CSS
英国排名第一的宠物店:PetPlanet
2020/02/02 全球购物
西安启天科技有限公司网络工程师面试题笔试题
2016/06/12 面试题
模具设计与制造专业应届生求职信
2013/10/18 职场文书
工商局个人工作总结
2015/03/03 职场文书
2015年社区统计工作总结
2015/04/21 职场文书
植树节新闻稿
2015/07/17 职场文书
当你找不到方向的时候,不妨读读刘备的一生
2019/08/05 职场文书
Python中 range | np.arange | np.linspace三者的区别
2022/03/22 Python