
Javascript
文章平均质量分 53
凡小多
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
vue中使用闭包(例如防抖和节流)失效问题(直接调用)
原因:这个和vue的事件绑定原理有关。如果直接在函数体内部使用的话,结果就是,一个匿名的立即执行函数来进行执行。由于每次触发点击事件都会返回一个新的匿名函数, 就会生成一个新的函数执行期上下文(称之为执行栈),所以就会防抖/节流就会失效。防抖/节流使用无效,(例如防抖,按钮点击多次依旧执行多次)----> 查看是闭包无效,定义的局部变量依旧为初值。----> 没有相应清除定时器。// 以下方法调用不生效。原创 2023-02-08 15:20:29 · 2444 阅读 · 0 评论 -
js如何获取json数据的方法总结以及在不启动服务的情况下获取数据
可以将json文件数据写在js文件中并定义成全局变量,然后再其他js文件中使用即可。原创 2022-12-15 09:50:10 · 5042 阅读 · 0 评论 -
根据children内的指定key找父级的key
运用场景:如刷新菜单默认展开。原创 2022-10-30 18:19:32 · 405 阅读 · 0 评论 -
『前端必备』本地数据接口—json-server
是一款小巧的接口模拟工具,一分钟内就能搭建一套 Restful 风格的 api,尤其适合前端接口测试使用。只需指定一个 json 文件作为 api 的数据源即可,使用起来非常方便,30秒入门——可以对接口数据进行增删改查。进阶操作还支持分页,排序等操作。开源地址主页地址Github项目地址。原创 2022-10-17 16:48:51 · 1148 阅读 · 0 评论 -
后端返回文件流格式数据导出成Excel文件
【代码】后端返回文件流格式数据导出成Excel文件。原创 2022-10-09 14:40:29 · 535 阅读 · 0 评论 -
替换富文本编辑器转换字符串的图片属性
【代码】替换富文本编辑器转换字符串的图片属性。原创 2022-09-15 10:58:44 · 168 阅读 · 0 评论 -
正则表达式之联系方式校验(手机号+固号)
一个简单的手机号+固号的校验方法。原创 2022-08-10 17:52:31 · 2801 阅读 · 0 评论 -
定时器循环展示数组
方法通过条件判断截取原数组相应内容组成新数组。原创 2022-08-08 11:27:20 · 443 阅读 · 0 评论 -
img转base64
一个简单的img地址转base64格式,并可以设置压缩比例以及图片格式。原创 2022-08-08 10:20:36 · 2959 阅读 · 3 评论 -
去除富文本标签样式
可以通过正则匹配式,去除简单的富文本的标签样式,返回纯内容格式。原创 2022-08-08 09:35:55 · 2189 阅读 · 0 评论 -
a标签下载和window.location.herf下载
下载文件原创 2022-07-12 11:37:58 · 1100 阅读 · 0 评论 -
string转hex、补0、判断是否为网址、日期格式化函数
const stringToHex = (str: string) => { if (str === '') return ''; const hexCharCode = []; for (let i = 0; i < str.length; i += 1) { // charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数。 hexCharCode.push(str.charCodeAt(i).toStri原创 2021-12-22 10:19:12 · 459 阅读 · 0 评论 -
JS小数转百分比出现的精度问题以及解决方法
由于JS本身机制问题,如果直接乘以100+%进行字符串拼接会导致精度出现问题解决方法:原创 2022-06-07 09:55:45 · 2099 阅读 · 1 评论 -
JS将16进制颜色转为rgba格式
hexToRgba(hex, ...opacity) { let rgbaArry = [] opacity.forEach(item => { rgbaArry.push( `rgba(${parseInt('0x'+hex.slice(1, 3))},${parseInt('0x'+hex.slice(3, 5))},${parseInt('0x'+hex.slice(5, 7))},${item})` ) }) return rgbaArry}原创 2022-04-20 17:02:16 · 1769 阅读 · 0 评论 -
JS比较字符串相似度 以及 数组对象属性值排序
比较字符串相似度// s,t 是比较的字符串 f 是精度const similar = (s, t, f) => { if (!s || !t) { return 0 } let l = s.length > t.length ? s.length : t.length let n = s.length let m = t.length let d = [] f = f || 3 let min = functi原创 2022-02-25 15:48:40 · 1108 阅读 · 0 评论 -
时间格式化库 dayjs
安装npm install dayjs --save使用var dayjs = require('dayjs')//import dayjs from 'dayjs' // ES 2015dayjs().format()// 日期格式化export formatDate = (value, format = 'YYYY-MM-DD HH:mm:ss') => { return dayjs(value).format(format);}原创 2022-02-25 15:39:54 · 583 阅读 · 0 评论 -
JS判断数组对象的某个key是否存在
let arry = [{a:1,b:2},{a:2,b:3}]方法一:arry.forEach(item => { if(!(item.hasOwnProperty('c'))) { // 不存在执行的操作 }})方法二:arry.forEach(item => { if(!('c' in item)) { // 不存在执行的操作 }})原创 2022-02-22 13:48:49 · 5218 阅读 · 0 评论 -
JS获取对象,使用对象.属性提示获取不到值(undefined),两种解决方法
方法一:// 有时候需要eval一下的 data = eval("("+data+")");var info = JSON.stringify(result);var data = eval('(' + info + ')');alert(data.district);方法二:使用forEach()this.registerForm.forEach(item => { console.log(item.data)});...原创 2022-02-22 10:17:40 · 14282 阅读 · 1 评论 -
async 与await
async 函数函数的返回值为promise 对象promise 对象的结果由async 函数执行的返回值决定await 表达式await 右侧的表达式一般为promise 对象, 但也可以是其它的值如果表达式是promise 对象, await 返回的是promise 成功的值如果表达式是其它值, 直接将此值作为await 的返回值注意await 必须写在async 函数中, 但async 函数中可以没有await如果await 的promise 失败了, 就会抛出异常, 需要原创 2022-01-10 15:30:44 · 265 阅读 · 0 评论 -
中断 promise链
中断 promise链当使用 promise的 then链式调用时 , 在中间中断 , 不再调用后面的回调函数办法 : 在回调函数中返回一个 pendding状态的 promise对象const p = new Promise((resolve, reject) => { setTimeout(() => { resolve('OK') }, 1000)}).then(value => { console.log(1) //中断 promise 链,有且只有一个方式原创 2022-01-10 14:32:08 · 1437 阅读 · 2 评论 -
三元表达式的嵌套(多层三元运算)
有时候我们需要根据条件获取不同的值,但又不方便写条件语句(比如:根据不同的值获取不同的字符段以渲染不同的数据),此时我们就需要三元表达式的嵌套来完成a = 条件1 ? 值1 : (条件2 ? 值2 : (条件3 ? 值3 : (条件4 ? 值4 : 值5)));...原创 2022-01-07 16:48:08 · 6656 阅读 · 0 评论 -
实现含有分页与搜索页面的方法
方法一:双数组在获取全部列表数据的接口上,将返回的数据赋值到 dataList 和 renderList 两个数组中dataList :是存储所有数据的数组renderList:是页面渲染的数组// 获取列表数据async getList () { const { data: res } = await this.$http.get('list', { params: this.queryInfo }) // 数据赋值 this.renderList= this.dataLis原创 2021-12-31 15:37:47 · 535 阅读 · 0 评论 -
input输入框怎么判断是否输入或输入的是空格
方法:把空格通过正则匹配替换为空字符串// this.inputValue——input输入值//----判断是否为空或者空格---if (this.inputValue.replace(/(^\s*)|(\s*$)/g, "") == "") { console.log('未输入或者输入为空格')} else { console.log('输入:', this.inputValue)};...原创 2021-12-31 14:02:24 · 4362 阅读 · 3 评论 -
箭头函数的简写写法
箭头函数函数名 = (参数...) => {函数体}由于函数较为简单只有一行,可简写为const fn1 = (data) => { return data}//简写为const fn1 = data => data但是如果想返回一个对象直接用{}包括会默认为函数体,但又不想写 return,则可以使用({})包裹const fn1 = data => ({name: 'Tom', data}) // data同名简写,实际是data:data...原创 2021-12-28 17:49:19 · 2751 阅读 · 0 评论 -
路由参数 - 传递params参数、传递 search 参数、传递 state 参数
state = { msgData: [ {id: '01', title: '标题1'}, {id: '02', title: '标题2'} ]}传递 params 参数{ msgData.map((msgObj) => { <div key={msgObj.id}> {/* 向路由组件传递 params 参数 */} <Link to={`/home/msg/${msgObj.id}/${msgObj.title}`}>{msgObj.原创 2021-12-27 17:51:21 · 711 阅读 · 0 评论 -
对象解构赋值——连续解构赋值
连续解构赋值let obj = {a: {b:{c:1}}}// 想拿到c的值// console.log(obj.a.b.c) // 1 一般方法// 解构赋值let {a: {b:{c}}} = objconsole.log(c) // 1 但是不能直接打印a和b,会报错:a,b没有定义连续解构赋值+重命名let obj = {a: {b:{c:1}}}let {a: {b:{c:data}}} = objconsole.log(data) // 1 ...原创 2021-12-27 11:13:01 · 576 阅读 · 0 评论 -
对象中的中括号[ ] 以及在 react 中的使用
对象中的中括号用法:传入变量let a = 'name'let obj = {}obj[a] = 'jack'console.log(obj); // {name: "jack"}在 react 中的使用,以 setState() 为例this.setState({a:b}) // 等同于 this.setState({'a':b}) 此时 a 是一个字符串,不变this.setState({[a]:b}) // 此时 a 是一个变量,由传入值决定...原创 2021-12-23 17:29:04 · 1471 阅读 · 0 评论 -
展开运算符之构造字面量对象
var obj1 = { foo: 'bar', x: 42 };var obj2 = { foo: 'baz', y: 13 };var clonedObj = { ...obj1 };// 克隆后的对象: { foo: "bar", x: 42 }var mergedObj = { ...obj1, ...obj2 };// 合并后的对象: { foo: "baz", x: 42, y: 13 }const merge = ( ...objects ) => ( { ...obj原创 2021-12-23 15:55:03 · 447 阅读 · 0 评论 -
JS 中的函数(方法)注释(JSDoc)——@关键字(@param、@function...)
什么时候对函数进行注释不一定说任何函数方法都必须使用JSDoc,但是如果是自己封装的方法,有必要使用JSDoc可以让其他成员更容易的去了解你封装的方法的属性或返回值,这样可以降低维护成本和提高开发效率。函数(方法)注释也是多行注释的一种,但是包含了特殊的注释要求,参考 JSDoc中文文档语法/** * 函数说明 * @关键字 */常用注释关键字...原创 2021-12-22 09:31:14 · 4848 阅读 · 0 评论 -
防抖和节流
什么是防抖和节流防抖:在一定时间内,在动作被连续频繁触发的情况下,动作只会被执行一次节流:指一定时间内执行的操作只执行一次,即预先设定一个执行周期,当调用动作的时刻大于等于执行周期则执行该动作,才进入下一个周期防抖// 防抖const debounce = (fn, gapTime = 500) => { let timer =null return function (...args) { clearTimeout(timer) timer = setTimout(() =&g原创 2021-12-20 16:34:07 · 289 阅读 · 0 评论 -
Object.defineProperty() 的作用
使用Object.defineProperty定义新属性或修改原有的属性let number = 18let person = { name: '张三', sex: '男',}Object.defineProperty(person, 'age', { // value:18, // enumerable:true, //控制属性是否可以枚举,默认值是false // writable:true, //控制属性是否可以被修改,默认值是false //原创 2021-11-05 10:50:01 · 317 阅读 · 0 评论 -
表格数据的删除修改,以及上下页操作
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style> body { position: relative; } table { border-spacing: 0;原创 2021-06-24 16:35:44 · 123 阅读 · 0 评论 -
JavaScript进阶-5. ES6
每一次标准的诞生都意味着语言的完善,功能的加强。JavaScript语言本身也有一些令人不满意的地方。变量提升特性增加了程序运行时的不可预测性语法过于松散,实现相同的功能,不同的人可能会写出不同的代码翻译 2021-05-05 12:24:51 · 315 阅读 · 0 评论 -
JavaScript进阶-4. 正则表达式
## 1. 正则表达式正则表达式( Regular Expression )是用于匹配字符串中字符组合的模式。在 JavaScript中,正则表达式也是对象。正则表通常被用来检索、替换那些符合某个模式(规则)的文本,例如验证表单:用户名表单只能输入英文字母、数字或者下划线, 昵称输入框中可以输入中文(匹配)。此外,正则表达式还常用于过滤掉页面内容中的一些敏感词(替换),或从字符串中获取我们想要的特定部分(提取)等 。其他语言也会使用正则表达式,本阶段我们主要是利用 JavaScript 正则表达式完成翻译 2021-05-04 20:10:36 · 218 阅读 · 0 评论 -
JavaScript进阶-3. 函数进阶
一、函数的定义和调用1. 函数的定义方式函数声明方式 function 关键字 (命名函数)函数表达式 (匿名函数)new Function()var fn = new Function(‘参数1’,‘参数2’…, ‘函数体’)Function 里面参数都必须是字符串格式第三种方式执行效率低,也不方便书写,因此较少使用所有函数都是 Function 的实例(对象)函数也属于对象// 函数的定义方式// 1. 自定义函数(命名函数) function fn() {};转载 2021-05-04 15:23:38 · 166 阅读 · 0 评论 -
JavaScript进阶-1. 面向对象
一、面向对象编程1. 两大编程思想2. 面向过程编程 POP(Process-oriented programming)面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用就可以了。例子:将大象装进冰箱,面向过程做法面向过程,就是按照我们分析好了的步骤,按照步骤解决问题。3. 面向对象编程 OOP (Object Oriented Programming)面向对象是把事务分解成为一个个对象,然后由对象之间分工与合作。例子:将大象装进冰转载 2021-05-04 11:04:16 · 673 阅读 · 0 评论 -
JavaScript核心-7. 本地存储
随着互联网的快速发展,基于网页的应用越来越普遍,同时也变的越来越复杂,为了满足各种各样的需求,会经常性在本地存储大量的数据,HTML5规范提出了相关解决方案。转载 2021-05-03 20:16:13 · 77 阅读 · 0 评论 -
JavaScript核心-6. 移动端网页特效
一、触屏事件1. 触屏事件移动端浏览器兼容性较好,我们不需要考虑以前 JS 的兼容性问题,可以放心的使用原生 JS 书写效果,但是移动端也有自己独特的地方。比如触屏事件 touch(也称触摸事件),Android 和 IOS 都有。touch 对象代表一个触摸点。触摸点可能是一根手指,也可能是一根触摸笔。触屏事件可响应用户手指(或触控笔)对屏幕或者触控板操作。常见的触屏事件如下:// 1. 获取元素 // 2. 手指触摸DOM元素事件 var div = docu原创 2021-05-03 16:08:41 · 854 阅读 · 0 评论 -
JavaScript核心-5. PC端网页特效
一、元素偏移量 offset 系列1. offsetoffset 翻译过来就是偏移量, 我们使用 offset 系列相关属性可以动态的得到该元素的位置(偏移)、大小等。获得元素距离带有定位父元素的位置获得元素自身的大小(宽度高度)注意: 返回的数值都不带单位offset 系列常用属性<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <met转载 2021-05-02 18:40:08 · 325 阅读 · 0 评论 -
JavaScript核心-4. BOM浏览器对象模型
BOM(Browser Object Model)即浏览器对象模型,它提供了独立于内容而与浏览器窗口进行交互的对象,其核心对象是 window。BOM 由一系列相关的对象构成,并且每个对象都提供了很多方法与属性。BOM 缺乏标准,JavaScript 语法的标准化组织是 ECMA,DOM 的标准化组织是 W3C,BOM 最初是Netscape 浏览器标准的一部分。原创 2021-04-28 19:51:56 · 243 阅读 · 0 评论