
js
js
一介白衣ing
。。。
展开
-
走进TypeScript之装饰器
初识什么是装饰器?在一些场景下我们需要额外的特性来支持标注或修改类及其成员。我们使用装饰器来实现。装饰器是一种设计模式,可以动态的实现对类属性的修改,而不需要重载,实现了最大的灵活性。ts中装饰器怎样实现?首先运行时开启:tsc yourDecorator.ts --target ES5 --experimentalDecorators或者使用配置方式:tsconfig.json{ "compilerOptions": { "target":原创 2021-12-27 12:00:24 · 398 阅读 · 1 评论 -
走进TypeScript之高级类型
Symbolsymbol生成一个唯一值,symbol类型的值是通过Symbol构造函数创建(es6之后支持)let sym= Symbol();symbol值是绝对唯一的,两个同参数的symbol也是不相等的let sym2 = Symbol("abc");let sym3 = Symbol("abc");sym2 === sym3; // false, symbols是唯一的用作对象属性的键let sym = Symbol();let obj = { [sy.原创 2021-12-24 19:15:56 · 277 阅读 · 0 评论 -
走进TypeScript之Mixins的实现
初识Mixins解决的问题:以一种可重用组件的形式,实现对单个类的扩展实现:1.定义一个class, 使用implements关键字联合另外的若干个类。2.为了让编译器知道mixin进来的类属性方法在运行时是可用的,要对mixin进来的属性方法创建出占位属性。3.定义函数来实现混入操作,遍历所有的mixins类的属性,并复制到目标类。class Eat { prepareEat() { console.log("prepareEat"); }}class原创 2021-12-24 18:49:57 · 637 阅读 · 0 评论 -
走进TypeScript之泛型
初识泛型,指可以适用于多个类型,并且保证数据不丢失。用法:使用尖括号包裹类型定义符T(T可以为其他字符)// 泛型写法,保证数据不丢失,参数类型和返回值类型是一致的。function identity2<T>(arg: T): T { return arg;}泛型函数function identity4<T>(arg: Array<T>): Array<T> { return arg;}泛型接口interfac原创 2021-12-24 18:45:51 · 328 阅读 · 0 评论 -
走进TypeScript之函数
定义可以有名字也可以匿名。还可以赋值给一个变量。// Named functionfunction add(x, y) { return x + y;}// Anonymous functionlet myAdd = function(x, y) { return x + y; };函数类型和接口函数有点类似,函数类型需要定义函数参数名称(形式)和参数类型以及返回值类型。let myAdd: (x: number, y: number) => number =原创 2021-12-24 18:34:45 · 189 阅读 · 0 评论 -
走进TypeScript之类
说在前面这里主要将ts中类的使用的一些特性,和其他语言面向对象相通的地方这里就不做多余赘述。readonly修饰符和参数属性使用readonly关键字将属性设置为只读的。 只读属性必须在声明时或构造函数里被初始化。将只读属性作为构造函数的参数传入。参数属性可以方便地让我们在一个地方定义并初始化一个成员class Octopus { readonly numberOfLegs: number = 8; constructor(readonly name: string).原创 2021-12-24 18:15:38 · 150 阅读 · 0 评论 -
走进TypeScript之接口
初识接口是一种数据类型,它好比一个名字,是对某一类数据对象的描述。区别于其他语言的接口,ts接口只注重外形,而不是实现。interface LabelledValue { label: string;}function printLabel(labelledObj: LabelledValue) { console.log(labelledObj.label);}let myObj = {size: 10, label: "Size 10 Object"};printLabe原创 2021-12-24 17:53:27 · 705 阅读 · 0 评论 -
走进TypeScript之数据基础类型
布尔值和其他语言一样,两个值,true和falselet isDone: boolean = false;数字所有数字都是浮点数,类型名称叫numberlet decLiteral: number = 6;let hexLiteral: number = 0xf00d;let binaryLiteral: number = 0b1010;let octalLiteral: number = 0o744;字符串可以定义多行文本,也可以包含表达式let name: s原创 2021-12-24 09:26:55 · 435 阅读 · 1 评论 -
走进TypeScript之ts初识和安装配置
初始TypeScript中文网 · TypeScript——JavaScript的超集TypeScript 相当于做了对JavaScript这个动态语言做了一个规范,ts是基于数据结构方面的。因为严格的结构规范,保证我们开发者在开发过程中,避免出现运行时的一些未知错误,在ts环境中,编译的时候就会返回错误。安装安装TypeScript编译工具之前,请确保你已经安装了npmnpm install -g typescript这样我们就可以使用ts了。TypeScript代码放在...原创 2021-12-23 19:17:52 · 655 阅读 · 2 评论 -
js基础之Promises和async/await
MDN地址:Promises:优雅的异步处理 - 学习 Web 开发 | MDN async和await:让异步编程更简单 - 学习 Web 开发 | MDNasync和await: async和await:让异步编程更简单 - 学习 Web 开发 | MDNPromises顾名思义,Promise表示一个承诺。承诺未来某个时间会执行某个操作。Promise主要是为了解决js编程中回调地狱的问题。先看一个旧式的例子:chooseToppings(function(top...原创 2021-12-22 19:14:02 · 477 阅读 · 1 评论 -
js基础之正则表达式
正则几乎每种语言字符串类型都支持正则匹配,固定场景的字符串可能都有固定的规则,我们设定好一个规则,验证目标字符串是否符合规则。比如验证手机号码,验证邮箱等等。正则匹配规则先看几个简单的正则匹配规则示例:用\d可以匹配一个数字,\w可以匹配一个字母或数字。比如:'11\d' 可以匹配'110',因为0是数字;'\d\d\d'也可以匹配'110',因为1、1、0都是数字;'\w\w\w' 可以匹配'abc',因为a、b、c都是数字;使用 . 可以匹配任意字符。比如:'shabi.' 可以匹配原创 2021-03-05 09:52:58 · 1409 阅读 · 2 评论 -
js基础之JSON
什么是jsonJSON是JavaScript Object Notation的缩写,是一种数据交换格式。json中的数据类型一共有六种:number:JavaScript的number;boolean:JavaScript的true或false;string:JavaScript的string;null:JavaScript的null;array:JavaScript的Array表示方式——[];object:JavaScript的{ … }表示方式。json序列化就是把JavaS原创 2021-03-04 17:28:44 · 456 阅读 · 3 评论 -
js基础之Date对象以及日期和时间戳的转换
js中使用Date对象来表示时间和日期:获取年月日时分秒和星期等var now = new Date();now;now.getFullYear(); // 2021, 年份now.getMonth(); // 2, 月份,月份范围是0~11,2表示3月now.getDate(); // 4, 表示4号now.getDay(); // 3, 星期三now.getHours(); // 16, 表示19hnow.getMinutes(); // 41, 分钟now.getSeconds(原创 2021-03-04 17:02:34 · 1432 阅读 · 2 评论 -
js基础之闭包
闭包闭包是一种实现方式(俺是这样想的),可以是一个可执行函数,js的每个对象其实都是闭包的实现方式。闭包的特性闭包可以访问外部作用域,即使这个外部作用域已经执行结束。当你定义一个函数时候,实际就是一种闭包的实现方式。只有当这个函数不被其他任何地方调用的时候,闭包就结束了。闭包可以让作用域里的 变量,在函数执行完之后依旧保持没有被垃圾回收处理掉使用示例举个栗子: "use strict"; var myClosure = (function outerFunction() { va原创 2021-03-04 14:48:58 · 148 阅读 · 1 评论 -
js中基础之函数中的this和箭头函数
变量和常量js中使用const声明一个常量const PI = 3.14使用var 和 let声明变量var a = 1;let b = 2;那么使用let和var声明变量有什么区别呢?let可以定义块级作用域变量let没有变量提升let声明的变量不能重复声明js中的this先来看一个对象中的一个方法:var xiaoming = { name: '小明', birth: 1996, age: function () { var y =原创 2021-03-04 10:08:02 · 406 阅读 · 15 评论 -
js基础之变量作用域和变量提升以及解构赋值
变量作用域首先来看一个例子:var a = 1;function test(){ console.log(a); // 1 var b = 2; console.log(b); // 2 for(var i=10; i<13; i++) { console.log(i) } console.log(i) // 13}test()// console.log(b) 直接报错:Uncaught ReferenceError:原创 2021-03-03 11:54:01 · 182 阅读 · 0 评论 -
js基础之函数
定义JavaScript 函数是被设计为执行特定任务的代码块。会在某代码调用它时被执行。实例function abs(x) { if (typeof x !== 'number') { throw 'Not a number'; } if (x >= 0) { return x; } else { return -x; }}函数赋值给变量js的函数本质也是一个对象,因此可以赋值给变量。var abs原创 2021-03-03 10:48:28 · 267 阅读 · 0 评论 -
js基础之Map和Set
MapMap是一组键值对的结构,具有极快的查找速度。使用Javascript创建一个学生姓名和成绩的map:var m = new Map([[‘Michael’, 95], [‘Bob’, 75], [‘Tracy’, 85]]);m.get(‘Michael’); // 95初始化Map需要一个二维数组,或者直接初始化一个空Map。Map具有以下方法:var m = new Map(); // 空Mapm.set('Adam', 67); // 添加新的key-valuem.set('B原创 2021-03-02 16:38:32 · 185 阅读 · 3 评论 -
js基础之条件和循环
条件JavaScript使用if () { … } else { … }来进行条件判断。例如,根据年龄显示不同内容,可以用if语句实现如下:var age = 20;if (age >= 18) { // 如果age >= 18为true,则执行if语句块 alert('adult');} else { // 否则执行else语句块 alert('teenager');}JavaScript把null、undefined、0、NaN和空字符串’'视为false,其他原创 2021-03-02 16:34:10 · 209 阅读 · 2 评论 -
js基础之数据类型
数据类型js一共有7种数据类型,三种基本数据类型:数值,字符串,布尔,两种派生数据类型:数组,对象,两种特殊数据类型:undefined,null数值数值类型共有以下几种:整数、浮点数、负数、NaN、Infinity其中NaN表示 not a number,无法计算结果用NaN表示,例:0/0 结果是NaNInfinity表示无穷大,当数值超过js的Number所能表示的最大值时,就表示为Infinity。例如以0为分子:3/0字符串用单引号或者双引号包括起来的字符表示就是字符串。字符串转原创 2021-03-02 16:12:11 · 1243 阅读 · 3 评论 -
[Vue学习]一、搭建初始项目
安装node全局安装:npm install -g vue-cli新建一个文件夹,然后:vue init webpack运行:npm run dev查看效果:浏览器输入localhost:8080原创 2020-10-15 18:52:37 · 144 阅读 · 0 评论