一份不可多得的TypeScript系统入门整理
theme: cyanosis
推荐: TypeScript趁早学习提高职场竞争力
Github来源: | 求星星 ✨ | 给个❤️关注,❤️点赞,❤️鼓励一下作者
在另一页面打开即可高清
TypeScript开发全局安装typescript,使用安装命令可以使用npm也可以使用yarn:
123npm install typescript -gyarn global add typescript
demo.ts12345678910function jeskson() { let web: string = "hello world" console.log(web)}jeskson()// tsctes demo.tsnode demo.js
1npm install -g ts-node
数据类型
TS的数据类型
1234567// ES6的数据类型:基本数据类型:Boolean,Number,String,Symbol,undefined,null引用类型:Array,Function,Object// TS的数据 ...
JS葵花宝典秘籍笔记,为你保驾护航金三银四
前端葵花宝典秘籍,为你保驾护航金三银四
Github来源: | 求星星 ✨ | 给个❤️关注,❤️点赞,❤️鼓励一下作者
种草一句话:越努力,越幸运!以现在大多数人的努力程度之低,根本轮不到可以拼天赋。
分享一下前端面试秘籍,希望能够帮助更多的小伙伴。加我😚即可交流问题(不是大佬,互相学习,创造良好的学习环境)。以下哪些你不懂呢?
首先关注公众号:微信搜:程序员哆啦A梦
QQ群1:711613774(已满)
QQ群2:634382181
微信号:xiaoda0423(备注发送:已关注掘金魔王哪吒)
一面一面的问题不是很难,但是要得到面试官比较高的评价,还是需要一定的表达能力和对技术比较本质的认识的,如果在回答问题的时候能够做一些适当的扩展,自然会让面试官对你有不一样的评价。
回答问题的步骤:先回答问题本质,在回答具体细节,最后做一些平时编程中的扩展。面试官会觉得你确实是在这个技术上面下过功夫的。
二面问题都比较直接,答案也是知道就知道,不知道就不知道。这些问题一部分是基础,一部分是根据你的专业技能的来提问的。
在面试中有一些回答不出来很正常,但是如果能够做到出乎面试官的意 ...
TypeScript趁早学习提高职场竞争力
前言希望可以通过这篇文章,能够给你得到帮助。(感谢一键三连)
还不抓紧学TypeScriptTS:以JavaScript为基础构建的语言;可以在如何支持JavaScript的平台中执行;一个JavaScript的超集,TypeScript扩展了JavaScript,并添加了类型;TS不能被JS解析器直接执行。
TypeScript增加了一些类型,支持ES的新特性,添加ES不具备的新特性,丰富的配置选项,强大的开发工具。
学习TS,记得下载Node.js哦~
使用npm全局安装typescript,进入命令行,输入:npm i -g typescript,创建一个ts文件,使用tsc对ts文件进行编译:进入命令行,进入ts文件所在目录,执行命令:tsc xxx.ts。
基本类型:
类型声明:
类型声明是TS非常重要的一个特点
通过类型声明可以指定TS中变量的类型
指定类型后,当位变量赋值时,TS编译器会自动检查是否符合类型声明,符合则赋值,否则报错
简而言之,类型声明给变量设置了类型,使得变量只能存储某种类型的值
语法:
12345let 变量: 类型;let 变量: 类型 = 值 ...
前端模拟面试字数过23477万内容
原文地址:https://juejin.cn/post/6948576107163549732
前端开发工程师面试今天我请到两位朋友,面试官(小黄),面试者(小达)来进行如下前端模拟面试:(此处省略介绍,直接来面试题问答过程)
小黄:来说说你对http和https的理解小达:嗯,好的。
http是超文本传输协议,是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准,用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。 而对于https,他是以安全为目标的http通道,是http的安全版,在http中加入了ssl层,https的安全基础是ssl。
http的连接很简单的,是无状态的,http传输的数据都是没有加密的,也就是明文的,网景公司设置了ssl协议来对http协议传输的数据进行加密处理,所以说https协议是由http和ssl协议构建的可进行加密传输和身份认证的网络协议,比http协议的安全性更高。
https协议是需要证书的,费用较高,http是超文本传输协议,信息是明文传输,https是具有安全性的ssl加密传输协 ...
排序,搜索,算法模式,算法复杂度
图
树
字典,散列表
集合
链表
队列
栈
冒泡排序,选择排序,插入排序,归并排序,快速排序,堆排序,顺序搜索,二分搜索算法
排序算法
先创建一个数组来表示待排序和搜索的数据结构
123456789101112function ArrayList(){ var array = []; //将项存储在数组中 this.insert = function(item){ //插入方法来向数据结构中添加元素 array.push(item); }; this.toString = function(){ //来拼接数组中的所有元素至一个单一的字符串 return array.join(); }; }// join方法拼接数组元素至一个字符串,并返回该字符串
冒泡排序
冒泡排序在运行时间的角度来看,是最差的。
原理:
冒泡排序比较任何两个相邻的项,如果第一个比第二个大,则交换它们。元素项向上移动到正确的顺序,就像气泡升至表面一样,冒泡排序因此得名。
实现冒泡排序:
1234567891011 ...
力扣 (LeetCode)-28. 实现 strStr()
前言❤️笔芯❤️~
28. 实现 strStr()一、题目描述
实现 strStr() 函数。
给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。
12345输入: haystack = "hello", needle = "ll"输出: 2输入: haystack = "aaaaa", needle = "bba"输出: -1
说明:
当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。
对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与C语言的 strstr() 以及 Java的 indexOf() 定义相符。
二、思路分析
当两字符串相等时,返回0
haystack 为空串时,返回-1
needle 为空串时,返回0
needle 的长度大于 haystack 返回-1
循环 haystack ,i记录其指针。和 needl ...
力扣 (LeetCode)-14. 最长公共前缀
前言❤️笔芯❤️~
14. 最长公共前缀一、题目描述
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
12345678910示例 1:输入:strs = ["flower","flow","flight"]输出:"fl"示例 2:输入:strs = ["dog","racecar","car"]输出:""解释:输入不存在公共前缀
二、思路分析
标签:链表
当字符串数组长度为 0 时则公共前缀为空,直接返回
令最长公共前缀 ans 的值为第一个字符串,进行初始化
遍历后面的字符串,依次将其与 ans 进行比较,两两找出公共前缀,最终结果即为最长公共前缀
如果查找过程中出现了 ans 为空的情况,则公共前缀不存在直接返回
三、答案代码
1234567891011121314151617181920/** * @param {string[]} strs * ...
力扣 (LeetCode)-13. 罗马数字转整数
前言❤️笔芯❤️~
栈,队列,链表,集合,字典和散列表,树,图
13. 罗马数字转整数一、题目描述
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。
二、思路分析
罗马数字由I,V,X,L,C,D,M 构成;
当小值在大值的左边,则减小值,如 IV=5-1=4
当小值在大值的右边,则加小值,如 VI=5+1=6
由上可知,右值永远为正,因此最后一位必然为正
把一个小值放在大值的左边,就是做减法,否则为加法。
首先将所有的组合可能性列出并添加到哈希表中
然后对字符串进行遍历,由于组合只有两种,一种是 1 个字符,一种是 2 个字符,其中 2 个字符优先于 1 个字符
先判断两个字符的组合在哈希表中是否存在,存在则将值取出加到结果 ans 中,并向后移2个字符。不存在则将判断当前 1 个字符是否存在,存在则将值取出加到结果 ans 中,并向后移 1 个字符
遍历结束返回结果 ans
三、答案代码
123456789101112131415161718192021222324252627282930var romanToInt = function ...
力扣 (LeetCode)-104. 二叉树的最大深度,图
前言❤️笔芯❤️~
栈,队列,链表,集合,字典和散列表,树
图
图是网络结构的抽象模型。
图是一组由边连接的节点(或顶点)
一个图G=(V,E)由V:一组顶点,E:一组边,连接V中的顶点
由一条边连接在一起的顶点称为相邻顶点
一个顶点的度是其相邻顶点的数量
路径是顶点v1, v2,…,vk的一个连续序列,其中vi和vi+1是相邻的
简单路径要求不包含重复的顶点(环也是一个简单路径)
如果图中不存在环,则称图为无环的,如果图中每两个顶点间都存在路径,则该图是连通的
图可以是无向的(边没有方向)或是有向的(有向图)
如果图中每两个顶点间在双向上都存在路径,则该图是强连通的
图还可以是未加权的或是加权的
邻接矩阵
每个节点都和一个整数相关联,该整数将作为数组的索引。
如果索引为i的节点和索引为j的节点相邻,则array[i][j] === 1,否则array[i][j] === 0
邻接表
邻接表的动态数据结构来表示图
邻接表由图中每个顶点的相邻顶点列表所组成
关联矩阵
使用关联矩阵来表示图
在关联矩阵中,矩阵的行表示顶点,列表示边
关联矩阵用于边的数量比顶点多的 ...
力扣 (LeetCode)-对称二叉树,树
前言❤️笔芯❤️~
栈,队列,链表,集合,字典和散列表
树树是一种分层数据的抽象模型,最常见的树的例子是家谱或是公司的组织架构图。
一个树结构包含一些列存在父子关系的节点
位于树顶部的节点叫做根节点,它没有父节点
树中的每个元素都叫作节点,节点分内部节点和外部节点
至少有一个子节点的节点称为内部节点
没有子元素的节点称为外部节点或叶节点
子树由节点和它的后代构成
节点的一个属性是深度,节点的深度取决于它的祖先节点的数量
树的高度取决于所有节点深度的最大值
二叉树和二叉搜索树
二叉树中的节点最多只能有两个子节点:一个是左侧子节点,另一个是右侧子节点
二叉搜索树是二叉树的一种,但是它只允许你在左侧节点存储小的值,在右侧节点存储大的值
二叉搜索树数据结构
创建BinarySearchTree类
123456789101112131415161718192021function BinarySearchTree() { var Node = function(key){ // 声明一个Node类来表示树中的每个节点 this.key = key; t ...