自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 TS 08 TS中的各类修饰器

TS装饰器装饰器:装饰器是一种特殊类型的声明,它能够被附加到类声明,方法,属性或参数上,可以修改类的行为。通俗的讲装饰器就是一一个方法, 可以注入到类、方法、属性参数上来扩展类、属性、方法、参数的功能。常见的装饰器有:类装饰器、属性装饰器、方法装饰器、参数装饰器装饰器的写法:普通装饰器(无法传参)、装饰器工厂 (可传参)装饰器是过去几年中js最大的成就之,已是Es7的标准特性之一1.1 类装饰器类装饰器:类装饰器在类声明之前被声明(紧靠着类声明)。类装饰器应用于类构造函数,可以用来监视,修改或

2020-07-30 19:41:32 890

原创 TS07 TS中的命名空间

TS命名空间1.命名空间概念命名空间:在代码量较大的情况下,为了避免各种变量命名相冲突,可将相似功能的函数、类、接口等放置到命名空间内同Java的包、.Net的命名空间一样,TypeScript的命 名空间可以将代码包裹起来,只对外暴露需要在外部访问的对象。命名空间内的对象通过export导出命名空间和模块的区别:命名空间:内部模块,主要用于组织代码,避免命名冲突。模块: ts的外部模块的简称,侧重代码的复用,一个模块里可能会有多个命名空间。2.命名空间代码演示/** * 使

2020-07-30 19:40:28 780

原创 TS06 TS中使用模块

TS中的模块1.1 模块的概念模块的的概念(官方) :关于术语的一点说明:请务必注意一点,TypeScript 1.5里术语名已经发生了变化。“内部模块”现在称做“命名空间”。“外部模块”现在则简称为“模块”模块在其自身的作用域里执行,而不是在全局作用域里;这意味着定义在一个模块里的变量 ,函数,类等等在模块外部是不可见的, 除非你明确地使用export形式之-导出它们。相反,如果想使用其它模块导出的变量,函数,类,接口等的时候,你必须要导入它们,可以使用import形式之。模块的概念(自己理

2020-07-30 19:39:57 579

原创 TS05 TS类型、接口、类、泛型综合使用-.TypeScript封装统一 操作Mysql Mongodb Mssq|l的底层类库

TypeScript类型、接口、类、泛型综合使用-.TypeScript封装统一 操作Mysql Mongodb Mssq|l的底层类库功能:定义一个操作数据库的库支持 Mysql Mssql MongoDb要求1: Mysql MsSql MongoDb功能一 样都有 add update delete get方法注意:约束统一的规范、以及代码重用解决方案:需要约束规范所以要定义接口, 需要代码重用所以用到泛型1、接口:在面向对象的编程中,接口是一 种规范的定义,它定义了行为和动作的规范2、泛

2020-07-29 19:59:06 524

原创 TS04 TS中的泛型、泛型类(重要)

TypeScript中的泛型1.1 泛型的定义泛型:软件工程中,我们不仅要创建一致的定义 良好的API,同时也要考虑可重用性。组件不仅能够支持当前的数据类型,同时也能支持未来的数据类型,这在创建大型系统时为你提供了十分灵活的功能。在像C#和Java这样的语言中,可以使用泛型来创建可重用的组件,’ 个组件可以支持多 种类型的数据。 这样用户就可以以自己的数据类型来使用组件。I通俗理解:泛型就是解决类接口方法的复用性、以及对不特定数据类型的支持。1.2 泛型函数/** * 泛型的举例

2020-07-29 19:38:00 3218

原创 TS03 TS中的各类型接口(详解)

1.TS中的接口接口的作用:在面向对象的编程中,接口是种规范的定义, 它定义了行为和动作的规范, 在程序设计里面,接口起 到一种限制和规范的作用。接口定义了某-批类所需要遵守的规范,接口不关心这些类的内部状态数据,也不关心这些类里方法的实现细节,它只规定这批类里必须提供某些方法,提供这些方法的类就可以满足实际需要。typescrip中 的接口类似于java,同时还增加了更灵活的接口类型,包括属性、函数、可索引和类等。1.1 属性类接口1.1.1 一个入门小实例//TS定义一个函数fun

2020-07-28 19:13:29 5038

原创 TS02 TS中的类(详解)

TS中的类1.1 ES5中的类1.最简单的类function Person(){ this.name = 'kjh'; this.age= 20;}var newPerson = new Person();console.log(newPerson)2.构造函数和原型链里面增加方法function Person(){ this.name = 'kjh'; this.age= 20; this.sayHi = function(){

2020-07-28 19:12:52 377

原创 TS01 : TS变量类型详解TS函数

1.typescript概述什么是javascript?(运行环境 浏览器/ nodejs)JavaScript (缩写: JS)是-种运行在客户端(比如:浏览器)中的编程语言。当应用于浏览器时,为网站提供动态交互特性,让网页“动”起来。JavaScript的运行环境: 1浏览器2 Node.js.Node.js让JavaScript摆脱了浏览器的束缚,可以实现服务端/桌面端编程等。什么是typescript?TypeScript (简称: TS)是JavaScript的超集(JS 有

2020-07-27 18:08:38 5531 1

原创 TypeScript配置vscode自动编译ts文件为js文件

废话不多说,直接上步骤第一步:在你的文件目录下进入cmd命令行输入命令:tsc --init此时你的目录下会产生一个tsconfig.json文件。第二步:在vscode中打开文件夹打开tsconfig.json文件。看到一个outDir.将其修改为==“outDir”: “./js”, ==修改前:修改后:第三步:创建ts文件第四步:点击终端->运行任务选择typescript选择tsc监视ok,大功告成第五步:ctrl+s保存ts文件可以.

2020-07-27 16:57:21 3781 1

原创 工具人(超级赛亚人)学长写给超级可爱学妹的web简单课设(css3 动画 + 简单樱花飘落效果)

就是老工具人了。学校web初级课程设计。大概构思加完成1.5小时。就这样。大家想看拿走。附上git地址:git地址,打包带走部分页面效果展示:只是一个简单web课程,后续会上传我大二的前后端影院管理系统课设。(因为我是前端,这次课设前后端数据库通吃,数据库上传邮电问题搞不定,所以一直没有上传。)哈哈哈 娱乐 图个开心...

2020-07-18 21:20:06 700

原创 JZ 29-最小的K个数(JS)

题目描述:最小的K个数输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。题目解析:想法比较简单,先用新数组存储一下input进来的数字,之后冒泡排序从小到大排序,完事遍历1-k,将其push进新数组。最后return 新数组。function GetLeastNumbers_Solution(input, k){ // write code here var arrList = [...input].

2020-07-15 21:14:20 271

原创 JZ 31-整数中1出现的次数(JS)

题目描述:整数中1出现的次数求出113的整数中1出现的次数,并算出1001300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。题目解析:我的想法是,将数组进行遍历,将数字转换为字符串,通过字符串的charAt方法判断每一个字符。function NumberOf1Between1.

2020-07-15 21:09:44 237

原创 JZ 28 -数组中出现超过一半的数字(JS)

题目描述:数组中出现一半的数字数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。题目解析:利用js对象的属性不能重复的特性。遍历数组中的数字;将每个数字作为对象的属性,存进对象当第二次出现某个数字就将这个属性+1.最后通过 for in 判断。function MoreThanHalfNum_Solution(numbe.

2020-07-14 21:49:48 340

原创 JZ 24-二叉树中和为某一值的路径(JS)

题目描述:二叉树中和为某一值的路径输入一颗二叉树的根节点和一个整数,按字典序打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。题目解析:/* function TreeNode(x) { this.val = x; this.left = null; this.right = null;} */function FindPath(root, expectNumber){ // write .

2020-07-14 21:36:19 214

原创 JZ 23 -二叉树的后序遍历(JS)

题目描述:二叉树的后序遍历输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。题目解析:只需要不断地确定出左子树区间和右子树区间,并且判断:左子树区间的所有结点值 < 根结点值 < 右子树区间所有结点值,这个条件是否满足即可function VerifySquenceOfBST(sequence){ // write code here if (sequence.leng.

2020-07-13 21:58:53 197

原创 JZ22 -从上往下打印二叉树(JS)

题目描述:从上往下打印二叉树从上往下打印出二叉树的每个节点,同层节点从左至右打印。题目解析:利用队列的先进先出的特性。利用辅助队列,将root,push进辅助队列,之后每次去除辅助队列的第一个元素进行,存值,并且对其左右节点进行判断。完整代码:/* function TreeNode(x) { this.val = x; this.left = null; this.right = null;} */function PrintFromTopToBot.

2020-07-12 21:47:38 493

原创 JZ21 -栈的压入、弹出

题目描述:栈的压入、弹出输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)题目解析:对于入栈顺序1,2,3,4,5.出栈顺序4,5,3,2,1 合格的入栈出栈顺序如下:1 入栈,2 入栈, 3 入栈, 4 入栈, 4 出栈,5 入栈,5出栈.

2020-07-12 21:07:32 160

原创 JZ20 - 包含main函数的栈

题目描述:包含main函数的栈定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。注意:保证测试中不会当栈为空的时候,对栈调用pop()或者min()或者top()方法。题目解析;const stack1 = []const stack2 = []function push(node){ // write code here if (stack1.length == 0){ stack1.push(n.

2020-07-12 20:40:50 458

原创 JZ19 -顺时针打印螺旋矩阵(JS)

题目描述:顺时针打印螺旋矩阵输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.题目解析:function printMatrix(matrix){ // write code here let list = []; if(matrix.length.

2020-07-09 15:23:18 441

原创 JZ18 -二叉树的镜像(JS)

题目描述:二叉树的镜像操作给定的二叉树,将其变换为源二叉树的镜像。题目分析:我们直接交换二叉树的左右子树,然后递归调用就ok了。/* function TreeNode(x) { this.val = x; this.left = null; this.right = null;} */function Mirror(root){ // write code here if(root == null) return; var temp .

2020-07-08 18:36:58 216

原创 JZ17 -树的子结构(JS)

题目描述:树的子结构输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)题目分析:子树:子树的意思是包含了一个结点,就得包含这个结点下的所有节点,一棵大小为n的二叉树有n个子树,就是分别以每个结点为根的子树。子结构的意思是包含了一个结点,可以只取左子树或者右子树,或者都不取。其实思路应该分为两步:1.在大树中找到和小树根节点相同的节点。2.然后以此节点为根节点,在大树上往下搜索对比小书左右节点是否相同,不同则返回false3.如果2步中最后返.

2020-07-08 18:29:51 255

原创 JZ16 --合并两个排序链表(JS)

题目描述:合并两个排序链表输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。题目解析:function Merge(pHead1, pHead2){ // write code here let vHead = new ListNode(-1); let pre = vHead; while(pHead1 && pHead2){ if(pHead1.val < pHe.

2020-07-07 00:21:38 659

原创 JZ15 -链表反转(JS)

题目描述:链表反转输入一个链表,反转链表后,输出新链表的表头。题目解析:牛客解题,很完美!题目所给的是单链表,想了一下反转后的样子:最后一个结点指向倒数第二个,倒数第二个指向倒数第三个,…,第二个指向第一个,第一个指向null;知道了反转后各个结点指向哪之后,就需要开始调整每个结点的next指针。这就需要把结点挨个从链表上摘下来,做调整;这个调整过程需要两个指针辅助:pre记录其前一个结点位置,好让该结点的next指针指向前一个结点,但是在指向前一个结点前需要用一个指针p记录后一.

2020-07-04 00:18:47 1994

原创 JZ14 -链表中倒数第k个结点(JS)

题目描述:链表中倒数第k个结点输入一个链表,输出该链表中倒数第k个结点。题目解析:遍历链表节点,存进数组,然后返回数组的 length - k 个元素即可。/*function ListNode(x){ this.val = x; this.next = null;}*/function FindKthToTail(head, k) { var node_Arr = []; if(head == null || k < 0){ r.

2020-07-03 00:23:19 171

原创 JZ13 -调整数组数值顺序(JS)

题目描述:调整数组数值顺序输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。题目解析:function reOrderArray(array){ //设置两个数组分别用来存储偶数和奇数 var newArr1 = []; var newArr2 = []; for(var i = 0; i < array.length; i++){ .

2020-07-01 23:12:43 561

原创 JZ12 - 数值的整数次方(JS)

题目描述: 数值的整数次方给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0题目解析function Power(base, exponent){ 1 //指数为0,结果为1 if (exponent === 0) { return 1; } //质数为1,返回base if (exponent === 1) { retur.

2020-07-01 23:04:31 159

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除