JavaScript 引用类型实例详解【数组、对象、严格模式等】

在 JavaScript 中,引用类型是一种数据结构类型,它们不同于基本类型,基本类型是按值传递,而引用类型则是按引用传递,即在内存中存放的是该值在堆内存中存放的地址,而不是该值本身。常见的引用类型包括数组、对象、函数等。

JavaScript 引用类型实例详解

在 JavaScript 中,引用类型是一种数据结构类型,它们不同于基本类型,基本类型是按值传递,而引用类型则是按引用传递,即在内存中存放的是该值在堆内存中存放的地址,而不是该值本身。常见的引用类型包括数组、对象、函数等。

数组

数组是一种可以存储一组有序数据的集合,它是一种可以动态扩展的对象。数组的声明方式如下:

let arr = []; //空数组
let arr2 = [1, 2, 3]; //具有 3 个元素的数组
let arr3 = new Array(); //空数组
let arr4 = new Array(1, 2, 3); //等同于 [1,2,3]

数组元素可以为任意类型,并且可以动态增加和删除元素。数组的常用操作包括:

  • 访问数组元素

对数组元素的访问可以通过下标来实现,例如 arr[0] 表示访问数组中第一个元素。注意数组下标从 0 开始,访问不存在的数组元素将返回 undefined。

  • 数组的遍历

可以使用 for 循环遍历数组元素,例如:

let arr = ['a', 'b', 'c'];
for(let i = 0; i < arr.length; i++) {
    console.log(arr[i]);
}
  • 数组的扩展和截取

可以使用 push() 和 unshift() 方法对数组末尾或开头插入元素,pop() 和 shift() 方法可以从数组的末尾或开头删除元素。使用 slice() 方法可以截取数组的一部分,splice() 方法可以在任意位置添加或删除元素。

对象

对象是一种无序的属性集合,可以包含多种类型的值。对象的声明方式如下:

let obj = {}; //空对象
let obj2 = {name: 'Tom', age: 18}; //具有 name 和 age 属性的对象
let obj3 = new Object(); //等同于 {}
let obj4 = new Object({name: 'Jerry'}); //等同于 {name: 'Jerry'}

对象的属性可以是任意类型,并且可以动态增加、删除和修改属性。对象的常用操作包括:

  • 访问对象属性

可以使用点符号或方括号来访问对象的属性,例如 obj.name 和 obj['name'] 都可以访问对象的 name 属性。如果对象不存在该属性,则返回 undefined。

  • 对象的遍历

可以使用 for-in 循环遍历对象的属性,例如:

let obj = {name: 'Tom', age: 18};
for(let key in obj) {
    console.log(key + ': ' + obj[key]);
}
  • 对象的增删改查

可以使用 . 和 [] 运算符对对象属性进行增、删、改、查操作。例如 obj.name = 'Jerry' 可以修改对象的 name 属性,delete obj.age 可以删除对象的 age 属性。

严格模式

JavaScript 的严格模式是一种执行模式,它有助于消除 JavaScript 弱类型和不安全的部分,从而提高代码的健壮性。严格模式声明方式如下:

'use strict';

在严格模式下,有以下变化:

  • 变量必须先声明后使用

在严格模式下,未经声明的变量或函数不能使用。

  • 函数中的 this 值是 undefined

在严格模式下,在函数中使用 this 关键字时,它的值是 undefined。

  • 禁止对只读属性赋值

在严格模式下,尝试对只读属性(如对象的 length 属性)进行赋值会报错。

  • 立即调用函数表达式必须使用括号包裹

在严格模式下,立即调用函数表达式必须使用括号包裹。

示例说明一:使用数组创建堆栈

可以使用数组的 push() 和 pop() 方法来模拟堆栈。例如:

let stack = [];
stack.push(1);  // 入栈 1
stack.push(2);  // 入栈 2
stack.pop();    // 出栈 2

示例说明二:使用对象创建链表

可以使用对象来模拟链表,例如:

let list = {
  value: 1,
  next: {
    value: 2,
    next: {
      value: 3,
      next: null
    }
  }
}

以上就是 JavaScript 引用类型的详细讲解,希望对你有所帮助。

本文标题为:JavaScript 引用类型实例详解【数组、对象、严格模式等】

基础教程推荐