js
流川命
不回头。
展开
-
vscode中ts自动转为js
前提:已经全局安装了typeScript:cnpm install -g typescript;项目中有tsconfig.json文件,生成方法:tsc --init(在当前项目目录执行的命令);然后修配置文件中的outDirvscode的配置:1.点击工具栏终端2.选择运行任务3.选择tsc监视若出现此项,则说明tsc监视成功,在ts文件中写的代码,按保存就能自动编译成js文件...原创 2022-01-13 17:19:16 · 3051 阅读 · 0 评论 -
trim函数去除空格(所有空格,前后,前,后)以及字母大小写切换
//value:要去除空格的字符串//type: 1-所有空格 2-前后空格 3-前空格 4-后空格function trim(value, type) { switch (type) { case 1: return value.replace(/\s+/g, ""); case 2: return value.replace(/(^\s*)|(\s*$)/g,""); case 3: return value.replace(/(^\s*)/g, "");原创 2021-12-06 17:35:50 · 3551 阅读 · 0 评论 -
JS事件循环机制
参考链接:https://zhuanlan.zhihu.com/p/139967525;https://mp.weixin.qq.com/s/7k4skVdCIhTsTdEFmXyYLg转载 2021-11-22 08:53:48 · 66 阅读 · 0 评论 -
JS深拷贝、浅拷贝、赋值
前言:要理解JS对象的深浅拷贝的前提知识:需要了解JS的数据类型以及数据类型在内存中是如何存储的(栈跟堆)1. 赋值如图:将含有基础类型跟引用类型的obj赋值给obj1,并修改obj1里面的基础数据类型(属性name)以及引用数据类型(属性hobby),结果obj的属性值也跟着改变,这是属于赋值,不属于浅拷贝2. 浅拷贝浅拷贝与赋值最大的不同点在于浅拷贝会新创建一个对象,浅拷贝改变基础数据类型不会影响到原数据,但是改变引用数据类型就会影响到原数据(因为拷贝的是内存地址,还是指向同一个堆)如下代码原创 2021-11-21 23:09:39 · 775 阅读 · 0 评论 -
JS函数声明以及变量声明
注意点:如果函数名跟变量名重叠,函数声明优先级比变量高,即函数声明会覆盖变量声明。函数声明虽然不被变量声明覆盖,但是变量赋值会覆盖函数声明。函数声明跟函数表达式的结果不一样,函数表达式可以看成是变量声明。注意点1举例:如果函数名跟变量名重叠,函数声明优先级比变量高,即函数声明会覆盖变量声明。console.log(bar);function bar(){ console.log("函数声明");}var bar= "变量";console.log(bar);打印结果为:/*原创 2021-11-17 16:27:38 · 823 阅读 · 0 评论 -
JavaScript 中 call()、apply()、bind() 的用法
先看看例子:例 1obj.objAge; // 17obj.myFun() // 小张年龄 undefined例2shows() // 盲僧 比较一下这两者 this 的差别,第一个打印里面的 this 指向 obj,第二个全局声明的 shows() 函数 this 是 window ;1,call()、apply()、bind() 都是用来重定义 this 这个对象的!obj.myFun.call(db); // 德玛年龄 99obj.myFun.apply(db)转载 2021-10-11 11:52:08 · 65 阅读 · 0 评论 -
js日期格式化封装(8种格式)
封装一个time.js文件,包含8种格式,需要传两个参数,时间戳str以及格式化的类型type,日期补零的方法用到es6语法中的padStart(length,‘字符’),第一个参数是指定生成的字符串的最小长度,第二个参数是用来补全的字符串。如果没有指定第二个参数,默认用空格填充。需要注意的是需要将获取到的年月日转为字符串,可以直接拼接一个引号’’。// type:0 =>2021-09-12 默认// type:1 =>2021-09-12 10:34:12// type:2 =>原创 2021-09-12 11:20:30 · 1028 阅读 · 0 评论 -
Promise.all 处理error
Promise.all()接受一个由promise任务组成的数组,可以同时处理多个promise任务,当所有的任务都执行完成时,Promise.all()返回resolve,但当有一个失败(reject),则返回失败的信息,即使其他promise执行成功,也会返回失败。可以用一句话来说Promise.all(),要么全有要么全无。但话又说回来,有时候我们使用Promise.all()执行很多个网络请求,可能有一个请求出错,但我们并不希望其他的网络请求也返回reject,要错都错,这样显然是不合理的。而我转载 2021-08-25 18:31:33 · 506 阅读 · 0 评论 -
理解和使用Promise.all和Promise.race
一、Pomise.all的使用Promise.all可以将多个Promise实例包装成一个新的Promise实例。同时,成功和失败的返回值是不同的,成功的时候返回的是一个结果数组,而失败的时候则返回最先被reject失败状态的值。具体代码如下:let p1 = new Promise((resolve, reject) => { resolve('成功了')})let p2 = new Promise((resolve, reject) => { resolve('succe转载 2021-08-18 10:13:41 · 147 阅读 · 0 评论 -
正则表达式手册
常用正则表达式链接:https://tool.oschina.net/uploads/apidocs/jquery/regexp.html原创 2021-08-09 16:41:21 · 90 阅读 · 0 评论 -
axios的传参方式(get与post为例)
可以通过向 axios 传递相关配置来创建请求,此处以常见的两种请求方式get,post为例:1、get:axios({ method: 'get', url: '/user', params: { firstName: 'XXX', lastName: 'XXX' } })2.post:axios({ method: 'post', url: '/user', data: { firstName: 'XXX', last原创 2021-07-15 17:26:09 · 16640 阅读 · 1 评论 -
js 中的! 和 !! 的区别
Js中!的用法是比较灵活的,它除了做逻辑运算常常会用!做类型判断,可以用!与上对象来求得一个布尔值,1、!可将变量转换成boolean类型,null、undefined和空字符串取反都为false,其余都为true。1 !null=true23 !undefined=true45 !''=true67 !100=false89 !'abc'=false2、!!常常用来做类型判断,在第一步!(变量)之后再做逻辑取反运算,在js中新手常常会写这样臃肿的代码:判断变量a为非空,未定义或者转载 2021-07-14 15:16:50 · 328 阅读 · 0 评论 -
JS根据返回来的日期或者时间戳,推算出周几
第一步,先将日期或者时间戳通过Date实例化;let day = new Date(str).getDay();day返回来的结果是0-6第二步将day返回来的结果进行过滤,可以用if,也可以用switch,或者用其他方法。此处用switch switch (day) { case 0: return `周日`; break; case 1: return `周一`; break;原创 2021-06-28 10:10:28 · 1914 阅读 · 0 评论 -
vue+typescript项目构建以及ts与js写法对比
1. 安装Vue CLIVue CLI 的包名称由 vue-cli 改成了 @vue/cli。 如果你已经全局安装了旧版本的 vue-cli (1.x 或 2.x),你需要先通过 npm uninstall vue-cli -g 或 yarn global remove vue-cli 卸载它。npm install -g @vue/cli# ORyarn global add @vue/cli2.构建项目vue create my-project这里选择第二个(Manually sel转载 2021-06-17 17:18:45 · 1031 阅读 · 0 评论 -
Vue阻止form表单的默认提交行为@submit.prevent
<form v-on:submit.prevent> <div> <input type="search" name="search" required v-model='inputVaule'> </div> <div> <input type="submit" name="submit" @click='search' value="提交"> </div&..原创 2021-06-09 17:19:40 · 6586 阅读 · 0 评论 -
fromCharCode解决后台接口返回来的城市列表时,前端渲染不按顺序的问题
如图:后台接口返回来的城市列表是按照A-Z的顺序返回来,但是前端直接获取data数据渲染时,却不是按照A-Z顺序渲染解决方法:可以利用计算属性computed重新计算,使用fromCharCode将 Unicode 编码转为一个字符 computed: { sortCity() { let sortObj = {} for(let i=65; i<=90; i++) { if(this.allCity[String.fromCharCode(原创 2021-06-07 15:59:01 · 291 阅读 · 0 评论 -
this.$set的正确使用
this.$set(obj, key, value)我们在项目开发的过程中,经常会遇到这种情况:为data中的某一个对象添加一个属性<template> <div class="hello"> <button @click="setMessage">添加属性</button> {{ student.name }} <input type="text" v-model="student.age"> </div转载 2021-05-26 09:32:20 · 291 阅读 · 0 评论 -
js日期补零的方法
方法一(推荐):ES6的字符串方法padStart补零的方法,当日期小于10的时候,会自动补一个0,2的意思是字符串长度不能小于2。方法二:利用条件判断目前的date是否小于10;小于就补0原创 2021-05-18 11:08:42 · 5927 阅读 · 0 评论