JS手写题汇总

207 阅读1分钟

用数组实现栈方法

先进后出,后进先出

由于数组本身具备一些栈的特性,所以处理起来比较简单

1651406673(1).png

用对象实现栈方法

原型链的终点是Object原型对象,所以在Javascript中最基础的数据结构表达,就是一个Object原型对象,比如数组在Array对象中的基础数据结构是一个对象。

1651409018(1).png

1651409053(1).png

1651409085(1).png

定义私有变量的方式

在class语法中,可使用#的方式,直接指定对应的变量为私有变量。

1651409316(1).png

注意

Symbol也并非完全不能访问,可以通过**Object.getOwnPropertySymbols(stack)**来访问实例stack的Symbol属性

利用栈的特性,封装一个十进制转二进制方法

1651410029(1).png

封装一个通用方法,将十进制转化成2/8/16进制的数字

1651410456(1).png

栈的应用:有效的括号(leetcode题目)

思路:首先遍历目标字符串,将第一个字符放入栈中,如果接下来的一个字符刚好可以匹配,则匹配的字符(栈顶元素)出栈,如果不能匹配,则继续压入栈中,这样循环结束以后,如果所有的字符成功匹配,那么栈中为空,如果不为空,则不能匹配。

1651411324(1).png

手写map方法

持续更新中....

手写原生Ajax

1651414108(1).png

手写图片异步加载

1651416930(1).png

手写promise