提示
本文主要介绍 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个属性,分别为 name
、age
和 gender
。
# 修改属性
给一个对象新增属性有2种语法,分别为:
person.name = "ermo";
console.log(person);
person['age'] = 18;
console.log(person);
从控制台输出 person
对象可以看出,name
属性的值修改为 ermo
,age
属性的值修改为 18
。
# 增加属性
增加对象的属性和修改语法相同,如果当前对象中已存在某个属性时,就是修改,反之就是新增属性。
person.email = 'ermo@qq.com';
person['passowrd'] = "123456";
console.log(person);
上例中给 person
对象新增了两个属性,分别为 email
和 password
。
# 获取属性
访问对象中的属性同样有2种语法:
console.log(person.name);
console.log(person['age']);
# 删除属性
使用 delete
关键字可以将对象的属性删除,语法如下:
delete person.name;
delete person['age'];
console.log(person);
上例中将 person
对象中的 name
和 age
属性删除。
# 内置对象
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
,其中数组中有三个元素,分别是 Hello
、JavaScript
和 Easy
。
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
进行分割。