Javascript对象

对象概述

  对象是一组无序的相关属性和函数的集合。它的表现形式是一组无需的键值对,其中键包括属性名和函数名,值可以是JavaScript任意数据类型。对象中的函数也被称为方法。

var cc={
name:'菜菜',
sayHi:function(){
alert('大家好,我是菜菜');
}
}

上述代码,创建了一个名为bdd的对象,包含一个name属性和一个sayHai()方法。 

创建对象

  JavaScript创建对象的常用方式有两种,一种是使用对象直接量创建对象,一种是使用new Object()方法创建对象。

1.  使用对象直接量创建对象 对象直接量创建对象是一种简洁、易阅读的方式。对象直接量是由若干键/值对组成的映射表,每对键/值对中的键和值之间使用冒号分隔,不同键/值对用逗号分隔。整个映射表用花括号“{}”括起来

var obj={};//创建一个名为obj的空对象
var cc={//创建一个名为xrr的对象
name:'菜菜';
sayHai:function(){
alert('大家好,我是菜菜');
}
}

2.使用new Object()方法创建对象 Object是JavaScript的一种数据类型,用于存储各种键值集合和更复杂的实体。 new运算符用于创建对象。语法格式如下。 new constructor[([arguments])]         constructor是一个指定类型的类或函数。arguments是一个用于被 constructor 调用的参数列表。 对象可以通过new Object ()方法创建,

var object=new object;//创建一个名为object的空对象
object.name='大采购';
object.sayHai(){//增加方法
alert('大家好,好好学习天天向上');}}
var date=new Date();//创建日期对象

 对象里面的变量称为属性,不需要声明,用来描述该对象的特征。 对象里面的函数称为方法,不需要声明,用来描述该对象的行为。

访问对象

访问对象中的属性和方法可以使用以下三种方式。

1.点号访问方式 对象实例名.属性名或对象实例名.方法名(实参列表)

2.方括号访问方式 对象实例名['属性名']或对象实例名['方法名'](实参列表)

3.使用for-in遍历对象 遍历对象是对对象的每一个属性进行访问。JavaScript使用for-in语句进行遍历。语法格式如下。 for (var key in object) {  循环代码块; } 每次迭代时,key代表不同的属性名。object代表被迭代的对象。

eg: 定义了对象,它包含两个属性position和BombNum,两个方法shot()和move()。其中position属性的值是一个对象。因此可以使用tank.position.XPosition、 tank['BombNum']访问XPosition和BombNum的值;使用tank.move()、tank['shot']()执行移动和发射炮弹的动作。

var tank={
position:{
xposition:0;
yposition:0;
}
bombnum:2,
shot:function(){
console.log("坦克发射");}
move:function(){
console.log("坦克移动")}
}
console.log(tank.position.xposition,tank['bombnum']);

let person={
name:'坏东西',
gender:'女',
age:'20'}
//向对象中添加新的属性
person.height=158
//删除属性
delete person.age
console.log("person",person)
//检查对象是否包含指定属性
let has="age"in person
console.log("has",has)

常用内置对象

       JavaScript对象分为3种:自定义对象、内置对象和浏览器对象。自定义对象由开发者自定义,内置对象由ECMAScript提供,浏览器对象包括DOM和BOM。本节将介绍常用的内置对象,浏览器对象在后续章节介绍。          

     JavaScript提供了丰富且功能强大的内置对象,常用内置对象包括Math 对象、Array对象、Date对象和String对象等。本节主要介绍Math 对象、Date对象和String对象。

Math是一个内置对象,它拥有一些数学常数属性和数学函数方法。Math 的所有属性与方法都是静态的,使用时不需要创建Math对象,直接使用Math对象名来访问属性或方法,如Math.PI、Math.max()。

abs()//返回绝对值
ceil()//返回大于变量的最小整数
floor()//返回小于变量的最大整数
max()//返回最大值
min()//返回最小值
pow()//计算次方
sqrt()//返回平方根
round()//对浮点数进行四舍五入
random()//返回一个浮点数,伪随机数范围从到一

基本数据类型和复杂数据类型

      JavaScript数据类型分为基本数据类型和复杂数据类型(复杂数据类型也称为引用数据类型)两类。基本数据类型包含了number(数字)类型、string(字符串)类型、boolean(布尔)类型、undefined(未定义)类型、null(空)类型;复杂数据类型就是对象类型,包含了对象、数组、函数。下面介绍他们在内存分配、赋值和比较时的区别。

1. 内存分配 基本数据类型变量分配在栈内存中,其中存放了变量的值,对其是按值来访问。复杂数据类型变量同时分配栈内存和堆内存,其中堆内存存放值,栈内存存放堆内存地址,对其是按引用访问。

  2 赋值 基本类型在从一个变量向另一个变量赋值时,会在该变量上创建一个新值,然后再把该值复制到新变量内存中。基本类型在赋值操作后,两个变量是相互不受影响的。示例如下。 var a = 9; var b = a; b++; console.log(a);// 输出:9 上述代码中,变量a在给b赋值后,相互不受影响,a的值是9,b的值是10。 复杂类型保存在变量中的是对象在堆内存中的地址,赋值操作后,两个变量都保存了同一个对象地址,这两个变量指向了同一个对象。因此,改变其中任何一个变量,都会相互影响。示例如下。 var a = [1, 2, 3]; var b = a; b[0] = 66; console.log(a); // 输出:[66,2,3] 上述代码中,数组是复杂数据类型,变量a在给b赋值后,a和b指向同一个数组,任何的操作都会相互影响。

3.比较 基本类型的比较是值的比较,只有在它们的值相等的时候它们才相等。引用类型的比较是比较两个对象的堆内存中的地址是否相同。示例如下。 var obj1 = '{}'; var obj2 = '{}'; console.log(obj1 == obj2); // 输出:true var obj3 = {}; var obj4 = {}; console.log(obj3 == obj4); //  输出:false 上述代码中,obj1和 obj2是基本类型,值相等。obj3和obj4是对象类型,是两个不同的对象,在堆内存中的地址不相同,因此比较时不相等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值