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

yizhihongxing

一文带你走进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日

相关文章

  • Android Map数据结构全面总结分析

    Android Map数据结构全面总结分析 Map是Android开发中常用的集合类之一,它可以存储键值对,也被称为关联数组或字典。在这篇文章中,我们将深入了解Android Map数据结构,包括Map的基本用法、Map中常用的API以及一些示例说明。 基本用法 Map是一个接口,它的实现包括HashMap、TreeMap、LinkedHashMap等。以下…

    数据结构 2023年5月17日
    00
  • C++ 数据结构之布隆过滤器

    C++ 数据结构之布隆过滤器 简介 布隆过滤器是一种用于快速判断一个元素是否存在于一个集合中的数据结构。它的空间效率和查询效率都比较高,在某些场景下,它可以代替传统的哈希表。 原理 布隆过滤器的基本原理是:将一个元素映射为多个位数组中的位置。在插入元素时,将这些位置上的值设置为1;在查询元素时,如果这些位置上的值都为1,则认为元素存在于集合中;否则认为元素不…

    数据结构 2023年5月17日
    00
  • Java数据结构之图的基础概念和数据模型详解

    Java数据结构之图的基础概念和数据模型详解 简介 图是一种非常重要的数据结构,在计算机科学和实际应用中广泛使用。比如搜索引擎中的网页之间的链接关系就可以用图来表示和处理。在本文中,我们将详细讲解图的基础概念和数据模型。同时,我们将通过两个实例来进一步说明图的应用。 图的基础概念 什么是图 图是由若干个节点(顶点)和连接节点的边组成的一种数据结构。一个图可以…

    数据结构 2023年5月17日
    00
  • 带你了解Java数据结构和算法之前缀,中缀和后缀表达式

    带你了解Java数据结构和算法之前缀、中缀和后缀表达式 1. 前缀表达式(Prefix Expression) 前缀表达式是指运算符位于操作数之前的表达式,也被称为波兰式。前缀表达式的优点在于,每个运算符的优先级都可以通过括号来明确,不需要考虑运算符的优先级。同时,整个表达式的意义也可以很清晰地传达。 举个例子,下面是一个前缀表达式: + * 4 5 6 /…

    数据结构 2023年5月17日
    00
  • C语言数据结构之学生信息管理系统课程设计

    C语言数据结构之学生信息管理系统课程设计 介绍 本文讲解学生信息管理系统的设计过程,包括需求分析、设计思路、实现步骤等。 需求分析 学生信息管理系统是一种常见的数据结构应用场景。通过该系统,可以实现对学生信息的有效管理和查询。在设计之前,我们需要明确系统的需求和功能,包括: 学生信息的录入、删除、修改和查询; 各类信息的统计和分析,如学生总数、男女比例等; …

    数据结构 2023年5月17日
    00
  • 数据结构与算法之手撕排序算法

    数据结构与算法之手撕排序算法 本篇攻略介绍如何手撕常见的排序算法。 冒泡排序 冒泡排序是一种通过不断交换相邻元素来排序的方法。它的时间复杂度为$O(n^2)$。 def bubble_sort(nums): for i in range(len(nums)): for j in range(len(nums)-i-1): if nums[j] > nu…

    数据结构 2023年5月17日
    00
  • 算法总结–ST表

    声明(叠甲):鄙人水平有限,本文为作者的学习总结,仅供参考。 1. RMQ 介绍 在开始介绍 ST 表前,我们先了解以下它以用的场景 RMQ问题 。RMQ (Range Minimum/Maximum Query)问题是指:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j里的最小(大)值,也就是说,RMQ…

    算法与数据结构 2023年4月18日
    00
  • 数据结构与算法中二叉树子结构的详解

    数据结构与算法中二叉树子结构的详解 什么是二叉树子结构 二叉树是一种数据结构,由包含根节点的节点组成,可以拓展为左子树和右子树。二叉树子结构指的是,在一棵二叉树中,具有连续节点的子树。 如何判断是否为二叉树子结构 对于一棵二叉树T和另外一棵二叉树S,我们可以判断S是否为T的子树,遵循以下判断原则: 如果树S为空,则表示S不是T的子树; 如果树S的根节点和树T…

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