龙空技术网

JavaScript的object对象初步了解

菁瑞优智 195

前言:

而今看官们对“js判断是字符串还是对象”大概比较珍视,咱们都需要剖析一些“js判断是字符串还是对象”的相关知识。那么小编也在网络上网罗了一些对于“js判断是字符串还是对象””的相关知识,希望姐妹们能喜欢,同学们快快来学习一下吧!

学编程的都知道:万物皆对象。活的死的动的静的,可以说一切客观存在的东西都可以称做对象。

今天我们要学习的是JavaScript中的对象。

我们常说“面向对象的编程”,在JavaScript中,对象也是最重要的内容。

在老家常把谈恋爱说成“找对象”,那么这里的对象是一个人,在JavaScript中,几乎“所有事物”都是对象。

布尔是对象(如果用 new 关键词定义) 数字是对象(如果用 new 关键词定义) 字符串是对象(如果用 new 关键词定义) Date永远都是对象 Math永远都是对象 正则表达式RegExp永远都是对象 数组Array永远都是对象 函数Function永远都是对象 对象Object永远都是对象

所有 JavaScript 值,除了原始值(number、string、boolean、undefined,null),都是对象。

原始数据类型指的是拥有原始值的数据。原始值没有属性或方法。

原始值是一成不变的,比如“school”这个字符串,3.14这个数字,它们的值是不变的。

一、对象是变量

常规的变量包含一个值,但是对象可以包含很多值。对象是有值的变量的集合。

这些值以名称:值键值对(名称和值以冒号分隔)的形式写入。

JavaScript

var person = {    firstName:"John",     lastName:"Doe",     age:50,     eyeColor:"blue"};

object对象中的变量名称被叫做“属性”。

对象属性可以是原始值、其他对象以及函数。

这里的函数就是对象的方法。是一个可以执行的动作。

对象的方法就是包含了函数声明的对象属性。

JavaScript

var person = {    firstName:"John",     lastName:"Doe",     age:50,     eyeColor:"blue",    fullName:function(){        return this.firstName+" "+this.lastName;    }};
二、创建一个对象

有不同的方法来创建对象:

定义和创建单个对象,使用对象字面量。 定义和创建单个对象,通过关键词 new。 定义对象构造函数,然后创建构造类型的对象。

在 ECMAScript 5 中,也可以通过函数 Object.create() 来创建对象。

1、使用对象字面量

这是创建对象最简单的方法。

JavaScript

var person = {    firstName:"Bill",    lastName:"Gates",    age:62,    eyeColor:"blue"};

2、使用new的方式创建

JavaScript

class="prism-highlight prism-language-javascript"var person = new Object();person.firstName = "Bill";person.lastName = "Gates";person.age = 50;person.eyeColor = "blue";

出于简易性、可读性和执行速度的考虑,使用对象字面量的方式更好。

三、对象是易变的

因为对象它们是通过引用来寻址,而非值。

不像原始数据类型,是值的传递。

所以,把对象赋值给另一个变量, 并不是创建了对象的副本,产生了新的对象,而是只是把对象的地址给了新的变量,它们都共同指向同一个对象。

JavaScript

var x = person;  // 这不会创建 person 的副本。

对象 x 并非 person 的副本。它就是 person。x 和 person 是同一个对象。

对 x 的任何改变都将改变 person,因为 x 和 person 是相同的对象。

JavaScript

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}var x = person;x.age = 10;           // This will change both x.age and person.age
四、访问属性和方法

1、访问属性的两种方法

JavaScript

objectName.property   objectName["property"]

在点语法中,property属性名称是一个有效的 JavaScript 标识符,例如,一串字母数字字符,也包括下划线及美元符号,但不能以数字作为开头。比如,object.$1是合法的,而 object.1是无效不合法的。这就是为什么数组不能用点语法访问值的原因了。

在[ ]语法中,property是一个字符串。该字符串不一定是一个合法的标识符;它可以是任意值,例如,"1foo","!bar!",甚至是 " "(一个空格),也可以是一个传递过来的变量。

属性名称必须是字符串或符号 Symbol。这意味着非字符串对象不能用来作为一个对象属性的键。任何非字符串对象,包括 Number,都会通过 toString 方法,被转换成一个字符串。

JavaScript

var object = {};object['1'] = 'value';console.log(object[1]); //value

上述代码的输出为"value",因为 1 被类型转换为'1'。

JavaScript

var foo = {unique_prop: 1}, bar = {unique_prop: 2}, object = {};object[foo] = 'value'; //被toString()转成了object["[object Object]"]="value"console.log(object[bar]); //value

上述的代码的输出也是 "value",由于对象 foo 和 bar 都会被转成相同的字符串。在SpiderMonkey JavaScript 引擎中,这个字符串是 "[object Object]"。

2、访问方法

只能通过点语法访问对象的方法。

JavaScript

objectName.methodName()

以上就是JavaScript的object对象初步了解的全部内容。目前为止我们使用的大多数引用类型都是object实例,object类型也是ECMAScript中使用最多的类型,主要用于储存和传输数据。

标签: #js判断是字符串还是对象 #javascript中的object