- 博客(43)
- 收藏
- 关注
原创 typescript——7、把类作为参数类型的泛型类
定义一个User的类,这个类的作用就是映射数据库字段然后定义一个MysqlDb的类这个类用于操作数据库然后把User类作为参数传入到Mysql中
2020-09-19 11:11:30
1686
原创 typescript——5、泛型
定义泛型:软件工程中,我们不仅要创建一致的定义良好的API,同时也要考虑可重用性。组件不仅能够支持当前的数据类型,同时也支持未来的数据类型,这在创建大型系统时为你提供了十分灵活的功能通俗理解:泛型就是解决类 接口 方法的复用性、以及对不特定数据类型的支持// 泛型:可以支持不特定的数据类型 要求:传入的参数和返回的参数一致// 表示泛型,具体什么类型是调用这个方法的时候决定的function getData<T>(value:T):T{ return value}get
2020-09-14 23:12:59
88
原创 typescript——接口
接口的作用:在面向对象的编程中,接口是一种规范的定义,它定义了行为和动作的规范,在程序设计里面,接口起到一种限制和规范的作用,接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部状态数据,也不关心这些类里方法的实现细节,它只规定这批类里方法的实现细节,它只规定这批类里必须提供某些方法,提供这些方法的类就可以满足实际需要。属性接口(对json的约束)对传入的对象进行约束function printLabel(labelInfo:{label:string}):void{ console.l
2020-09-03 23:25:07
115
原创 typescript——4、类
ts中类的定义class Person{ name:string; constructor(n:string){ this.name = n } getName():string{ return this.name } setName(name:string):void{ this.name = name }}var p = new Person("张三")p.getName()p.set
2020-08-23 22:09:53
590
原创 typescript——3、函数
函数的定义函数声明法function run():string{ return 'run'}匿名函数var fun = function():string{ return 'run'}定义方法传参函数声明法function getInfo(name:string,age:number):string{ return `${name}---${age}`}getInfo('zhangsan',20)匿名函数法var getInfo = functio
2020-08-23 15:59:29
125
原创 typescript——2、数据类型
布尔类型(boolean)数字类型(number)字符串类型(number)数组类型(array)元组类型(tuple)枚举类型(enum)任意类型(any)null和undefinedvoid类型never类型布尔类型var flag:boolean = true数字类型var a:number = 123字符串类型var str:string = 'sasd'数组类型var arr:number[] = [222]let arr2:Array.
2020-08-13 23:53:17
92
原创 typescript——1、开始
typescript的安装npm install -g typescript 或cnpm install -g typescript 或yarn global add typescriptts文件的编译浏览器不支持ts,需要先编译成ES5//使用命令tsc index.ts如果想即时生效创建tsconfig.json文件 tsc --init生成配置文件将tsconfig.json文件中的“outDir”改为 ‘./js’终端——运行任务——typescript——监视tscon
2020-08-13 00:01:28
84
原创 JavaScript之数组常用方法
pop和pushpop:删除并返回数组的最后一个元素push:向数组的末尾添加一个或多个元素,并返回新的长度会改变原数组// pop()和push()let arr1 = ['red','yellow','orange']console.log(arr1.pop(),arr1) // "orange" ,['red','yellow']console.log(arr1.push("orange","black"),arr1) //4, ['red','yellow','orange','b
2020-05-31 16:35:37
129
原创 JavaScript之String常用方法
chartAt和charCodeAt和codePointAtcharAt:返回指定位置的字符let s = "hello"console.log(s.charAt(2)) // lcharCodeAt:返回指定位置的字符编码let s = "hello"console.log(s.charCodeAt(2)) //108注:当需要4个字节存储汉字时(????),返回前两个字节和后两个字节的值let str = '????'console.log(str.charCodeAt(0
2020-05-25 11:57:07
180
原创 JavaScript-操作符
一元操作符1.递增和递减操作符前置操作符(++a / --a)变量的值是在求值以前被改变var age = 29var anotherage = --age+2 //30后置操作符 (a++ / a–)递增和递减操作是在包含他们的语句被求值后才执行的var num1 = 2var num2 = 20var num3 = num1-- + num2 // 22这四个...
2020-05-03 10:25:58
90
原创 CommomJS练习
案例:A/B/C三个模块A中有一个sum方法:实现任意数求和B中有一个avg方法:实现任意数求平均(先求和再求平均:B中用到A)C中调取B中的avg,实现12,23,34,45,56,67,78,89求平均数
2020-04-14 11:00:36
238
原创 NODE入门
NODE入门NODE本身是基于CommonJS模块规范设计的,所以模块是NODE的组成内置模块:NODE天生提供给JS调取使用的第三方模块:别人写好的,我们可以基于NPM安装使用自定义模块:自己创建一些模块CommonJS模块化设计的思想(AMD/CMD/ES6 MODULE都是模块设计思想)CommonJS规定,每一个JS都是一个单独的模块(模块是私有的:里面涉及的值和变量以及...
2020-04-13 23:01:33
93
原创 基于NPM/YARN安装第三方模块---本地和全局的区别
安装在本地和全局的区别1.安装在全局的特点所有的项目都可以使用这个模块(1)容易导致版本冲突(2)安装在全局的模块不能基于CommonJS模块规范调取使用(不能在js中通过require调取使用)List item2.安装在本地的特点只能在当前项目使用这个模块不能直接的使用命令操作(安装在全局可以使用命令)3.为什么安装在全局可以使用命令npm root / -...
2020-04-13 11:59:07
1052
原创 Node介绍
1.什么是NODE基于V8引擎(谷歌浏览器的引擎)渲染JS的工具或环境2.安装NODE网址:https://nodejs.org/en/node安装完成后:(1)当前电脑自动安装了npmnpm:一个JS模块管理的工具,基于npm可以安装下载JS模块(2)它会生成一个node执行的命令(可以在DOS窗口会终端命令中执行,node xxx.js)3.如何在NODE中渲染和解析JSR...
2020-04-12 17:15:45
72
原创 JavaScript----数据类型
1.typeof操作符typeof 返回以下几种类型:“undefined”“boolean”“string”“number”“function”“object”2.undefined类型声明变量但未对其加以初始化时,这个变量的值就是undefined引用未初始化的变量会报错 XXX is not defined注:对未初始化和未声明的变量执行typeof操作符都返回u...
2020-04-12 11:19:43
98
原创 JSX渲染机制
JSX渲染机制基于Babel中的语法解析模块(BABEL-PRSET-REACT)把JSX编译为React.createElement()结构,如图2.React.createElement()执行,创建一个对象(虚拟DOM),返回的对象如下格式:{ $$typeof: Symbol(react.element) type: "h1" key: "12" ref: "aa" p...
2020-03-24 15:51:09
707
原创 2020面试准备13----依次输出的是多少
function Foo(){ Foo.a = function(){ console.log(1) } this.a = function() { console.log(2) }}// 把Foo当做类,在原型上设置实例公有的属性方法 => 实例.a()Foo.prototype.a = function(){ console.log(3)}// 把Foo当做普...
2020-03-15 10:57:29
59
原创 2020面试准备13----实现一个字符串匹配算法
实现一个字符串匹配方法,从字符串S中,查找是否从存在字符串T。若存在返回所在位置,不存在返回-1(不基于indexof/includes)1、使用substr~function(){ function myIndexOf(T){ let lenT = T.length, lenS = this.length for(let i=0;i<lenS-lenT+1;i++){...
2020-03-15 09:43:58
180
原创 2020面试准备12----如何把一个字符串的大小写取反(大写变小写或小写变大写)
let str = "adsfsgEREvg啦啦啦啦啦dfsfr";str = str.replace(/[a-zA-Z]/g,content=>{ console.log(content) // content=>每一次正则匹配的结果 return content.toUpperCase()===content?content.toLowerCase():content.to...
2020-03-15 08:34:47
430
原创 2020面试准备11----箭头函数与普通函数的区别是什么?构造函数(function)可以使用new生成实例,箭头函数可以吗?
箭头函数与普通函数的区别是什么?构造函数(function)可以使用new生成实例,箭头函数可以吗?1.箭头函数和普通函数的区别(1)箭头函数语法上比普通函数更加简洁(2)箭头函数没有自己的this,它里面出现this是继承函数所处上下文中的this,(使用call,apply等任何方式都无法改变this的指向)(3)箭头函数中没有arguments(类数组),只能基于…ARG获取传递的参...
2020-03-14 23:50:41
929
原创 2020面试准备9----实现(5).add(3).minus(2),使其输出结果为:6
// 实现(5).add(3).minus(2),使其输出结果为:6~ function(number){ // 每一个方法执行完,都要返回Number这个类的实例,这样才可以继续取Number类原型中的方法(链式写法) function check(number){ number = Number(number) return isNaN(number)?0:number } ...
2020-03-02 14:53:45
359
原创 2020面试准备8----call和apply的区别
1、call和apply都是函数原型上的方法2、都是用来改变this指向的,传递的第一个参数均为要改变的this的对象33、不同的是,call传递后面的参数时,需要一个一个传递,apply传递后面参数时,以数组的形式传递4、当后面参数超过三个时,使用call的性能要比apply的性能要好一点5、关于bind:fn.bind(obj)bind方法只是预先把fn的this改为obj,此时fn...
2020-03-02 14:02:04
198
1
原创 2020面试准备7----一道阿里面试题
做题之前需要知道的:一、变量提升1.变量提升。使用var来声明变量的时候,会提到当前作用域最顶端,赋值操作在原处不变2.函数提升。函数的声明有两种方式。(1)函数式声明function bar () {}(2)函数字面量式声明var foo = function () {}函数字面量式声明的提升和变量的提升是一样的,函数只是一个具体的值但函数声明式的提升会提升到作用域的最前面...
2020-02-23 11:39:06
179
1
原创 vue-loader是什么?使用它的途径有哪些?
一、vue-loader作用:解析和转换.vue文件。提取出其中的逻辑代码 script,样式代码style,以及HTML 模板template,再分别把他们交给对应的loader去处理二、用途js可以写es6,style样式可以写scss或less、template可以加jade等三、css-loader:加载由vue-loader提取出的CSS代码vue-template-comp...
2020-02-22 12:15:50
15228
原创 vue中v-if和v-show的区别
1、v-if是真正的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当的被销毁和重建2、v-if也是惰性的,如果在初始渲染时条件为假,则什么也不做直到第一次条件为真时,才会开始渲染条件块3、相比之下,v-show简单的多,无论初始条件是什么,元素总是会被渲染,并且只是简单的基于CSS进行切换4、一般来说,v-if有更高的切换开销,而v-show有更高的初始渲染开销。因此,如果...
2020-02-22 11:09:24
99
原创 2020面试准备6----js对象的浅拷贝和深拷贝
一、浅拷贝(只克隆第一级)1、不使用es6<script> let obj = { a:100, b:[10,20,30], c:{ x:10 }, d:/^\d+$/ } let obj2 = {} for(let key in obj){ // 使用 for in 循环遍历对象的属性时,原型链上的所有属性都将被访问 // 只遍历对象自身...
2020-02-15 23:17:21
136
原创 2020面试准备5----堆栈内存题和闭包作用域的题
1.第一道let a = {}, b = '0', c = 0a[b] = '张三'a[c] = '李四'console.log(a[b])//李四原因:一个对象中的属性名不能重复,属性名一般都是字符串,在这里,字符串‘0’和数字0是一样的2.第二道let a = {} b = Symbol('1') c = Symbol('1')a[b] = '张三'a[c] = '...
2020-02-12 12:21:10
130
原创 2020面试准备4----经典布局,左定右定,中间自适应
一、圣杯布局<body> <div class="container clearfix"> <div class="center"></div> <div class="left"></div> <div class="right"></div> </div> ...
2020-02-06 17:58:34
300
原创 2020准备面试3----盒模型
一、标准盒模型box-sizing:content-box样式中的width height是指内容content的宽高,不是整个盒子的宽高,整个盒子的宽高是由margin+ padding+ border +content组成的二、IE盒模型box-sizing:border-box样式中的width 和height指的是盒子的大小,不是内容content 的大小,无论怎样调整paddi...
2020-02-06 11:52:05
76
原创 2020面试准备2---标签
一、标签语义化合理的标签做合理的事情二、有哪些标签1、块状标签div p h1~h6 ul ol dl dt header footer main section article table form2、行内a span small strong em i label3、行内块img input三、区别1、块状标签(1)每个元素独占一行或多行(2)可以手动设置宽高(3)宽...
2020-02-06 11:04:59
118
原创 2020面试准备1----水平垂直居中的几种方式
(为了方便阅读,我把基础部分css和居中的css分开来写)一、使用定位方法1:top和left分别为50%,再使用margin-left和margin-top设置负的宽高(这种方法需要知道子盒子的宽高)<style> .father{ height: 300px; width: 600px; background:yellow; overfl...
2020-02-05 13:56:11
210
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人