蓝旭24春季培训-第四周预习-JS进阶+复习

一、JavaScript对象

(一)赋值

1、单一值

这段代码把一个单一值(porsche)赋给名为 car 的变量

var car = "porsche";

2、多个值

对象也是变量,但是对象包含很多值
这段代码把多个值(porsche, 911, white)赋给名为 car 的变量

var car = {type:"porsche", model:"911", color:"white"};

值以名称:值对的方式来书写(名称和值由冒号分隔)
JavaScript 对象是被命名值的容器。

(二)对象属性

1、定义:

名称:值对被称为属性。

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

2、访问属性方法

访问属性有两种方法: .property 或 [“property”]
以.property为例:

var person = {
  firstname:"Bill",
  lastname:"Gates",
  age:62,
  eyecolor:"blue"
};

document.getElementById("demo").innerHTML = person.firstname + " is " + person.age + " years old.";

在这里插入图片描述

3、遍历属性

for...in语句遍历对象的属性。

var txt = "";
var person = {fname:"Bill", lname:"Gates", age:62}; 
var x;
for (x in person) {
  txt += person[x] + " ";
}
document.getElementById("demo").innerHTML = txt;

在这里插入图片描述

4、添加新属性

可以通过简单的赋值,向已存在的对象添加新属性,但不能使用预留词作为属性名(或方法名)。

var person = {
/*原有属性*/
  firstname:"Bill",
  lastname:"Gates",
  age:62,
  eyecolor:"blue"
};
/*添加新属性*/
person.nationality = "English";

document.getElementById("demo").innerHTML =
person.firstname + " is " + person.nationality + ".";

在这里插入图片描述

5、删除属性

delete 关键词从对象中删除属性

var person = {
/*原属性*/
  firstname:"Bill",
  lastname:"Gates",
  age:62,
  eyecolor:"blue"
};
/*删除属性*/
delete person.age;
/*属性删除后属性的值变为undefined*/
document.getElementById("demo").innerHTML =
person.firstname + " is " + person.age + " years old.";

在这里插入图片描述
delete 关键词会同时删除属性的值和属性本身。
删除完成后,属性在被添加回来之前是无法使用的。
delete 操作符被设计用于对象属性。它对变量或函数没有影响。
delete 操作符不应被用于预定义的 JavaScript 对象属性。这样做会使应用程序崩溃。

(三)对象方法

1、定义

方法是在对象上执行的动作。
方法以函数定义被存储在属性中。

2、访问对象方法

// 创建对象:
var person = {
    firstName: "Bill",
    lastName : "Gates",
    id       : 12345,
    fullName : function() {
       return this.firstName + " " + this.lastName;
    }
};

// 显示对象中的数据:
document.getElementById("demo").innerHTML = person.fullName();

如果访问 fullName 属性时没有使用 (),则将返回函数定义:

document.getElementById("demo").innerHTML = person.fullName;

在这里插入图片描述

3、使用内建方法

使用 String 对象的 toUpperCase() 方法,把文本转换为大写:

var message = "Hello world!";
var x = message.toUpperCase();

4、添加新的方法

向对象添加方法是在构造器函数内部完成的:

function person(firstName, lastName, age, eyeColor) {
    this.firstName = firstName;  
    this.lastName = lastName;
    this.age = age;
    this.eyeColor = eyeColor;
    this.changeName = function (name) {
        this.lastName = name;
    };
}

changeName() 函数 name 的值赋给了 person 的 lastName 属性。

(四)显示对象

1、显示对象

document.getElementById("demo").innerHTML = person;

在这里插入图片描述

2、显示对象属性

const person = {
  name: "Bill",
  age: 19,
  city: "Seattle"
};

let txt = "";
for (let x in person) {
  txt += person[x] + " ";
};

document.getElementById("demo").innerHTML = txt;

在这里插入图片描述

3、在循环中显示对象

const person = {
  name: "Bill",
  age: 19,
  city: "Seattle"
};

let txt = "";
for (let x in person) {
txt += person[x] + " ";
};

document.getElementById("demo").innerHTML = txt;

在这里插入图片描述
在循环中必须使用 person[x]。person.x 将不起作用(因为 x 是一个变量

4、使用 Object.values()

const person = {
  name: "Bill",
  age: 19,
  city: "Seattle"
};

document.getElementById("demo").innerHTML = Object.values(person);

在这里插入图片描述

5、使用 JSON.stringify()

(1)将对象字符串化
const person = {
  name: "Bill",
  age: 19,
  city: "Seattle"
};

document.getElementById("demo").innerHTML = JSON.stringify(person);

在这里插入图片描述

(2)日期字符串化
var person = {
  name: "Bill",
  today: new Date()
};

document.getElementById("demo").innerHTML = JSON.stringify(person);

在这里插入图片描述

(3)不能对函数进行字符串化
const person = {
  name: "Bill",
  age: function () {return 19;}
};

document.getElementById("demo").innerHTML = JSON.stringify(person);

在这里插入图片描述

(4)可以将数组字符串化
const arr = ["Bill", "Steve", "Elon", "David"];
document.getElementById("demo").innerHTML = JSON.stringify(arr);

在这里插入图片描述

(五)对象访问器(Getter 和 Setter)

1、Getter

// 创建对象:
var person = {
  firstName: "Bill",
  lastName : "Gates",
  language : "en",
  get lang() {
    return this.language;
  }
};
// 使用 getter 显示来自对象的数据:
document.getElementById("demo").innerHTML = person.lang;

在这里插入图片描述

2、Setter

// Create an object:
var person = {
  firstName: "Bill",
  lastName : "Gates",
  language : "en",
  set lang(value) {
    this.language = value;
  }
};
// 使用 set 设置属性:
person.lang = "zh";
// 显示对象的数据:
document.getElementById("demo").innerHTML = person.language;

在这里插入图片描述
使用 getter 和 setter 时,JavaScript 可以确保更好的数据质量。

二、JavaScript事件

HTML 事件是发生在 HTML 元素上的“事情”。
当在 HTML 页面中使用 JavaScript 时,JavaScript 能够“应对”这些事件。
在下面的例子中,onclick 属性(以及代码)被添加到 <button> 元素:

<button onclick="document.getElementById('demo').innerHTML=Date()">时间是?</button>

在这里插入图片描述
在这里插入图片描述
同时,可以改变其自身元素的内容

<button onclick="this.innerHTML=Date()">时间是?</button>

在这里插入图片描述
在这里插入图片描述
还可以使用事件调用函数

function displayDate() {
    document.getElementById("demo").innerHTML = Date();
}

常见事件
在这里插入图片描述

  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值