对象概述
对象是一组无序的相关属性和函数的集合。它的表现形式是一组无序的键值对,其中包括属性名和函数名,值可以是JavaScript任意数据类型。对象中的函数也被称为方法。
var student={
sno:'123456',
sname:'张三',
sage:'18',
sayHi:function(){
alert('大家好,我是张三');
}
}
以上创建了一个名为student的对象,包括三个属性和一个方法。
创建对象
JavaScript创建对象的常用方式有两种,一种是使用对象直接创建对象,一种是使用new object()方法创建对象。
1.使用对象直接创建对象
对象直接创建是一种简洁,易阅读的方式。对象直接量是由若干键值对组成的映射表,每对键值对中的键和值之间使用冒号分割,不同键值对用逗号分隔。整个映射表用{}括起来。
var object={}//创建一个名为object的空对象
var student={//创建一个student对象
sno:'123456'
sname:'张三'
saihi:function(){
alert('大家好,我是张三')
}
}
2.使用new object()方法创建对象
object是JavaScrip的一种数据类型,用于储存各种键值集合和更复杂的实体。
new运算用于创建对象。语法格式如:new constructor}[{[arguments]}]
constructor是一个指定类型的类或函数,arguments是一个用于被constructor调用的参数列表。
var student=new Object();//创建一个名为student的空对象
student.sno='202232';
student.sname='张三';//增加属性
student.sayhi=function()//增加方法
{
alert('大家好,我是张三');
}
}
var date=new Date();//创建日期对象
var arr=new Array();//创建对象数组
对象里面的变量称为属性,不需要声明,用来描述该对象的特征。
对象里面的函数成为方法,不需要声明,用来描述对象的行为。
访问对象
访问对象的方式有三种:(1)点号访问方式(2)方括号访问方式(3)使用for循环遍历对象。
1.
// 创建一个对象
var person = {
firstName: "John",
lastName: "Doe",
age: 30,
fullName: function() {
return this.firstName + " " + this.lastName;
}
};
// 使用点号访问对象的属性
console.log(person.firstName); // 输出:"John"
console.log(person.age); // 输出:30
// 使用点号调用对象的方法
console.log(person.fullName()); // 输出:"John Doe"
2.
// 创建一个对象
var person = {
firstName: "John",
lastName: "Doe",
age: 30
};
// 使用方括号访问对象的属性
console.log(person["firstName"]); // 输出:"John"
console.log(person["age"]); // 输出:30
// 使用变量来访问对象的属性
var propertyName = "lastName";
console.log(person[propertyName]); // 输出:"Doe"
3.
// 创建一个对象
var person = {
firstName: "John",
lastName: "Doe",
age: 30
};
// 使用 for...in 循环遍历对象的属性
for (var key in person) {
console.log(key + ": " + person[key]);
}
常用内置对象
JavaScript 中有许多常用的内置函数,它们提供了丰富的功能和操作,从字符串操作到数学计算,再到日期处理等。以下是一些常见的内置函数及其功能
parseInt() 和 parseFloat():用于将字符串转换为整数或浮点数。parseInt() 将字符串解析为整数,parseFloat() 将字符串解析为浮点数。
String():用于将其他数据类型转换为字符串。
Number():用于将其他数据类型转换为数字。
isNaN():用于检查一个值是否为 NaN(非数字)。
isNaN():用于检查一个值是否为 NaN(非数字)。
parseFloat():将一个字符串解析成浮点数。
String.fromCharCode():根据 Unicode 值创建字符串。
Math.max() 和 Math.min():用于找出一组数中的最大值和最小值。
Math.round()、Math.floor() 和 Math.ceil():用于对数字进行四舍五入、向下取整和向上取整。
String.prototype.split():将字符串拆分为子字符串数组。
String.prototype.slice():从已有的字符串中返回选定的部分。
String.prototype.indexOf() 和 String.prototype.lastIndexOf():用于搜索字符串中指定字符或子字符串的位置。
Array.prototype.push() 和 Array.prototype.pop():用于在数组的末尾添加或删除元素。
Array.prototype.join():将数组的所有元素连接成一个字符串。
Array.prototype.slice():返回数组的一部分,不修改原始数组。
Array.prototype.splice():向/从数组中添加/删除项目,然后返回被删除的项目。
Array.prototype.forEach():用于数组的每个元素执行一次提供的函数。
Array.prototype.map():创建一个新数组,其结果是该数组中的每个元素调用一个提供的函数。
Array.prototype.filter():创建一个新数组,其中包含通过所提供函数实现的测试的所有元素。
Date():用于创建表示当前日期和时间的对象。
Math
Math
对象提供了许多数学运算的常用方法和常量。以下是一些常见的例子:
- Math.PI:提供 π 的近似值。
- Math.round():四舍五入一个数值。
- Math.floor():向下取整。
- Math.ceil():向上取整。
- Math.max() 和 Math.min():找到一组数中的最大值和最小值。
- Math.random():返回 0 和 1 之间的随机数。
- Math.sqrt():计算平方根。
示例代码:
// 使用 Math.PI 计算圆的周长
const radius = 5;
const circumference = 2 * Math.PI * radius; // 圆周长
console.log(circumference); // 输出: 31.41592653589793
// 使用 Math.random() 生成 1 到 10 的随机整数
const randomInt = Math.floor(Math.random() * 10) + 1;
console.log(randomInt); // 输出: 随机整数
// 使用 Math.max() 找到最大值
const numbers = [1, 5, 3, 9, 2];
const max = Math.max(...numbers);
console.log(max); // 输出: 9
String
String
对象提供了一系列用于字符串操作的方法和属性。以下是一些常见的例子:
- String.length:返回字符串的长度。
- String.charAt():返回指定位置的字符。
- String.slice():返回字符串的一部分。
- String.toUpperCase() 和 String.toLowerCase():将字符串转换为大写或小写。
- String.replace():替换字符串中的子字符串。
- String.split():根据指定的分隔符拆分字符串。
示例代码:
const str = "Hello, World!";
// 使用 String.length
console.log(str.length); // 输出: 13
// 使用 String.toUpperCase()
console.log(str.toUpperCase()); // 输出: "HELLO, WORLD!"
// 使用 String.slice()
console.log(str.slice(7, 12)); // 输出: "World"
// 使用 String.replace()
console.log(str.replace("World", "JavaScript")); // 输出: "Hello, JavaScript!"
// 使用 String.split()
const words = str.split(", ");
console.log(words); // 输出: ["Hello", "World!"]
Date
Date
对象提供了用于处理日期和时间的方法。以下是一些常见的例子:
- Date():创建当前日期和时间的实例。
- Date.getFullYear():获取年份。
- Date.getMonth():获取月份(0 表示 1 月,11 表示 12 月)。
- Date.getDate():获取日期(天)。
- Date.getDay():获取星期几(0 表示星期天,6 表示星期六)。
- Date.getHours():获取小时。
- Date.getMinutes():获取分钟。
- Date.getSeconds():获取秒。
示例代码:
const now = new Date();
// 使用 Date.getFullYear()
console.log(now.getFullYear()); // 输出: 当前年份
// 使用 Date.getMonth()
console.log(now.getMonth() + 1); // 输出: 当前月份 (加1是因为0-11表示月份)
// 使用 Date.getDate()
console.log(now.getDate()); // 输出: 当前日期
// 使用 Date.getDay()
console.log(now.getDay()); // 输出: 当前星期几 (0-6)
// 使用 Date.getHours()
console.log(now.getHours()); // 输出: 当前小时
// 使用 Date.getMinutes()
console.log(now.getMinutes()); // 输出: 当前分钟
// 创建特定日期
const myBirthday = new Date(1990, 6, 20); // 1990年7月20日
console.log(myBirthday); // 输出: Fri Jul 20 1990
基本数据类型和复杂数据类型
基本数据类型(Primitive Data Types)
- 字符串(String):用于表示文本数据。
- 数字(Number):用于表示数值数据。
- 布尔值(Boolean):用于表示逻辑值,即 true 或 false。
- 空值(Null):用于表示空值。
- 未定义(Undefined):用于表示未定义的值。
- 符号(Symbol):ES6 新增,用于创建唯一的标识符。
示例代码:
// 字符串
var str = "Hello, World!";
// 数字
var num = 42;
// 布尔值
var bool = true;
// 空值
var empty = null;
// 未定义
var undefinedValue;
// 符号
var sym = Symbol("foo");
复杂数据类型(Complex Data Types)
- 对象(Object):用于表示复杂的数据结构,可以包含多个键值对。
- 数组(Array):用于表示有序的集合,可以包含多个元素。
- 函数(Function):实际上也是对象,但它具有可执行的行为。
示例代码:
// 对象
var person = {
firstName: "John",
lastName: "Doe",
age: 30
};
// 数组
var colors = ["red", "green", "blue"];
// 函数
function greet(name) {
console.log("Hello, " + name + "!");
}
案例
- 日程安排:使用对象来表示每日的日程安排,包括活动、时间、地点等信息。
-
var dailySchedule = { date: "2024-04-28", activities: [ { time: "08:00", event: "Morning jog", location: "Park" }, { time: "10:00", event: "Meeting with client", location: "Office" }, { time: "12:00", event: "Lunch with friends", location: "Restaurant" }, { time: "15:00", event: "Grocery shopping", location: "Supermarket" }, { time: "19:00", event: "Dinner and movie", location: "Home" } ] };
- 购物清单:使用对象来表示购物清单,包括购买物品和数量等信息。
-
var shoppingList = { date: "2024-04-28", items: [ { name: "Apples", quantity: 5 }, { name: "Milk", quantity: 2 }, { name: "Bread", quantity: 1 }, { name: "Eggs", quantity: 12 }, { name: "Chicken", quantity: 1 } ] };
- 健身计划:使用对象来表示个人的健身计划,包括锻炼项目、持续时间和次数等信息。
-
var fitnessPlan = { startDate: "2024-04-01", endDate: "2024-04-30", exercises: [ { name: "Running", duration: "30 minutes", frequency: "3 times a week" }, { name: "Weightlifting", duration: "45 minutes", frequency: "2 times a week" }, { name: "Yoga", duration: "60 minutes", frequency: "Once a week" } ] };