JavaScript对象

本文详细介绍了JavaScript中的对象概念,包括对象的属性和方法,以及两种创建对象的方式:直接创建和使用new关键字。同时涵盖了访问对象的不同方法,内置对象的功能以及基本和复杂数据类型的区分,通过实际案例展示了对象在日常编程中的应用。
摘要由CSDN通过智能技术生成

对象概述

  对象是一组无序的相关属性和函数的集合。它的表现形式是一组无序的键值对,其中包括属性名和函数名,值可以是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)

  1. 字符串(String):用于表示文本数据。
  2. 数字(Number):用于表示数值数据。
  3. 布尔值(Boolean):用于表示逻辑值,即 true 或 false。
  4. 空值(Null):用于表示空值。
  5. 未定义(Undefined):用于表示未定义的值。
  6. 符号(Symbol):ES6 新增,用于创建唯一的标识符。

示例代码

// 字符串
var str = "Hello, World!";

// 数字
var num = 42;

// 布尔值
var bool = true;

// 空值
var empty = null;

// 未定义
var undefinedValue;

// 符号
var sym = Symbol("foo");

复杂数据类型(Complex Data Types)

  1. 对象(Object):用于表示复杂的数据结构,可以包含多个键值对。
  2. 数组(Array):用于表示有序的集合,可以包含多个元素。
  3. 函数(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" }
      ]
    };
    
  • 36
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值