自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (1)
  • 收藏
  • 关注

原创 AgoraRtc Vue

VideoSender提供两种方式设置自定义播放器:插槽方式指定播放器窗口指令方式指定播放器窗口。

2023-06-24 13:58:17 318

原创 MongoDB知识点

Mongoose 是一个对象文档模型(ODM)库,它对Node原生的MongoDB模块进行了进一步的优化封装,并提供了更多的功能。官网。

2023-04-27 10:37:49 103

原创 VSCode配置代码片段

配置用户代码片段

2022-11-07 11:22:19 123

原创 20-声明合并

声明合并如果定义了两个相同名字的函数、接口或类,那么它们会合并成一个类型:函数的合并§之前学习过,我们可以使用重载定义多个函数类型:function reverse(x: number): number;function reverse(x: string): string;function reverse(x: number | string): number | string { if (typeof x === 'number') { return Number(x

2021-10-19 10:04:03 108

原创 18-类与接口

18-类与接口之前学习过,接口(Interfaces)可以用于对「对象的形状(Shape)」进行描述。这一章主要介绍接口的另一个用途,对类的一部分行为进行抽象。类实现接口§实现(implements)是面向对象中的一个重要概念。一般来讲,一个类只能继承自另一个类,有时候不同类之间可以有一些共有的特性,这时候就可以把特性提取成接口(interfaces),用 implements 关键字来实现。这个特性大大提高了面向对象的灵活性。举例来说,门是一个类,防盗门是门的子类。如果防盗门有一个报警器的功能,

2021-10-19 10:02:55 88

原创 17- 类

类传统方法中,JavaScript 通过构造函数实现类的概念,通过原型链实现继承。而在 ES6 中,我们终于迎来了 class。TypeScript 除了实现了所有 ES6 中的类的功能以外,还添加了一些新的用法。这一节主要介绍类的用法,下一节再介绍如何定义类的类型。类的概念§虽然 JavaScript 中有类的概念,但是可能大多数 JavaScript 程序员并不是非常熟悉类,这里对类相关的概念做一个简单的介绍。类(Class):定义了一件事物的抽象特点,包含它的属性和方法对象(Objec

2021-10-19 10:02:36 169

原创 16-枚举

枚举枚举(Enum)类型用于取值被限定在一定范围内的场景,比如一周只能有七天,颜色限定为红绿蓝等。简单的例子§枚举使用 enum 关键字来定义:enum Days {Sun, Mon, Tue, Wed, Thu, Fri, Sat};枚举成员会被赋值为从 0 开始递增的数字,同时也会对枚举值到枚举名进行反向映射:enum Days {Sun, Mon, Tue, Wed, Thu, Fri, Sat};console.log(Days["Sun"] === 0); // truecon

2021-10-19 10:01:54 98

原创 15-字符串字面量类型

字符串字面量类型字符串字面量类型用来约束取值只能是某几个字符串中的一个。简单的例子§type EventNames = 'click' | 'scroll' | 'mousemove';function handleEvent(ele: Element, event: EventNames) { // do something}handleEvent(document.getElementById('hello'), 'scroll'); // 没问题handleEvent(doc

2021-10-19 10:01:14 211

原创 14-类型别名

类型别名类型别名用来给一个类型起个新名字。简单的例子§type Name = string;type NameResolver = () => string;type NameOrResolver = Name | NameResolver;function getName(n: NameOrResolver): Name { if (typeof n === 'string') { return n; } else { return n()

2021-10-19 10:00:41 61

原创 13-内置对象

内置对象JavaScript 中有很多内置对象,它们可以直接在 TypeScript 中当做定义好了的类型。内置对象是指根据标准在全局作用域(Global)上存在的对象。这里的标准是指 ECMAScript 和其他环境(比如 DOM)的标准。ECMAScript 的内置对象§ECMAScript 标准提供的内置对象有:Boolean、Error、Date、RegExp 等。我们可以在 TypeScript 中将变量定义为这些类型:let b: Boolean = new Boolean(1);

2021-10-19 10:00:14 85

原创 12-声明文件

声明文件当使用第三方库时,我们需要引用它的声明文件,才能获得对应的代码补全、接口提示等功能。新语法索引§由于本章涉及大量新语法,故在本章开头列出新语法的索引,方便大家在使用这些新语法时能快速查找到对应的讲解:declare var 声明全局变量declare function 声明全局方法declare class 声明全局类declare enum 声明全局枚举类型declare namespace 声明(含有子属性的)全局对象interface 和 type 声明全局类型expor

2021-10-19 09:59:36 140

原创 11-类型断言

类型断言类型断言(Type Assertion)可以用来手动指定一个值的类型。语法§值 as 类型或<类型>值在 tsx 语法(React 的 jsx 语法的 ts 版)中必须使用前者,即 值 as 类型。形如 `` 的语法在 tsx 中表示的是一个 ReactNode,在 ts 中除了表示类型断言之外,也可能是表示一个泛型。故建议大家在使用类型断言时,统一使用 值 as 类型 这样的语法,本书中也会贯彻这一思想。类型断言的用途§类型断言的常见用途有以下几种:将一个联合

2021-10-19 09:58:48 284

原创 10-函数的类型

函数的类型函数是 JavaScript 中的一等公民函数声明§在 JavaScript 中,有两种常见的定义函数的方式——函数声明(Function Declaration)和函数表达式(Function Expression):// 函数声明(Function Declaration)function sum(x, y) { return x + y;}// 函数表达式(Function Expression)let mySum = function (x, y) {

2021-10-18 10:10:55 105

原创 09-数组的类型

数组的类型在 TypeScript 中,数组类型有多种定义方式,比较灵活。「类型 + 方括号」表示法§最简单的方法是使用「类型 + 方括号」来表示数组:let fibonacci: number[] = [1, 1, 2, 3, 5];数组的项中不允许出现其他的类型:let fibonacci: number[] = [1, '1', 2, 3, 5];// Type 'string' is not assignable to type 'number'.数组的一些方法的参数也会根据数

2021-10-18 10:10:19 116

原创 08-接口

对象的类型——接口在 TypeScript 中,我们使用接口(Interfaces)来定义对象的类型。什么是接口§在面向对象语言中,接口(Interfaces)是一个很重要的概念,它是对行为的抽象,而具体如何行动需要由类(classes)去实现(implement)。TypeScript 中的接口是一个非常灵活的概念,除了可用于对类的一部分行为进行抽象以外,也常用于对「对象的形状(Shape)」进行描述。简单的例子§interface Person { name: string;

2021-10-18 10:09:48 101

原创 07-联合类型 2021-10-18

联合类型联合类型(Union Types)表示取值可以为多种类型中的一种。简单的例子§let myFavoriteNumber: string | number;myFavoriteNumber = 'seven';myFavoriteNumber = 7;let myFavoriteNumber: string | number;myFavoriteNumber = true;// index.ts(2,1): error TS2322: Type 'boolean' is not as

2021-10-18 10:08:22 84

原创 06-类型推断

类型推论如果没有明确的指定类型,那么 TypeScript 会依照类型推论(Type Inference)的规则推断出一个类型。什么是类型推论§以下代码虽然没有指定类型,但是会在编译的时候报错:let myFavoriteNumber = 'seven';myFavoriteNumber = 7;// index.ts(2,1): error TS2322: Type 'number' is not assignable to type 'string'.事实上,它等价于:let myF

2021-10-18 10:07:23 77

原创 05-任意值

任意值任意值(Any)用来表示允许赋值为任意类型。什么是任意值类型§如果是一个普通类型,在赋值过程中改变类型是不被允许的:let myFavoriteNumber: string = 'seven';myFavoriteNumber = 7;// index.ts(2,1): error TS2322: Type 'number' is not assignable to type 'string'.但如果是 any 类型,则允许被赋值为任意类型。let myFavoriteNumber

2021-10-18 10:06:36 193

原创 03-helloworld

Hello TypeScript我们从一个简单的例子开始。将以下代码复制到 hello.ts 中:function sayHello(person: string) { return 'Hello, ' + person;}let user = 'Tom';console.log(sayHello(user));然后执行tsc hello.ts这时候会生成一个编译好的文件 hello.js:function sayHello(person) { return 'He

2021-10-18 10:06:10 47

原创 04-原始数据类型

原始数据类型JavaScript 的类型分为两种:原始数据类型(Primitive data types)和对象类型(Object types)。原始数据类型包括:布尔值、数值、字符串、null、undefined 以及 ES6 中的新类型 Symbol。本节主要介绍前五种原始数据类型在 TypeScript 中的应用。布尔值§布尔值是最基础的数据类型,在 TypeScript 中,使用 boolean 定义布尔值类型:let isDone: boolean = false;// 编译通过

2021-10-18 10:05:32 112

原创 02-安装TypeScript 2021-10-18

安装 TypeScriptTypeScript 的命令行工具安装方法如下:npm install -g typescript以上命令会在全局环境下安装 tsc 命令,安装完成之后,我们就可以在任何地方执行 tsc 命令了。编译一个 TypeScript 文件很简单:tsc hello.ts我们约定使用 TypeScript 编写的文件以 .ts 为后缀,用 TypeScript 编写 React 时,以 .tsx 为后缀。tsc --outFile ./dist/abc.js hello.

2021-10-18 10:04:04 44

原创 01-什么是typescript

什么是 TypeScript首先,我对 TypeScript 的理解如下:TypeScript 是 JavaScript 的一个超集,主要提供了类型系统和对 ES6 的支持,它由 Microsoft 开发,代码开源于 GitHub 上。其次引用官网的定义:TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. Any browser. Any host. Any OS. Open source.

2021-10-18 10:00:13 72

原创 vue 中 axios二次封装,接口统一存放

一、基于框架:vue二、基于http库:axios三、基本用法:1.通过node安装:npm install axios2. 在项目目录的src文件夹下新建providers文件夹,在该文件夹内新建http-service.js文件,内容如下代码块:import axios from 'axios';axios.defaults.timeout = 5000;axios.defaults.baseURL ='http://www.baidu.com'; //填写域名//http re

2021-02-20 15:36:13 142

原创 音视频js相关属性

###音视频js相关属性currentTime : 开始到播放现在所用的时间(可读写)duration : 媒体总时间(只读)muted : 是否静音(可读写,相比于volume优先级要高)volume : 0.0-1.0的音量相对值(可读写)paused : 媒体是否暂停(只读)ended : 媒体是否播放完毕(只读)e...

2020-10-14 16:53:15 609

原创 通过命令创建vue项目( 0 - 1 多种方法)

环境要求: 安装有 Node.js、 vue、 vue-cli 。node下载地址https://nodejs.org/en/查看nodejs版本和npm版本,在命令行中输入:node -vnpm -v npm更新到最新的版本npm install -g npm淘宝 NPM 镜像,大家都知道国内直接使用npm 的官方镜像是非常慢的,这里推荐使用淘宝 NPM 镜像npm install -g cnpm --registry=https://registry.npm.taoba

2020-10-14 16:41:28 271

原创 创建React项目命令流程

使用官方脚手架creact-react-app//首先通过npm全局安装create-react-appnpm install -g create-react-app//然后使用create-react-app命令来创建项目create-react-app <项目名>//创建my-app项目create-react-app my-appcd my-appnpm run start 或 yarn start安装webpack首先安装webpack和webpack-

2020-10-14 15:40:51 2497

原创 This相关

<script> /* this指向于谁? 看函数调用位置上的调用形式 独立调用( fn() ) ---> this指向window 构造调用( new fn() ) ---> this指向当前new调用创建的实例 隐式调用( obj.fn() ) ---> this指向调用者 显示调用( fn.call(obj) fn.apply(obj)) ---

2020-10-10 11:57:34 87

原创 Promise相关知识M

<head> <meta charset="UTF-8"> <title>Title</title> <!-- 1. 函数化编程 2. 异步编程 浏览器的一个软件 它的模型是多进程 多线程的!! 浏览器中解析js的v8引擎 是单线程的 而且在浏览器中 只有v8引擎有能力执行js代码 队列: --></head

2020-10-10 11:56:13 73

原创 Flex布局相关知识M

核心概念容器 & 项目主轴 & 侧轴flex 容器上的属性flex-direction : 控制了主轴是哪一根;控制侧轴是哪一根;控制主轴的方向 row : 主轴是x轴 方向是正方向 侧轴是y轴 row-reverse: 主轴是x轴 方向是反方向 侧轴是y轴 column: 主轴是y轴 方向是正方向 侧轴是x轴 column-reverse: 主轴是y轴 方向是反方向 侧轴是x轴flex-wrap : 控制了侧轴的方向 no-wrap 侧轴

2020-10-10 11:51:53 135

原创 常用数组方法M

isArray<script type="text/javascript"> var arr =[1,2,3]; console.log(typeof arr); //Array.isArray(obj) 用于确定传递的值是否是一个 Array Array.isArray([1, 2, 3]); // true Array.isArray({foo: 123}); // false Array.isArray("foobar"); // fa

2020-10-10 11:47:53 208

原创 Ajax基础知识M

Ajax是浏览器提供的一套方法,可以实现页面无刷新跟新数据,提高用户浏览器网站应用的体验应用场景:1 页面上拉加载更多数据2 列表数据无刷新分页3 表单项离开焦点数据验证4 搜索框提示文字下拉列表运行环境Ajax技术需要运行在网站环境中才能生效app.js引入express模块const express=require('express');路径处理模块const path=require('path');创建web服务器const app=express();静态资源访问

2020-05-16 10:58:05 159

原创 ES567相关知识M

**es5**一、严格模式:(了解)理解:除了正常运行模式(混杂模式),ES5添加了第二种运行模式:“严格模式”(strict mode)。顾名思义,这种模式使得Javascript在更严格的语法条件下运行目的/作用消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为消除代码运行的一些不安全之处,为代码的安全运行保驾护航为未来新版本的Javascript做好铺垫使用在全局或函数的第一条语句定义为: ‘use strict’;如果浏览器不支持,

2020-05-12 14:58:41 680

原创 JS高级M

轮播图步骤:第一步: 结构 结构牢记第二步:css 外面小盒子根据图片的宽度进行设置 内部大盒子 宽度是根据图片的个数进行的设置的第三步: js行为//1、点击按钮让图片先动起来(只点击右侧) 每次点击要准备走的距离都是-600,这个距离需要用定时器慢慢走,// 需要求每一步的距离 元素起始位置我们是可以获取到的, 结束位置我们也求出来; //2、 看什么时候元素停止,当刚好元素走的位置和开启求出来的结束位置一样的时候,停止定时器; //3、左

2020-05-12 14:55:31 203

原创 JS函数对象作用域(基础)

函数函数的定义:(三要素:功能、参数、返回值); //1、字面量定义 function printLove(n){ //函数体 for(var i = 0; i < n; i++){ console.log('i love you~ zhao li ying~'); } return 1000000; } //2、函数表达式定义; var printLove = function(){ /

2020-05-12 14:35:33 354

原创 HTML/CSS基础知识M

路径上一级相对路径:网页在另一个文件夹(最少是平级文件夹)中,是返回文件夹的动作,注意:需要写…/同级相对路径:网页和其它文件在同一个目录下下一级相对路径:其它文件在另一个文件夹(最少是平级文件夹)中,是双击文件夹的动作,注意:需要准确的写出文件夹的名字用/绝对路径:文件所在磁盘中的物理位置, 浏览器出于安全的考虑,不能直接访问磁盘中的文件,可以通过ip访问文件,域名不一定是网页,有可能是某个文件或者接口html5新增类一些常用标签和一些功能,不能在ie低版本下使用,h5通常指的就是移动端

2020-05-12 13:55:32 151

原创 项目上线相关配置M

1.通过node创建web服务器创建node项目,并安装express,通过express快速创建web服务器,将vue打包生成的dist文件夹,托管为静态资源即可,关键代码如下:例如创建 mtt_server 文件夹终端下执行:(1) npm init -y(2) npm i express -S将dist文件夹拷贝到mtt_server文件夹app.jsconst express=require('express')const compression=require('c

2020-05-12 12:29:28 274

原创 Ajax基础M

ajax返回的状态参考回答:0 - (未初始化)还没有调用send()方法1 - (载入)已调用send()方法,正在发送请求2 - (载入完成)send()方法执行完成,已经接收到全部响应内容3 - (交互)正在解析响应内容4 - (完成)响应内容解析完成,可以在客户端调用了实现一个Ajax参考回答:AJAX创建异步对象XMLHttpRequest操作XMLHttpRequest 对象(1)设置请求参数(请求方式,请求页面的相对路径,是否异步)(2)设置回调函数,一个处理服务器响

2020-05-10 09:40:57 139

原创 VUE相关

vue的生命周期11个生命周期钩子:beforeCreatecreatedbeforeMountmountedbeforeUpdateupdatedactivateddeactivatedbeforeDestroydestroyederrorCapturedVue实例有一个完整的生命周期,也就是从开始创建、初始化数据、编译模板、挂载Dom、渲染→更新→渲染、销毁等一系列过程,我们称这是Vue的生命周期。通俗说就是Vue实例从创建到销毁的过程,就是生命周期。每一个组件或者实例都会经

2020-05-10 09:32:28 126

原创 JS面试相关

说说前端中的事件流HTML中与javascript交互是通过事件驱动来实现的,例如鼠标点击事件onclick、页面的滚动事件onscroll等等,可以向文档或者文档中的元素添加事件侦听器来预订事件。想要知道这些事件是在什么时候进行调用的,就需要了解一下“事件流”的概念。什么是事件流:事件流描述的是从页面中接收事件的顺序,DOM2级事件流包括下面几个阶段。事件捕获阶段处于目标阶段事件冒泡阶段addEventListener:addEventListener 是DOM2 级事件新增的指定事件处理程序

2020-05-10 09:20:32 202

原创 CSS面试M

说一下css盒模型简介:就是用来装页面上的元素的矩形区域。CSS中的盒子模型包括IE盒子模型和标准的W3C盒子模型。box-sizing(有3个值):border-box,padding-box,content-box.标准盒子模型的盒子宽度:左右border+左右padding+widthIE盒子模型的盒子宽度:width在CSS3中引入了box-sizing属性,box-sizing:content-box;表示标准的盒子模型,box-sizing:border-box表示的是IE盒子模型最

2020-05-10 08:59:55 201

vite-project.rar

vite-project.rar

2022-01-06

空空如也

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

TA关注的人

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