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 相关文章推荐
解决FireFox下[使用event很麻烦]的问题
Nov 26 Javascript
LazyForm jQuery plugin 定制您的CheckBox Radio和Select
Oct 24 Javascript
addEventListener()第三个参数useCapture (Boolean)详细解析
Nov 07 Javascript
随鼠标上下滚动的jquery代码
Dec 05 Javascript
jquery prop的使用介绍及与attr的区别
Dec 19 Javascript
JS 获取鼠标左右键的键值方法
Oct 11 Javascript
jQuery菜单插件superfish使用指南
Apr 21 Javascript
JS模拟并美化的表单控件完整实例
Aug 19 Javascript
JSP防止网页刷新重复提交数据的几种方法
Nov 19 Javascript
AngularJS使用angular.bootstrap完成模块手动加载的方法分析
Jan 19 Javascript
非常实用的jQuery代码段集锦【检测浏览器、滚动、复制、淡入淡出等】
Aug 08 jQuery
vue循环数组改变点击文字的颜色
Oct 14 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版
2006/10/09 PHP
xmlHTTP实例
2006/10/24 Javascript
JS写的数字拼图小游戏代码[学习参考]
2008/10/29 Javascript
文本框中,回车键触发事件的js代码[多浏览器兼容]
2010/06/07 Javascript
使用jQuery简单实现模拟浏览器搜索功能
2014/12/21 Javascript
了解Javascript的模块化开发
2015/03/02 Javascript
JQuery中attr方法和removeAttr方法用法实例
2015/05/18 Javascript
jQuery选择器实例应用
2017/01/05 Javascript
js实现百度登录框鼠标拖拽效果
2017/03/07 Javascript
简单快速的实现js计算器功能
2017/08/17 Javascript
jQuery完成表单验证的实例代码(纯代码)
2017/09/30 jQuery
js使用ajax传值给后台,后台返回字符串处理方法
2018/08/08 Javascript
在Layui中实现开关按钮的效果实例
2019/09/29 Javascript
Vue+ElementUI table实现表格分页
2019/12/14 Javascript
python3实现全角和半角字符转换的方法示例
2017/09/21 Python
Python微信操控itchat的方法
2019/05/31 Python
python求最大值最小值方法总结
2019/06/25 Python
Python内置数据类型list各方法的性能测试过程解析
2020/01/07 Python
Python Selenium参数配置方法解析
2020/01/19 Python
python随机模块random的22种函数(小结)
2020/05/15 Python
Python Pandas数据分析工具用法实例
2020/11/05 Python
Etam俄罗斯:法国女士内衣和家居服网上商店
2019/10/30 全球购物
经典c++面试题三
2015/07/08 面试题
为什么group by 和order by会使查询变慢
2014/05/16 面试题
副厂长岗位职责
2014/02/02 职场文书
工程项目经理任命书
2014/06/05 职场文书
小城镇建设汇报材料
2014/08/16 职场文书
大学生党员学习焦裕禄精神思想汇报
2014/09/10 职场文书
债务纠纷委托书范本
2014/10/14 职场文书
审计局2014法制宣传日活动总结
2014/11/01 职场文书
2014年小学教学工作总结
2014/11/13 职场文书
德能勤绩廉个人总结
2015/02/14 职场文书
搞笑婚庆主持词
2015/06/29 职场文书
小学运动会入场词
2015/07/18 职场文书
环保建议书作文400字
2015/09/14 职场文书
PyTorch 实现L2正则化以及Dropout的操作
2021/05/27 Python