提示

本文主要介绍 JavaScript 的对象基本使用。@ermo

# 对象

js 是一门面向对象(Object Oriented)的语言,将现实生活中的事物抽象为对象,对象中包含一些属性(变量)和行为(方法)。

在 js 中对象属于引用类型,分为自定义对象和内置对象。内置对象就是 js 语言自带的对象,无需开发人员自己创建。

# 自定义对象

前面几章学习到的都是 js 中的基本类型,比如数字、布尔等。对象也是一种复杂的数据类型,属于引用类型。

# 创建对象

对象的创建很简单,一个空对象的语法如下:

var obj = {};
console.log(obj);

也可以创建带有属性(值)的对象,对象内的每个属性通过 key: value 的键值对形式定义。 通常 key 称为键,value 称为值。

var person = {
    name: '张三', 
    age: 12, 
    gender: true
};
console.log(person);

上例中创建了一个变量名为 person 的对象,其中包含3个属性,分别为 nameagegender

# 修改属性

给一个对象新增属性有2种语法,分别为:

person.name = "ermo";
console.log(person);

person['age'] = 18;
console.log(person);

从控制台输出 person 对象可以看出,name 属性的值修改为 ermoage 属性的值修改为 18

# 增加属性

增加对象的属性和修改语法相同,如果当前对象中已存在某个属性时,就是修改,反之就是新增属性。

person.email = 'ermo@qq.com';
person['passowrd'] = "123456";
console.log(person);

上例中给 person 对象新增了两个属性,分别为 emailpassword

# 获取属性

访问对象中的属性同样有2种语法:

console.log(person.name);
console.log(person['age']);

# 删除属性

使用 delete 关键字可以将对象的属性删除,语法如下:

delete person.name;
delete person['age'];
console.log(person);

上例中将 person 对象中的 nameage 属性删除。

# 内置对象

js 对象中的内置对象无需开发人员自己创建,内置对象也包含属性和方法。

接下学习一些常用的内置对象,以及它们的属性和方法。

# 字符串对象(String)

(1)获取字符串长度

获取字符串长度是学习的第一个字符串属性,使用方法为 变量.length

var str = 'Hello JavaScript';
// 获取字符串长度
console.log(str.length); // 16

(2)字符串大小写转换

使用字符串对象的内置方法语法为 变量.方法名(),和方法的调用相同,在方法名后面要加上成对的小括号。

var str = 'Hello JavaScript';
// 将字符串转换为全小写
console.log(str.toLowerCase()); // hello javascript
// 将字符串转换为全大写
console.log(str.toUpperCase()); // HELLO JAVASCRIPT

(3)获取对应索引下标的字符

计算机中的位置都是从0开始的,字符所在的位置在计算机称为索引(下标)。

var str = 'Hello JavaScript';
// 获取对应索引下标的字符
console.log(str.charAt(1)); // e

(4)在字符串中查找指定字符串

var str = 'Hello JavaScript';
console.log(str.indexOf("Java")); // 6
console.log(str.indexOf("ermo")) // -1

indexOf 方法的作用就是在字符中查询指定字符串,并返回查询字符串第一个字符的索引下标,如果查询不到就返回-1。

(5)截取字符串

var str = 'Hello JavaScript';
var substringStr = str.substring(1, 7);
console.log(substringStr); // ello J

var substringStr1 = str.substring(7);
console.log(substringStr1); // avaScript

substring 方法的作用就是截取 [start, end) 对应索引下标的字符串并返回。start 代表起始索引位置,end 代表结束索引位置。这里要注意,截取的字符串不包含结束索引位置的字符。索引下标依旧是从0开始。

上例中 substring(1, 7) 的含义就是截取字符串 str 索引1~6对应的字符串并返回。

如果 substring 方法只传入一个参数,传入参数就是起始位置索引,截取的范围就是从起始位置到字符串的结尾。

上例中 substringStr1 返回的就是从索引7开始整个 str 之后的字符串,即 avaScript

(6)替换字符串

replace('原字符串', '需要替换的字符串') 方法可以替换字符串中的一部分子字符串并返回。

var str = 'Hello JavaScript';
var s = str.replace('JavaScript', 'ermo');
console.log(s); // Hello ermo

(7)分割字符串

split("分隔符") 可以将字符串按照指定的分隔符转换为一个数组并返回。

var str = 'Hello JavaScript Easy';
var arr = str.split(' ');
console.log(arr);
for(var i = 0; i < arr.length; i++) {
    console.log(arr[i]);
}

上例中将 str 字符串分割为一个数组 arr,其中数组中有三个元素,分别是 HelloJavaScriptEasy

var str = 'Hello-JavaScript-Easy';
var arr = str.split('-');
console.log(arr);
for(var i = 0; i < arr.length; i++) {
    console.log(arr[i]);
}

分隔符可以根据实际开发需要来填写,比如上例中就可以通过 - 对字符串 str 进行分割。

# 数组对象(Array)

上次更新: 8/9/2022, 9:55:58 PM