详谈js中数组(array)和对象(object)的区别

详谈JS中数组(Array)和对象(Object)的区别

在JS中,数组和对象都是非常常见且重要的数据类型。它们可以用于存储和操作数据,但是它们之间有很大的区别。本攻略将详细讲解JS中数组和对象的区别,包括定义、访问和操作数组和对象。

数组(Array)是什么?

JS中的数组是一种有序、可变的集合,可以存储任意类型的值,包括数字、字符串、对象等。它通过下标来访问和操作其中的元素。

数组的定义

在JS中,定义一个数组可以使用[]new Array()的方法:

// 定义一个空数组
let array1 = [];

// 定义一个长度为3的数组,初始值为undefined
let array2 = new Array(3);

// 定义一个包含3个元素的数组,元素类型为字符串
let array3 = ['apple', 'banana', 'orange'];

数组的访问

数组中的元素可以通过下标来访问。下标从0开始,可以是数字或字符串:

let fruits = ['apple', 'banana', 'orange'];

console.log(fruits[0]); // 'apple'
console.log(fruits['1']); // 'banana'

如果访问的下标超出了数组的界限,会得到undefined:

console.log(fruits[3]); // undefined

数组的操作

JS中的数组支持多种操作,例如添加、删除、修改元素等。以下是几个示例:

let fruits = ['apple', 'banana', 'orange'];

// 向数组最后添加一个元素
fruits.push('pear');

// 删除数组最后一个元素
fruits.pop();

// 向数组开头添加一个元素
fruits.unshift('kiwi');

// 删除数组第一个元素
fruits.shift();

// 修改数组中的元素
fruits[1] = 'mango';

// 获取数组的长度
console.log(fruits.length); // 2

对象(Object)是什么?

JS中的对象是一个无序的集合,由一些属性(key-value)组成,其中属性的值可以是任意类型的。它通过属性名来访问和操作其中的属性。

对象的定义

在JS中,定义一个对象可以使用{}new Object()的方法:

// 定义一个空对象
let object1 = {};

// 定义一个包含两个属性的对象
let object2 = {
  name: '张三',
  age: 20
};

// 定义一个包含一个函数属性的对象
let object3 = {
  sayHi: function() {
    console.log('Hi');
  }
};

对象的访问

对象中的属性可以通过属性名来访问。属性名可以是任何字符串,包括空字符串。

let person = {
  name: '张三',
  age: 20,
  '': '这是一个空字符串属性'
};

console.log(person.name); // '张三'
console.log(person.age); // 20
console.log(person['']); // '这是一个空字符串属性'

如果访问不存在的属性,则会得到undefined:

console.log(person.gender); // undefined

对象的操作

JS中的对象也支持多种操作,例如添加、删除、修改属性等。以下是几个示例:

let person = {
  name: '张三',
  age: 20
};

// 添加一个新属性
person.gender = '男';

// 删除一个属性
delete person.age;

// 修改一个属性的值
person.name = '李四';

// 获取对象中所有的属性名
console.log(Object.keys(person)); // ['name', 'gender']

数组和对象的区别

根据上述内容,我们可以总结出以下几点JS中数组和对象的区别:

  1. 数组中的元素是有序的,对象中的属性是无序的;
  2. 数组中的元素可以通过下标来访问,对象的属性可以通过属性名来访问;
  3. 数组中的元素类型可以不同,对象中的属性名必须是字符串类型,但属性值可以是任意类型;
  4. 操作数组时,通常使用数组的方法;操作对象时,通常使用对象的方法。

示例说明

示例1

let fruits = ['apple', 'banana', 'orange'];

console.log(fruits[1]); // 'banana'
console.log(fruits.length); // 3

fruits.splice(1, 1, 'kiwi', 'mango');

console.log(fruits); // ['apple', 'kiwi', 'mango', 'orange']
console.log(fruits.length); // 4

在上面的示例中,我们定义了一个包含3个字符串元素的数组fruits。通过[]操作符访问其第二个元素(下标为1),并输出结果。然后使用splice方法,将数组中从第二个元素开始的1个元素替换为kiwimango。最后输出修改后的数组和数组的长度。

示例2

let person = {
  name: '张三',
  age: 20,
  gender: '男'
};

console.log(person.name); // '张三'
console.log(person.age); // 20

delete person.age;

console.log(person); // { name: '张三', gender: '男' }
console.log(Object.keys(person)); // ['name', 'gender']

在这个示例中,我们定义了一个包含3个属性的对象person。通过.操作符和[]操作符访问其nameage属性,并输出结果。然后使用delete操作符删除了age属性,再输出对象和对象中所有属性名。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详谈js中数组(array)和对象(object)的区别 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • JavaScript中this关键字用法实例分析

    JavaScript中this关键字用法实例分析 什么是this关键字? 在 JavaScript 中, this 关键字是一个特殊的关键字,用于表示当前函数的执行环境。具体来说,this是在每个函数被调用时独立绑定的,如果没有特别指定执行环境,则 this 的默认值是全局对象 window。 this关键字的用法 在 JavaScript 中,this 关…

    JavaScript 2023年5月28日
    00
  • 原生JS实现简单的无缝自动轮播效果

    下面是“原生JS实现简单无缝自动轮播效果”的完整攻略。 确定HTML结构 在实现轮播效果之前,我们需要先确定HTML结构。一般来说,轮播图的容器是一个固定宽度的盒子,里面包含多张图片,我们可以使用ul和li标签来实现这个容器和图片的列表。 HTML结构可以如下所示: <div class="slider"> <ul&gt…

    JavaScript 2023年6月11日
    00
  • 一篇文章带你学会JavaScript计时事件

    一篇文章带你学会JavaScript计时事件攻略 JavaScript计时事件介绍 JavaScript计时事件指的是js脚本在页面中实现计时功能。该功能广泛应用于网站中的倒计时、计时器等场景。JS计时事件的主要实现方式有setTimeout()和setInterval()两种方式。 setTimeout() setTimeout()是一种延时执行的方法,可…

    JavaScript 2023年5月27日
    00
  • JavaScript代码实现txt文件的上传预览功能

    下面是详细讲解 JavaScript 代码实现 txt 文件的上传预览功能的完整攻略。 准备工作 HTML 文件中添加一个文件上传的 input 标签,如下: <input type="file" id="fileInput"> 在 HTML 文件中创建一个用于预览文件内容的容器,如下: <div i…

    JavaScript 2023年5月27日
    00
  • JavaScript表单验证实例之验证表单项是否为空

    下面给您讲解JavaScript表单验证实例之验证表单项是否为空的完整攻略。 一、需求背景 在表单中,通常存在必填项,用户必须填写才能提交表单数据。否则,如果数据为空,就不能正常提交表单数据,会影响用户体验。因此,我们需要通过JavaScript对表单中必填项进行验证,确保用户输入数据的完整性。 二、解决方案 对于验证表单项是否为空,我们可以使用JavaSc…

    JavaScript 2023年6月10日
    00
  • p5.js实现简单货车运动动画

    实现简单货车运动动画可以使用p5.js中的画布和动画函数,下面是一个完整的攻略。 1. 准备工作 在开始编写代码之前,我们需要做一些准备工作。 Step 1: 引入p5.js库 我们需要在HTML文档中引入p5.js库,可以通过以下方式来实现: <!DOCTYPE html> <html lang="en"> &l…

    JavaScript 2023年6月10日
    00
  • JavaScript原生数组函数实例汇总

    JavaScript原生数组函数是JavaScript编程中非常重要的一部分。这些函数非常高效,可以帮助我们轻松地对数组进行操作,而无需手动编写重复的循环代码。下面是JavaScript原生数组函数实例汇总的完整攻略。 什么是JavaScript原生数组函数? JavaScript原生数组函数是指JavaScript中定义好的、可以直接使用的针对数组进行操作…

    JavaScript 2023年5月27日
    00
  • 在ASP.NET 2.0中操作数据之二十二:为删除数据添加客户端确认

    为删除数据添加客户端确认是一个常见的需求,通过在页面上添加一个确认对话框,可以避免用户误操作删除数据。在ASP.NET 2.0中,可以使用JavaScript来实现该功能。 步骤一:在删除按钮上添加客户端事件 首先,我们需要在删除按钮上添加一个客户端事件,用于触发删除确认对话框。在ASP.NET中,可以使用OnClientClick属性来添加客户端事件,示例…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部