一文带你走进js数据类型与数据结构的世界

一文带你走进JS数据类型与数据结构的世界

一、JS数据类型

1. 原始类型

JS中原始类型包括:Undefined、Null、Boolean、Number、String、Symbol(ES6新增)。

其中Undefined和Null分别代表未定义和空值,Boolean表示布尔值,Number表示数字,String表示字符串,Symbol是ES6新增的一种基础数据类型,表示独一无二的值。

示例

typeof undefined   // 'undefined'
typeof null        // 'object'
typeof true        // 'boolean'
typeof 123         // 'number'
typeof 'abc'       // 'string'
typeof Symbol()    // 'symbol'

2. 引用类型

JS中引用类型包括:Object、Array、Function等。

对象是JS的核心数据类型,可以理解为一组无序的键值对,而数组是一种特殊的对象,用于存储一组有序的数据。函数则是一组可执行的语句。此外,还有很多其他的引用类型,如Date、RegExp、Map、Set等。

示例

typeof {}             // 'object'
typeof []             // 'object'
typeof function(){}   // 'function'
typeof new Date()     // 'object'
typeof new RegExp()   // 'object'

二、JS数据结构

1. 数组

数组是JS中最常用的一种数据结构,数组可以存储任意数据类型的值,而且可以是多维的。

示例

// 创建数组
let arr1 = [1, 'a', true];
let arr2 = new Array(1, 2, 3);
let arr3 = Array.of(1, 2, 3);
let arr4 = Array.from('abc');

// 访问数组元素
let arr = [1, 2, 3];
console.log(arr[0]);   // 1

// 遍历数组
let arr = [1, 2, 3];
arr.forEach(function(item, index){
  console.log(index + ': ' + item);
});

// 数组常见操作
let arr = [1, 2, 3];
arr.push(4);          // [1, 2, 3, 4]
arr.pop();            // [1, 2, 3]
arr.shift();          // [2, 3]
arr.unshift(1);       // [1, 2, 3]
arr.reverse();        // [3, 2, 1]
arr.sort();           // [1, 2, 3]

2. 队列

队列是一种先进先出(FIFO)的数据结构,常见的应用场景包括事件队列、消息队列等。

示例

// 创建队列
let queue = [];

// 添加元素到队列尾部
queue.push(1);
queue.push(2);
queue.push(3);

// 从队列头部取出元素
let item = queue.shift();
console.log(item);   // 1
console.log(queue);  // [2, 3]

3. 栈

栈是一种后进先出(LIFO)的数据结构,常见的应用场景包括函数调用栈、编辑器中的撤销操作等。

示例

// 创建栈
let stack = [];

// 添加元素到栈顶
stack.push(1);
stack.push(2);
stack.push(3);

// 从栈顶取出元素
let item = stack.pop();
console.log(item);   // 3
console.log(stack);  // [1, 2]

以上仅是JS数据类型与数据结构的基础操作,实际应用场景中可能还有更多的高级操作及算法,有兴趣的读者可以深入学习。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一文带你走进js数据类型与数据结构的世界 - Python技术站

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

相关文章

  • 一起来看看C语言线性表的线性链表

    一起来看看C语言线性表的线性链表攻略 线性链表概述 线性链表是线性表的一种实现方式,它通过每个节点中包含指向下一个节点的指针来实现表中元素之间的链接,可以动态地增加、删除节点。线性链表分为带头节点的链表和不带头节点的链表,其中带头节点的链表更为常见。 实现思路 结构体定义 我们可以定义一个结构体来表示每个节点,例如: typedef struct ListN…

    数据结构 2023年5月17日
    00
  • C++数据结构之红黑树的实现

    《C++数据结构之红黑树的实现》是一篇介绍红黑树实现的文章,通过本文,你可以了解到什么是红黑树以及如何实现红黑树。 什么是红黑树 红黑树是一种自平衡的二叉查找树,它具有良好的平衡性和查找性能。红黑树可以在O(log n)的时间内完成查找、插入和删除操作。 红黑树的一个重要性质是它的任何一个节点都有一个颜色(红色或黑色)属性。在插入、删除操作中,需要通过一定的…

    数据结构 2023年5月17日
    00
  • 代码随想录–二叉树

    二叉树 二叉树–二叉树的递归遍历 题目: 144.二叉树的前序遍历(opens new window) 145.二叉树的后序遍历(opens new window) 94.二叉树的中序遍历 题解: 前序遍历 class Solution { public List<Integer> preorderTraversal(TreeNode root…

    算法与数据结构 2023年4月18日
    00
  • Java数据结构常见几大排序梳理

    Java数据结构常见几大排序梳理 在Java中,数据排序是非常常见的操作。下面我们详细讲解一下Java数据结构常见几大排序的梳理。 常见几大排序 Java数据结构中常见几种排序算法包括: 冒泡排序(Bubble Sort) 快速排序(Quick Sort) 插入排序(Insertion Sort) 选择排序(Selection Sort) 希尔排序(Shel…

    数据结构 2023年5月17日
    00
  • C语言数据结构中定位函数Index的使用方法

    C语言的数据结构中,定位函数Index的使用方法主要涉及到数组和指针的相关操作。Index函数的作用是在数组中查找对应的元素,返回该元素的索引位置。以下是详细攻略: 一、Index函数的用法 Index函数的原型如下: void *index(const void *s, int c, size_t n); 其中,参数含义如下: s: 要查找的数组 c: 要…

    数据结构 2023年5月17日
    00
  • C++数据结构与算法的基础知识和经典算法汇总

    C++数据结构与算法的基础知识和经典算法汇总 1. 基础知识 1.1 数据结构 数据结构是计算机存储、组织数据的方式。这里列出常见的数据结构,包括但不限于: 数组 链表 栈 队列 树 哈希表 1.2 算法 算法是解决问题的步骤和方法。下列是常见的算法: 排序算法 查找算法 字符串算法 图算法 1.3 复杂度 复杂度是算法性能的度量。常见的复杂度表示法有O(n…

    数据结构 2023年5月17日
    00
  • Java二叉树查询原理深入分析讲解

    Java二叉树查询原理深入分析讲解 什么是二叉树? 二叉树是一种数据结构,它由节点和边组成,其中每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的节点是按照一定顺序排列的,这个顺序被称为遍历顺序。通常,我们使用前序遍历、中序遍历和后序遍历三种方法来遍历二叉树。 二叉树的查询 二叉树的查询是指在二叉树中查找包含特定数据的节点。通常,我们使用递归算法…

    数据结构 2023年5月17日
    00
  • C语言链表案例学习之通讯录的实现

    让我详细讲解一下“C语言链表案例学习之通讯录的实现”的完整攻略。 1. 案例简介 本案例的目的是通过实现一个简单的通讯录程序,来学习C语言链表的原理和操作。程序主要功能涵盖通讯录添加、删除、修改以及查询。 2. 程序架构 程序的整体结构如下所示: 头文件声明 结构体定义 函数声明 主函数 函数实现 其中,头文件声明包含stdio.h、stdlib.h以及st…

    数据结构 2023年5月17日
    00
合作推广
合作推广
分享本页
返回顶部