Object 对象(对象的分类、属性(属性名和属性值)、基本数据类型与引用数据类型区别)
Object——引用数据类型
基本数据类型的不足之处:基本数据类型是单一的值,不能表现出值与值之间的所属关系
object分为内建对象、宿主对象和自定义对象
a 内建对象:ES标准中定义的对象,在任何ES的实现中都可以使用;例如:Math String等。
b 宿主对象:由JS运行的浏览器提供的对象,目前主要是指浏览器提供的对象;例如:BOM DOM.
c自定义对象:由开发人员自己创建的对象。
属性名和属性值
例如,先创建一个新的对象 var obj = newObject(); 向新创建的对象中添加属性 obj.name =“陈飘”;
此时这里的name为属性名 “陈飘”为属性值
注意:
a 属性名不强制遵守标识符规范,但是尽量遵守标识符的规范,如果使用了特殊的属性名,则不可以使用 object.属性名=属性值的方式添加对象属性,需要使用 object["属性名“]=属性值,同时在取读时也需要使用该方式。
b属性值可以是任意数据类型,甚至可以是一个对象。
c in运算符:通过这个运算符可以检查一个对象是否含有指定的属性,如果有则返回true,否则返回false。
语法: ”属性名“in obj
例如:console.log("test" in obj);
关于属性的总结:
添加属性 :obj.属性名=属性值;
取读属性:obj.属性名 例如:console.log(obj.gender); 注意:如果没有该属性会返回undefined并不会报错。
修改属性:obj.属性名=新的属性值;
删除属性:delete obj.属性名
基本数据类型和引用数据类型的区别:
基本数据类型:String Boolean Number Undfined Null
引用数据类型:Object
区别:
基本数据类型:js的变量保存在栈内存中,变量的值也是直接保存在栈内存中;值与值之间是彼此独立的,一个值的修改仅仅影响自身。
var a =12; var b = a; a++;
以上 输出 a = 13 b=12 两者是互不影响的
变量在栈内存中保存显示 变量名+值
引用数据类型:创建一个对象时会在堆内存中开辟一个空间,用来存放对象的属性。在为对象添加属性时,是将属性放在堆内存中开辟的空间里。
在栈内存中保存显示 对象名 +一个地址(类似于指针,指向堆内存中该对象开辟的空间)
var obj = New object(); obj.name="陈飘"; var obj2 = obj; obj2.name =“阿飘”;
此时name=阿飘。值已经被修改,因为两个对象指向同一个地址
注意 当obj2.name= Null; 时 name= 陈飘 切断了该对象和地址的联系。

Object 对象(对象的分类、属性(属性名和属性值)、基本数据类型与引用数据类型区别)的更多相关文章
- C#基础(204)--对象初始化器,基本数据类型与引用数据类型特点总结,ref,out关键字的使用
对象初始化器: 对象在创建过程中也可以使用对象初始化器完成“属性的初始化” Student stu =new Student(){ StudentId=, StudentName="张三&q ...
- C# static 字段初始值设定项无法引用非静态字段、方法或属性
问题:字段或属性的问题字段初始值设定项无法引用非静态字段.方法 下面代码出错的原因,在类中定义的字段为什么不能用? public string text = test(); //提示 字段或属性的问题 ...
- js中对象的属性名和属性值
代码 /** * 对象的属性名 * - 对象的属性名不强制遵循标识符的命名规范,可以是任意的名字,但在开发中 * 尽量遵循标识符的命名规范 */ // 创建对象obj1 var obj1 = new ...
- Object.assign()的用法 -- 用于将所有可枚举属性的值从一个或多个源对象复制到目标对象,返回目标对象
语法: Object.assign(target, …sources) target: 目标对象,sources: 源对象用于将所有可枚举属性的值从一个或多个源对象复制到目标对象.它将返回目标对象. ...
- vue2.x版本中Object.defineProperty对象属性监听和关联
前言 在vue2.x版本官方文档中 深入响应式原理 https://cn.vuejs.org/v2/guide/reactivity.html一文的解释当中,Object.defineProperty ...
- ES6扩展——对象的扩展(简洁表示法与属性名表达式)
1.简洁表达法. 当属性名与属性值相同时,可省略属性值:例如:{name : name}可以写成 {name} 属性方法中,可省略冒号与function,直接 属性名(){}即可.例如{say : f ...
- 一个高性能的对象属性复制类,支持不同类型对象间复制,支持Nullable<T>类型属性
由于在实际应用中,需要对大量的对象属性进行复制,原来的方法是通过反射实现,在量大了以后,反射的性能问题就凸显出来了,必须用Emit来实现. 搜了一圈代码,没发现适合的,要么只能在相同类型对象间复制,要 ...
- js对象的属性:数据(data)属性和访问器(accessor)属性
此文为转载,原文: 深入理解对象的数据属性与访问器属性 创建对象的方式有两种:第一种,通过new操作符后面跟Object构造函数,第二种,对象字面量方式.如下 var person = new Obj ...
- Python笔记_第三篇_面向对象_8.对象属性和类属性及其动态添加属性和方法
1. 对象属性和类属性. 我们之前接触到,在类中,我们一般都是通过构造函数的方式去写一些类的相关属性.在第一次介绍类的时候我们把一些属性写到构造函数外面并没有用到构造函数,其实当时在写的时候,就是在给 ...
随机推荐
- ssh不输入密码
要通过跳转机器远程其他的机器 不方便使用秘钥 每次都要输入密码也很烦 使用sshpass可以复制一行命令就直接登录了 我的跳板机是Centos7安装sshpass很简单 直接如下搞定 yum inst ...
- ModuleNotFoundError: No module named '_sqlite3'的解决办法:pipenv的用法
export PIPENV_VENV_IN_PROJECT=1pipenv --venvpipenv --where pipenv install -r requirements.txtpipenv ...
- Request.Params用法,后台接收httpget参数
使用Request.Params["id"]来获取参数是一种比较有效的途径. request.params其实是一个集合,它依次包括request.querystring.requ ...
- 数据解析框架之FastJson
演示实体类 import java.util.List; public class Student { public String name; public int age; public List& ...
- java.sql.SQLException: Listener refused the connection with the following error: ORA-12505, TNS:list
package DisplayAuthors; import java.sql.*; public class DisplayAuthors { private static final Str ...
- Cinder AZ 与 Nova AZ 的同步问题
问题 今天处理了一个 Boot from volume 失败的问题,错误日志给出了明确的原因:The instance and volume are not in the same AZ. Build ...
- Ceph 客户端的 RPM 包升级问题
问题 最近想把一个现有的 Ceph 客户端升级为最新的 M 版: [root@overcloud-ovscompute-0 ~]# rpm -qa | grep ceph puppet-ceph-2. ...
- Win10资源管理器始终使用详细视图模式
Win10系统中使用资源管理器时,如果文件夹里有音乐文件就自动切换视图模式为音乐模式,这样有时确实很头疼,看不到文件的大小等信息. 解决的办法如下: 新创建FolderType = NotSpecif ...
- 异常之【You have an error in your SQL syntax】
异常如下: ### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException ...
- Python爬虫学习==>第十一章:分析Ajax请求-抓取今日头条信息
学习目的: 解决AJAX请求的爬虫,网页解析库的学习,MongoDB的简单应用 正式步骤 Step1:流程分析 抓取单页内容:利用requests请求目标站点,得到单个页面的html代码,返回结果: ...