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. 对象属性和类属性. 我们之前接触到,在类中,我们一般都是通过构造函数的方式去写一些类的相关属性.在第一次介绍类的时候我们把一些属性写到构造函数外面并没有用到构造函数,其实当时在写的时候,就是在给 ...
随机推荐
- 用 dnSpy 反编译调试 .NET 程序
dnSpy 官网下载:https://github.com/0xd4d/dnSpy/releases 运行需要 .NET Framework 4 环境:https://dotnet.microsoft ...
- ceph-----常用命令
#查看存储池 ceph osd lspools #设置存储池副本数 ceph osd pool set data size 3 #查看存储池具体信息 ceph osd pool ls detail # ...
- wpf prism IRegionManager 和IRegionViewRegistry
引入了一个新的问题,IRegionViewRegistry和IRegionManager都具有RegisterViewWithRegion方法,二者有区别么? 答案是——没有.我们已经分析过,在Uni ...
- Selenium 2自动化测试实战22(处理HTML5的视频播放)
一.处理HTML5的视频播放 大多数浏览器使用控件(如Flash)来播放视频,但是,不同的浏览器需要使用不同的插件.HTML5定义了一个新的元素<video>,指定了一个标准的方式来嵌入电 ...
- 安德鲁1.2Ku使用感受
看中玻璃钢天线了,华达太贵,安德鲁性价比比较高.就在上周,决定入一个试试.周二微信转账,380+120运费,安能物流送货上门,上周6中午午睡时接到电话.去广场拿货. 锅面包装很简单,纸壳与胶带简单粗暴 ...
- Django使用消息提示简单的弹出个对话框
1.下面就来介绍一下如何简单的显示一个消息提示,好像js可以控制,不过这里用了django.contrib.messages这个库 2.首先呢,在项目的settings.py有默认配置一个django ...
- apache thrift 入门(一)
1.简介 Apache Thrift软件框架,是用来开发可扩展的跨语言的软件服务.通过软件堆栈和代码生成引擎相结合的方式来构建服务,使C++, Java, Python, PHP, Ruby, Erl ...
- python的I/O编程:文件打开、操作文件和目录、序列化操作
1 文件读写 1.1 打开文件: open(r'D:\text.txt') 1.2 文件模式 值 功能描述 'r' 读模式 'w' 写模式 'a' 追加模式 'b' 二进制模式 '+' 读写模式 1. ...
- numpy array和mat的乘法
1.mat()函数中矩阵的乘积可以使用(星号) * 或 .dot()函数,其结果相同.而矩阵对应位置元素相乘需调用numpy.multiply()函数. a = np.mat([1, 2, 3]) ...
- 简单场景的类继承、复杂场景的类继承(钻石继承)、super、类的方法
1.python子类调用父类成员有2种方法,分别是普通方法和super方法 class Base(object): #基类的表示方法可以多种,Base(),Base,Base(object),即新式类 ...