jQuery 之 js数据类型基本使用(三) - Object基本使用

       广义上来说,Array、Number、function这些都是Object。我们这里介绍的是未封装过的、大括号包络着逗号隔开的键值对、键值对由对象属性和对象值用冒号分隔而组成的对象形式。


1、定义

    ①var a = new Object();

    ②var a = new Object;

    ③var a = {};


2、初始化

var a = {1 : 1, '1' : '1', 'jQuery' : $('body'), 'Dom' : $('body').get(0), null : null, undefined : undefined, NaN : NaN, '' : '', ['_$'] : ['_$'], true : true, 'object' : {'function' : function() {alert('LiuYiFan');}}};

   ①对象属性可以为:Number、String、null、undefined、NaN、一维Array(其元素也必须满足属性支持的类型)、Boolean,它们之后将统一变为String形式来作为属性的存在

    ②初始化时不支持js变量传入作为对象属性,可以利用下文提到的增加对象属性中的中括号的方式来将js变量传入对象属性

    ③将会剔除重复的属性,本例中有着属性1和'1',虽然数据类型分别为Number和String,但是由于之后将统一转为String,这样就重复了,只会保留一个、并且是保留最后出现的属性,本例会保留'1' : '1'键值对

    ④一维Array只会保留它的元素作为属性

   ⑤对象值可以为:Number、String、jQuery对象、Dom对象、null、undefined、NaN、Array、Boolean、Object、function

    ⑥JSON对象是js对象的一种严格的格式,属性为String类型,值为合法的JSON数据类型,且所有String类型必须用双引号,JSON格式里不存在单引号(除了JSON字符串最外层的引号)。JSON对象通常用于与后端的数据交互


3、访问键值对

    ①访问值:

        var value = object.keyName;

        var value = object['keyName'];

        (1)只有当属性名以字母、下划线或$开头时才能用点号访问值,这也是Array不能用点号访问值的原因(与js变量名命名规则对应:js变量只允许以字母、下划线、$、数字命名,且不能以数字开头

        (2)例如上例中,可通过a.object.function获得值,并且由于值为function类型,可以直接a.object.function();执行函数

       (3)当属性名只含数字(允许最前面有减号)或是true、false时,中括号访问值可以不加引号,这也是Array可以直接array[index]访问值的原因

    ②访问键值对:

        foreach循环

        for(var keyNameStr in object) {console.log('key: ' + keyNameStr + '; value: '+ object[keyNameStr]);}

        (1)在foreach里面,循环变量已经是属性名的String格式,故不能用点号访问值

        (2)上篇博文有提到不建议用for-in遍历Array,而如果遍历了,此处keyNameStr为Array索引值的String格式

        

4、修改对象值

    a.property = newValue;

    a['property'] = newValue;


5、增加对象属性

    a.newProperty = value;

    a['newProperty'] = value;

    其中中括号的方式,可以通过js变量来代替'newProperty',前提是变量的值满足对象属性的类型要求


6、删除对象属性

    delete a.property;

    delete a['property'];

    (1)返回值为Boolean类型,表示删除成功与否

    (2)删除后再访问a.property将返回undefined,这也是上篇博文提到的Array用delete删除后访问该索引的值为undefined的原因


7、Object转JSON字符串

    JSON.stringify(a);

    (1)这里前提是a的对象属性满足Object对象属性的类型要求,a的对象值满足JSON对象的对象值的类型要求,不然会报错

    (2)通常用于向后端传递数据

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值