普通对象:由大括号包裹起来的,由零到多个属性名和属性值(键值对)组成的

那什么是属性呢?

属性:描述当前对象特征的,属性名是当前具备这个特征,属性值是这个特征的描述(专业语法,属性名称为键[key],属性值称为值[value],一组属性名和属性值称为一组键值对)

对象的属性名 可以是数字

var obj={
1:12,
true:100,
null:200,
undefined:300,
{}:400
}
obj[1];//
obj['1'];//
obj.1 ; //语法错误
obj[{}]=300 ;// 存储的是[object Object]: 300

当我们存储的属性名不是字符串和数字,浏览器会把这个值转换为字符串(toString转换),然后在进行存储

属性的操作:增删改查

var obj = {

   name:'我是一个名字',
age:10
}
//获取属性名的值 (查)
obj.name //obj的name属性名
obj['name'] //正规的获取方式,一般来说,对象的属性名都是字符串格式的,属性值是任意格式的
//增加和修改

var obj1 = {name:'qqq'};
var obj2 = {name:'www'}; obj1.name = '韩梅梅'; //修改
obj1.sex = 20; //增加属性sex

js对象中属性名是不允许重复的,是唯一的,原来有就是修改,原来没有就是增加

//删除属性
var obj3 = {
name:'jack',
age:18
} delete obj3['name'] ;//彻底删除 再获取为undefined
obj3['age'] = null; //假删除,只是将当前属性的值为空,属性名还在 再获取为null

 数组对象

数组也是对象,并且数组对象的属性名是数字,我们称为数字属性名为当前对象的索引

var ary =[20,30,40];
ary['0'];//
ary[0]'//20
ary.0 ;//Uncaught SyntaxError: Unexpected number,语法错误
ary.length;//2
ary['length'];//2
ary.age=50 ; [20,30,40,age:50]

数组和对象的关系是啥?

数组是对象的一种细分,对象包含数组,对象拥有的数组一样可以拥有

数组对象属中依次递增的数字属性名叫做索引

思考题:

var obj4 = {name:'lilei'};
var name='hanmeimei';
obj4.name;
obj4['name'];
obj4[name];

答案:

obj4.name;//'lilei'
obj4['name'];// 'lilei'
obj4[name];//undefined 分析:'name'和name区别,
'name'是一个字符串的值
name是一个变量,不是值,代表的是它存储的值,这里没有这个name变量,所以是undefined

ECMAScript---object对象类型详解的更多相关文章

  1. 三:python 对象类型详解一:数字(上)

    一:python 的数字类型: a)整数和浮点数 b)复数 c)固定精度的十进制数 d)有理分数 e)集合 f)布尔类型 g)无穷的整数精度 h)各种数字内置函数和模块 二:各种数字类型的详解 1,数 ...

  2. 四:python 对象类型详解一:数字(下)

    一:位操作 除了一般的数学运算,python也支持c语言中的大多数数学表达式.这包括那些把整数当作二进制位串对待的操作.例如,还可以实现位移及布尔操作: >>> x = 1 > ...

  3. 七:python 对象类型详解三:列表

    一:列表简介: 1,列表可以包含任何种类的对象:数字.字符串甚至集合对象类型.列表都是可变对象,它们都支持在原处修改的操作,可以通过指定的偏移量和分片.列表方法调用.删除语句等方法来实现.关键的作用有 ...

  4. 六:python 对象类型详解二:字符串(下)

    一:字符串方法: 方法就是与特定对象相关联在一起的函数.从技术的角度来讲,它们是附属于对象的属性,而这些属性不过是些可调用的函数罢了.Python 首先读取对象方法,然后调用它,传递参数.如果一个方法 ...

  5. JavaScript中的对象类型详解

    To be finished 摘要 1.什么是对象? 2.引用类型和原始类型 3.对象数据属性拥有的特性(Attributes) 4.如何创建对象 a.直接定义 var mango={color:&q ...

  6. 十:python 对象类型详解六:文件

    一:文件 1.简介:内置open 函数会创建一个python 文件对象,可以作为计算机上的一个文件链接.在调用open 之后,可以通过调用返回文件对象的方法来读写相关外部文件.文件对象只是常见文件处理 ...

  7. 九:python 对象类型详解五:元组

    一:元组: 1,简单介绍:元组由简单的对象组构成.元组与列表非常类似,只不过元组不能在原处修改(它们)是不可变的,并且通常写成圆括号中的一系列项.虽然元组不支持任何方法调用,但元组具有列表的大多数属性 ...

  8. 八:python 对象类型详解四:字典

    一:字典通识: 1,字典通过键而不是偏移量来读取: 2,字典是任意对象的无序集合: 3,字典可变长.异构.任意嵌套: 4,字典属于可变映射类型: 5,对象引用表(散列表): 二:实际应用中的字典: 1 ...

  9. 五:python 对象类型详解二:字符串(上)

    一:常量字符串 常量字符串用起来相对简单,也许最复杂的事情就是在代码中有如此多的方法来编写它们. eg:单引号:'spam"m'   , 双引号: “spa'm” , 三引号:‘’‘... ...

随机推荐

  1. C#8.0 新增功能

    连载目录    [已更新最新开发文章,点击查看详细] C#8.0提供了许多增强功能 01 Readonly 成员 可将 readonly 修饰符应用于结构的任何成员. 它指示该成员不会修改状态. 这比 ...

  2. Linnux命令大全(vim)

    vim复制和粘贴的基本命令(注:需先退出编辑模式)    yy复制游标所在行整行.或大写一个Y. (常用)    2yy或y2y复制两行. (常用)    y^复制至行首,或y0.不含游标所在处字元. ...

  3. LINUX下查找大文件及大的文件夹

    原帖地址:https://www.cnblogs.com/iyoume2008/p/6105590.html 今天正好碰到这样的问题,在博客园中看到有以上地址的一篇文章,照着上面的操作解决了问题,但是 ...

  4. junit的Test不能使用,报错信息:Test is not an annotation type

    在使用junit的Test做测试时,注解@Test报错”Test is not an annotation type”,发现是因为测试类的类名命名为了Test,所以导致错误. 测试类类名不能直接命名为 ...

  5. Sublime 常用插件及配置

    一.把 tab 键修改转换成4个空格 1. 在菜单里选择 Preferences --> Settings 2. 在弹出来的设置面板选择右侧 --User,添加两行代码: "trans ...

  6. storm入门demo

    一.storm入门demo的介绍 storm的入门helloworld有2种方式,一种是本地的,另一种是远程. 本地实现: 本地写好demo之后,不用搭建storm集群,下载storm的相关jar包即 ...

  7. 写这篇博客之前,我又忘了“==”和equals的区别。

    没错.嘟嘟又把==号和equals 的区别给忘掉了 ==号比较基本类型的时候比的是值,比较引用类型的时候比较的是地址.equals比较基本类型的时候.... 脑子里关于这道题的答案好模糊好没有安全感 ...

  8. TCP queue 的一些问题

    转自Jasey Wang的blog,原文地址 首先回顾下三次握手里面涉及到的问题: 当 client 通过 connect 向 server 发出 SYN 包时,client 会维护一个 socket ...

  9. Android Studio 蓝牙开发实例——基于Android 6.0

    因项目需要做一个Android 的蓝牙app来通过手机蓝牙传输数据以及控制飞行器,在此,我对这段时间里写的蓝牙app的代码进行知识梳理和出现错误的总结. 该应用的Compile Sdk Version ...

  10. 百度网盘 人工智能书籍【Tensorflow和深度学习】

    链接:https://pan.baidu.com/s/1ejCvwn08ILI2fMhBEdXR8w 提取码:6pk9