我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JavaScript栈怎么调用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JavaScript栈怎么调用

本篇内容介绍了“JavaScript栈怎么调用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

JavaScript栈怎么调用

什么是栈?

栈全称为堆栈,是一种先进后出的的数据结构,栈中只有两种基本操作,也就是插入删除,也就是入栈和出栈操作栈只有一端可以进行入栈和出栈操作,我们将其称为栈顶,另一端称其为栈底;如下图展示了栈这个数据结构:

JavaScript栈怎么调用

JavaScript中的栈

JavaScript并没有栈这个数据类型,但是可以通过数组进行模拟,而且数组中提供的push()pop()选项,正好实现先入后出的的操作,

示例代码如下:

const stack = []

// 入栈
stack.push(1)
stack.push(2)
// 出栈
const v1 = stack.pop() // 2
const v2 = stack.pop() // 1

栈的应用场景

栈是算法和程序中最常用的辅助结构,其的应用十分广泛,凡是需要先进后出场景都有栈的身影,比如:

  • 函数调用堆栈

  • 判断字符串括号是否有效

接下来我们依次来看:

函数调用堆栈

JavaScript中的函数调用堆栈就是一个应用栈的一个典型例子,比如下面这段代码:

function f1() {}
function f2() {
  f1()
}
function f3() {
  f2()
}
f3()

如下图:

JavaScript栈怎么调用

执行过程如下:

  • 调用函数f3(),将f3压入堆栈;

  • f3()中调用了f2(),将f2压入堆栈;

  • f2()中又调用了f1(),将f1压入堆栈;

  • 只有f1()运行完成才能继续往下执行,所以f1()先出栈,以此类推。

有效的括号

有效的括号是力扣中的一个关于栈的算法题目,题目大意就是判断给定字符串中的括号是否匹配,匹配返回true,否则返回false

解题思路如下:

  • 判断字符串的长度是否为偶数,不为偶数直接返回false,因为括号都是成对出现的;

  • 新建一个栈;

  • 遍历字符串,遍历到每一项时如果时左括号,将其压入栈;如果是右括号,与栈顶对比,如果相匹配则出栈,不匹配则返回false

实现代码如下:


var isValid = function(s) {
    if (s.length % 2 !== 0) return false
    const stack = []
    for(let i = 0; i<s.length; i++) {
        const c = s[i] // 记录当前项
        if (c === '(' || c === '[' || c==='{') {
            stack.push(c)
        } else {
            const t = stack[stack.length - 1] // 获取栈顶元素
            if (
                (t === '(' && c === ')') ||
                (t === '[' && c === ']') ||
                (t === '{' && c === '}')
            ) {
                stack.pop()
            } else {
                return false
            }
        }
    }
    // 如果为0表示全部匹配,有剩余则表示不匹配
    return stack.length === 0
};

“JavaScript栈怎么调用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JavaScript栈怎么调用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java,JavaScript和ABAP怎么取得调用栈Callstack

本篇内容主要讲解“Java,JavaScript和ABAP怎么取得调用栈Callstack”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java,JavaScript和ABAP怎么取得调用栈Ca
2023-06-04

调试JavaScript代码如何打印调用堆栈

小编给大家分享一下调试JavaScript代码如何打印调用堆栈,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!打印调用堆栈可以通过调试面板查看当前代码的调用堆栈,也
2023-06-27

JavaScript如何实现显示函数调用堆栈

本篇内容介绍了“JavaScript如何实现显示函数调用堆栈”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Firebug提供了console
2023-07-04

javascript怎么调用css

这篇文章主要介绍了javascript怎么调用css的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇javascript怎么调用css文章都会有所收获,下面我们一起来看看吧。一、内联样式内联样式可以直接应用于HT
2023-07-06

怎么使用Node.js实现JavaScript全栈开发

这篇文章主要介绍了怎么使用Node.js实现JavaScript全栈开发,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。js有什么特点1、js属于一种解释性脚本语言;2、在绝大
2023-06-10

javascript怎么调用函数

这篇文章给大家分享的是有关javascript怎么调用函数的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。javascript的调用函数方法有:1、使用makeArray函数作为它的一个方法,使用json的方式来声
2023-06-14

JavaScript函数怎么调用

这篇文章主要介绍“JavaScript函数怎么调用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript函数怎么调用”文章能帮助大家解决问题。函数:函数分类:自定义函数和系统函数常用系统
2023-06-27

javascript怎么调用后台

今天小编给大家分享一下javascript怎么调用后台的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、使用JQuery A
2023-07-06

javascript方法怎么调用

本文小编为大家详细介绍“javascript方法怎么调用”,内容详细,步骤清晰,细节处理妥当,希望这篇“javascript方法怎么调用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Javascript 是一种强
2023-07-06

怎么调用javascript的方法

这篇文章给大家分享的是有关怎么调用javascript的方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。调用javascript的方法:1、方法调用模式,this此时指向myobject;2、函数调用模式,th
2023-06-14

javascript怎么调试

javascript怎么调试?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。调试javascript的方法:1、console.log() 方法如果浏览器支持调试,你可以使用
2023-06-14

编程热搜

目录