JQuery插件中设置属性的变量

wsy87217 2011-10-25 10:41:20
在使用Jquery插件的时候,经常会这样定义一个变量来设置其属性:
var aa = {
dateFormat: 'yy-mm-dd',
monthNamesShort:['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'],
changeMonth: true,
changeYear: true,
dayNamesMin: ['日','一','二','三','四','五','六'],
yearRange: '1910:2011'
};

问题:
1、变量aa是什么类型?
2、如monthNamesShort或dayNamesMin他们的值是什么类型?数组吗?数组不是需要用new Array()定义的吗?

谢谢!
...全文
252 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangws 2011-10-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wsy87217 的回复:]

引用 3 楼 liangws 的回复:

如果json数据的属性名能转换成数值的情况

var china_m = {'01':'一','02':'二','03':'三'}
请用china_m['01']
否则
var china_m = {'a':'一','b':'二','c':'三'}
china_m.a或者china_m['a']都可以

哦,非常感谢你的回答!
再……
[/Quote]
因为ajax返回的是一个字符串,并不是一个json对象,所以要eval把他转换成一个json对象后才能正常使用
wsy87217 2011-10-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 liangws 的回复:]

如果json数据的属性名能转换成数值的情况

var china_m = {'01':'一','02':'二','03':'三'}
请用china_m['01']
否则
var china_m = {'a':'一','b':'二','c':'三'}
china_m.a或者china_m['a']都可以
[/Quote]
哦,非常感谢你的回答!
再问一下,那为什么很多教程上在做Ajax(JSON传值)接收值处理的时候,都用eval()先转义一下呢?按你的解释直接用不就可以了吗?
小蚂蚁非非 2011-10-25
  • 打赏
  • 举报
回复
问题:
1、变量aa是什么类型?
2、如monthNamesShort或dayNamesMin他们的值是什么类型?数组吗?数组不是需要用new Array()定义的吗?

回答:
该变量是使用json语法规则描述的。json语法规则如下:
var aa={
"名称1":"值1",
"名称2":"值2"
}
其中,JSON 值可以是:
1.数字(整数或浮点数)
2.字符串(在双引号中)
3.逻辑值(true 或 false)
4.数组(在方括号中)
5.对象(在花括号中)
6.null
liangws 2011-10-25
  • 打赏
  • 举报
回复
如果json数据的属性名能转换成数值的情况

var china_m = {'01':'一','02':'二','03':'三'}
请用china_m['01']
否则
var china_m = {'a':'一','b':'二','c':'三'}
china_m.a或者china_m['a']都可以
wsy87217 2011-10-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 liangws 的回复:]

1, aa是json
2,monthNamesShort或dayNamesMin都是数组,JS是弱类型,不需要new Array(),new Object()这种形式
定义字符串 var str = "123";
定义数值 var i = 1;
定义数组 var arr = [1,2];
定义对象 var obj = {};
[/Quote]
那如果aa是json数据的话,
var china_m = {'01':'一','02':'二','03':'三'}
$('#abc').val(china_m[01]);
能用china_m[01]这种方式取值吗?不是应该先用eval()函数转义一下吗?
liangws 2011-10-25
  • 打赏
  • 举报
回复
1, aa是json
2,monthNamesShort或dayNamesMin都是数组,JS是弱类型,不需要new Array(),new Object()这种形式
定义字符串 var str = "123";
定义数值 var i = 1;
定义数组 var arr = [1,2];
定义对象 var obj = {};
wsy87217 2011-10-25
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 liangws 的回复:]

引用 8 楼 wsy87217 的回复:

引用 6 楼 liangws 的回复:

引用 5 楼 wsy87217 的回复:

引用 3 楼 liangws 的回复:

如果json数据的属性名能转换成数值的情况

var china_m = {'01':'一','02':'二','03':'三'}
请用china_m['01']
否则
var china_m = ……
[/Quote]
嗯明白了!!!多谢了!!!
liangws 2011-10-25
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wsy87217 的回复:]

引用 6 楼 liangws 的回复:

引用 5 楼 wsy87217 的回复:

引用 3 楼 liangws 的回复:

如果json数据的属性名能转换成数值的情况

var china_m = {'01':'一','02':'二','03':'三'}
请用china_m['01']
否则
var china_m = {'a':'一','b':'二','c':'三'……
[/Quote]

这样把,你返回的时候typeof一下,就知道返回的是对象还是字符串了

function(data){
alert(typeof data)
}
wsy87217 2011-10-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 liangws 的回复:]

引用 5 楼 wsy87217 的回复:

引用 3 楼 liangws 的回复:

如果json数据的属性名能转换成数值的情况

var china_m = {'01':'一','02':'二','03':'三'}
请用china_m['01']
否则
var china_m = {'a':'一','b':'二','c':'三'}
china_m.a或者china_m['……
[/Quote]
我是用的php,我每次把值返回给JS的时候都是用json_encode()函数把一个字符串转换成JSON格式,那时候上课的时候,也就是说JS接到的返回值已经是JSON字符串了,我记得老师也是说eval是解译JSON数据的啊???
峭沙 2011-10-25
  • 打赏
  • 举报
回复
楼上几位已经解释得很清楚了,飘过。。

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧