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

相关文章

  • 数据结构 栈的操作实例详解

    数据结构 栈的操作实例详解 什么是栈? 栈(stack)是一种具有特殊限制的线性数据结构。它只允许在表的一端进行插入和删除操作,另一端是固定的,称为栈底;相反的另一端称为栈顶。栈底用于存放最早进入的元素,栈顶用于存放最近进入的元素,所以栈又称为后进先出的数据结构。 栈的操作 栈的主要操作包括入栈(push)、出栈(pop)、获取栈顶元素(top)和判断栈是否…

    数据结构 2023年5月17日
    00
  • PHP 数据结构 算法 三元组 Triplet

    PHP 数据结构 算法 三元组 Triplet 什么是三元组 Triplet 三元组 Triplet 是指由三个数据分别确定一个元素的数据类型。 在 PHP 中可以用一个数组来实现三元组,数组下标表示元素的序号,数组中储存的则是元素的值,共有三个元素。 例如一个三元组 (a, b, c),可以用 PHP 数组表示为 $triplet = array(a, b…

    数据结构 2023年5月17日
    00
  • mosn基于延迟负载均衡算法 — 走得更快,期待走得更稳

    前言 这篇文章主要是介绍mosn在v1.5.0中新引入的基于延迟的负载均衡算法。 对分布式系统中延迟出现的原因进行剖析 介绍mosn都通过哪些方法来降低延迟 构建来与生产环境性能分布相近的测试用例来对算法进行验证 地址:https://github.com/mosn/mosn/pull/2253 在开始聊基于延迟的负载均衡算法之前,先介绍下什么是负载均衡——…

    算法与数据结构 2023年5月8日
    00
  • C语言实题讲解快速掌握单链表上

    C语言实题讲解快速掌握单链表 什么是单链表? 单链表是一种链式存储的线性数据结构,它由一系列称为节点的组成。每个节点都包括两个部分:数据域和指针域。指针域指示了下一个节点的地址,因此,我们可以通过遍历链表的方式访问所有节点。 单链表的操作 创建一个单链表 我们可以通过以下步骤来创建一个单链表:1. 定义单链表的节点结构体,包括数据域和指针域。2. 定义一个指…

    数据结构 2023年5月17日
    00
  • 深入浅析C语言中堆栈和队列

    深入浅析C语言中堆栈和队列 堆栈(Stack) 堆栈是一种先进后出(Last In First Out,LIFO)的线性数据结构,只允许在一端进行插入和删除操作。堆栈在C语言中常用于函数调用时的参数传递、表达式求值和程序中断处理等场景。 实现堆栈的基本操作 下面是堆栈的基本操作,可以用数组来实现: 初始化 #define MAX_SIZE 100 // 假设…

    数据结构 2023年5月17日
    00
  • 数位dp

    数位dp 思想 一般来说,题目是要求在区间\([l,r]\)中符合某一种条件的数的个数 我们用前缀和的思想考虑,分别求出\([1,r]\)和\([1,l-1]\)中数的个数相减即为所求 这里采用记忆化搜索的方式实现 模板 #include<iostream> #include<cstring> #include<vector&g…

    算法与数据结构 2023年4月17日
    00
  • java数据结构实现顺序表示例

    如果想要实现一种数据结构,我们首先需要考虑它的存储结构。对于顺序存储结构,Java中的数组是一个很好的选择。下面就为大家分享关于Java数据结构实现顺序表示例的完整攻略,帮助读者更好地理解该数据结构的实现方式。 1. 定义一个顺序表数组 首先,我们需要定义一个数组类型的顺序表。这个顺序表可以使用泛型来表示各种类型的数据: public class MyArr…

    数据结构 2023年5月17日
    00
  • Java数据结构之常见排序算法(下)

    Java数据结构之常见排序算法(下) 前言 这是 Java 数据结构之常见排序算法的第二篇,本篇文章将继续介绍常见的排序算法。对于尚未了解基本排序算法的读者,可以先阅读 Java 数据结构之常见排序算法(上)。 快速排序 快速排序是一种使用分治思想的排序算法,其思路是将一个数组分为两个子数组,再对子数组进行排序,这个过程不断递归执行。在具体实现时,选择一个元…

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