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 对象(对象的分类、属性(属性名和属性值)、基本数据类型与引用数据类型区别)的更多相关文章

  1. C#基础(204)--对象初始化器,基本数据类型与引用数据类型特点总结,ref,out关键字的使用

    对象初始化器: 对象在创建过程中也可以使用对象初始化器完成“属性的初始化” Student stu =new Student(){ StudentId=, StudentName="张三&q ...

  2. C# static 字段初始值设定项无法引用非静态字段、方法或属性

    问题:字段或属性的问题字段初始值设定项无法引用非静态字段.方法 下面代码出错的原因,在类中定义的字段为什么不能用? public string text = test(); //提示 字段或属性的问题 ...

  3. js中对象的属性名和属性值

    代码 /** * 对象的属性名 * - 对象的属性名不强制遵循标识符的命名规范,可以是任意的名字,但在开发中 * 尽量遵循标识符的命名规范 */ // 创建对象obj1 var obj1 = new ...

  4. Object.assign()的用法 -- 用于将所有可枚举属性的值从一个或多个源对象复制到目标对象,返回目标对象

    语法: Object.assign(target, …sources) target: 目标对象,sources: 源对象用于将所有可枚举属性的值从一个或多个源对象复制到目标对象.它将返回目标对象. ...

  5. vue2.x版本中Object.defineProperty对象属性监听和关联

    前言 在vue2.x版本官方文档中 深入响应式原理 https://cn.vuejs.org/v2/guide/reactivity.html一文的解释当中,Object.defineProperty ...

  6. ES6扩展——对象的扩展(简洁表示法与属性名表达式)

    1.简洁表达法. 当属性名与属性值相同时,可省略属性值:例如:{name : name}可以写成 {name} 属性方法中,可省略冒号与function,直接 属性名(){}即可.例如{say : f ...

  7. 一个高性能的对象属性复制类,支持不同类型对象间复制,支持Nullable<T>类型属性

    由于在实际应用中,需要对大量的对象属性进行复制,原来的方法是通过反射实现,在量大了以后,反射的性能问题就凸显出来了,必须用Emit来实现. 搜了一圈代码,没发现适合的,要么只能在相同类型对象间复制,要 ...

  8. js对象的属性:数据(data)属性和访问器(accessor)属性

    此文为转载,原文: 深入理解对象的数据属性与访问器属性 创建对象的方式有两种:第一种,通过new操作符后面跟Object构造函数,第二种,对象字面量方式.如下 var person = new Obj ...

  9. Python笔记_第三篇_面向对象_8.对象属性和类属性及其动态添加属性和方法

    1. 对象属性和类属性. 我们之前接触到,在类中,我们一般都是通过构造函数的方式去写一些类的相关属性.在第一次介绍类的时候我们把一些属性写到构造函数外面并没有用到构造函数,其实当时在写的时候,就是在给 ...

随机推荐

  1. mandatory argument 'crshome' is missing

    1. 错误信息 在oracle  10.2.0.4 to 11.1.0.6 的各个版本中,尽管变量ORA_CRS_HOME设置正确,也会遇到如下错误: # ./diagcollection.pl -c ...

  2. [SPSS]如何利用spss进行单侧检验

    根据网上经验来看,结论如下: 单双侧t检验,t值不变,p值除以2即为单侧p值.

  3. 解决SpringCloud使用Feign跨服调用时header请求头中的信息丢失

    在使用SpringCloud进行Feign跨服调用时header请求头中的信息会丢失,是因为Feign是不会带上当前请求的Cookie信息和头信息的,这个时候就需要重写请求拦截. 1.需要重写Requ ...

  4. 阶段3 3.SpringMVC·_07.SSM整合案例_06.ssm整合之编写MyBatis框架

    需要先搭建Mybits的环境. 用Mybits的注解的方式.把两个方法的sql语句写完 SqlMapConfig.xml resources下新建xml文档 把约束粘贴过来 两步操作 环境标签叫做en ...

  5. 五十一:数据库之Flask-Migrate详解

    在实际开发中,经常会发生数据库修改行为,一般数据库修改不是直接手动修改,而是去修改ORM模型,然后再把模型映射到数据库中,这些操作可以通过flask-migrate实现,flask-migrate是基 ...

  6. 如何用 putty 连接远程 Linux 系统

    如何用 putty 连接远程 Linux 系统 Putty 简介 Putty 是一个免费的.Windows x86 平台下的 Telnet.SSH 和 Rlogin 客户端,但是功能丝毫不逊色于商业的 ...

  7. java:easyui(重点示例)

    1.accordion(可折叠的): <!doctype html> <html lang="zh"> <head> <title> ...

  8. 数据中心网络中的40GBASE-T

    数据中心网络基础设施正在见证由不断增长的带宽和网络性能需求推动的变革.10 千兆位以太网是当今数据中心的实际标准,而 40G 以太网的采用率越来越高.虽然 40G 以太网标准已存在于 SM 光纤和基于 ...

  9. 【HANA系列】SAP HANA SQL获取某字符串的位置

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA SQL获取某字 ...

  10. 外连接的用法 -- 《SQL进阶教程》 jupyter note

    import pandas as pd import sqlite3 conn = sqlite3.connect('1-5.db') 用外连接进行行列转换1(行 -> 列): 制作交叉表 怎么 ...