| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> JavaScript数据结构与算法 -> 正文阅读 |
|
[数据结构与算法]JavaScript数据结构与算法 |
前言如果你是科班生上大学时候光想着回寝室玩游戏,又或者是非科班去了培训班学习编程,你使用JS、JQuery、Vue、React得心应手比大部分人写的都要好,你肯定可以在社会上找到一个不错的工作,但是如果面试华为、字节、网易、虾皮等一线大厂,这些技术类的框架反而不是第一考点,一个面试官可能会围绕三块去问你:
这三块其实就是:
这三块内容,可能不耽误日常的开发,但是却决定了我们程序员的上限。 2022年我已经进行了2年的前端开发工作,打开Leetcode却磨蹭半天写不出一题,于是我下定决心复习基础学习算法,同时通过这篇文章记录下来,如果你看到了这篇文章,你跟我的情况一样,那么就也开始你的复习或学习吧。 本文根据本人复习节奏同步更新,没写到的或写错的,请谅解或评论提醒,谢谢~ 一、数据结构
1.1、栈 Stack1.1.1、栈的概念栈是一种后进先出(LIFO)的数据结构。 比如:羽毛球桶,先放进的羽毛球排在了最下面,以此叠加,最后进的在最上面。放羽毛球的操作叫入栈,拿羽毛球的操作叫出栈,最下面的叫栈底,最上面的叫栈顶。 1.1.2、栈的操作那么栈都有什么操作呢:
1.1.3、用JavaScript封装一个栈
1.1.4、栈的思想利用上面的栈我们来实现一个10进制转换2进制的函数,帮助我们理解栈结构的思想:
做到这里,我们发现根本不需要那么复杂,声明一个数组直接就能实现这些操作,但是数组的结构其实根本上就是一个栈,所以上述的一些实现主要是为了学会这个栈的思想,也即后进先出。 理解了这个思想,我们来接着看,栈和函数:
?在上述代码中,通过先入后出的原则来看,执行fun2()之后进入方法体执行fun1(),所以是fun2()先入栈fun1()后入栈,所以fun1()先出栈fun2()后出栈,结果就是:fun1()先打印出来,fun2()则最后。 1.2、队列 queue1.2.1、队列的概念队列是一种先进先出(FIFO)的数据结构。 比如:大学生排队进食堂,先进去的吃完饭先出来。进食堂的操作叫enqueue(),出食堂的操作叫dequeue(),查看列头的操作叫front()。 1.2.2、队列的操作那么队列有哪些操作呢:
? 二、网络2.1、WWW (World Wide Web)万维网Internet提供了很多服务,比如www网页服务、FTP文件传输、E-mail电子邮件、Telnet远程登陆等等。随着网站服务类型的增加,不同的二级域名和三级域名对应不同的业务,而业务的处理任务会分配到多个服务器,所以,不再需要使用www来标注主页,很多网站都还会做DNS解析www,原因是尊重用户习惯。 2.2、DNS (Domain Name Server)域名服务器作用:它的作用是将域名转换为对应的IP地址。 特征:DNS中保存了一张域名和对应IP地址的表,一个域名对应一个IP,一个IP地址可以对应多个域名。 DNS的工作过程:
? 2.3、IP (Internet Protocol Address)IP地址作用:分配给用户上网使用的互联网协议服务。 分类:IPv4 、 IPv6 、 其他。 形式:比如192.168.0.1,长度是32位,4个字节,用十进制表示。 IPv6对比IPv4的优势:
2.4、Port 端口号解释:IP地址假使是上海市浦东新区,域名则是迪士尼乐园,Port端口号则是海盗船的入口。 范围:0 ~ 65535(在HTTP协议下默认的端口号是80,HTTPS是443,FTP协议下是20或21)。 总结:每一个端口对应的是一个服务器的一个业务,访问一个服务器的不同端口相当于访问一个服务器的不同业务。 2.5、TCP (Transmission Control Protocol) 传输控制特点:面向连接(收发数据前,必须建立可靠的连接),也就是说不管是收数据的一方还是发数据的一方,必须都是可靠的安全的。 建立连接的方式:三次握手。 应用场景:数据必须准确无误的收发,比如:HTTP请求、FTP文件传输、邮件收发等等。 优点:稳定、重传机制、拥塞控制机制、断开连接。 缺点:速度慢、效率低、占用资源、容易被攻击(比如:三次握手时候进行DOS、DDOS攻击)。 TCP/IP协议组:提供点对点的连接机制,制定了数据封装、定址、传输、路由、数据接收的标准。 TCP连接建立的前奏: ①标志位(数据包):
②状态:
2.6、UDP (User Data Protocol) 用户数据报协议特点:面向无连接 (不可靠的协议,无状态传输机制),无连接信息发送机制。 应用场景:无需确保通讯质量且要求速度快、无需确保信息完整性的场景,比如:qq聊天、语音通话、游戏等。 优点:安全、快速、漏洞少(UDP flood攻击)。 缺点:不可靠、不稳定、容易丢包。 总结:只要目的源地址、端口号确定,则可以直接发送信息报文,但不能保证一定能收到或收到完整的数据。 2.7、HTTP (Hyper Text Transfer Protocol) & HTTPS (Hyper Text Transfer Protocol Secure)HTTP:HTTP是超文本传输协议,客户端和服务器端请求和应答的标准,用于从web服务器传输文本到本地浏览器的传输协议。 HTTPS:HTTPS则是按照HTTP协议规则,向web服务器发送的将超文本传输到本地浏览器的请求。HTTPS在HTTP的基础上增加了安全性(安全基础是SSL/TLS):SSL (Secure Sockets Layer) 安全套接层,TLS (Transport Layer Security) 传输层安全,为网络通信提供安全及数据完整性的一种安全协议,对网络连接提供加密。 区别:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 4:50:15- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |