
JavaScript
文章平均质量分 57
JavaScript
绝对零度HCL
天道酬勤
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
常用的正则表达式
在项目开始实践中,我们经常遇到一些校验手机号、座机号、小数位、特殊字符之类的正则表达式,这里根据开发经验罗列了一下常见的正则表达式。原文详见。原创 2024-03-12 10:23:46 · 534 阅读 · 0 评论 -
forEach遍历访问set造成的无限循环问题
先给出一段代码,我们创建了一个集合set,它里面有一个元素数字1和2,接着我们调用forEach方法来遍历该集合。在遍历函数中,首先调用delete方法删除数字1,再执行了某些业务操作后紧接着调用add方法将数字1加回,最后打印'forEach'。如果我们在浏览器中执行这段代码,就会发现它会无限执行下去。原创 2023-07-25 16:19:33 · 770 阅读 · 2 评论 -
你不知道的JavaScript的事件循环
JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊。这也与它的用途有关。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题JavaScript是一门单线程执行语言。这句话直接定义了JavaScript。原创 2023-05-15 15:21:26 · 463 阅读 · 0 评论 -
JavaScript的原型链
JavaScript的继承主要是通过原型链实现的,所以理解原型链是掌握JavaScript继承的关键一环。原型链的继承的基本思想是通过原型链继承多个引用类型的属性和方法。原创 2022-12-26 09:55:41 · 585 阅读 · 0 评论 -
JavaScript的var、let、const变量声明
在中,我们一般通过、、三种方式显示的声明变量,其中和是在ES6中新增的命令,现在我们来分别介绍一下这三种声明变量的区别和要点。使用声明变量是之前的标准方式,那时候还没有和。使用定义变量,如果没有设置初始值,则变量会保存。在浏览器环境中,如果在全局作用域下使用声明变量,那么该变量默认会挂载在全局的对象上,如果上存在该属性或者方法,则此处声明的变量会覆盖原始的属性或者方法。考虑以下代码:函数作用域变量在函数作用域内使用关键字声明的变量,会成为该函数的局部变量;如果在函数作用域内未使用关键字进行变量赋值,那么原创 2022-12-07 17:05:59 · 604 阅读 · 0 评论 -
理解JavaScript的执行上下文
执行上下文:指当前执行环境中的变量、函数声明,参数(arguments),作用域链,this等信息。简而言之,执行上下文是评估和执行JavaScript代码的环境的抽象概念。每当Javascript代码在运行的时候,它都是在执行上下文中运行。原创 2022-11-23 15:54:02 · 211 阅读 · 0 评论 -
js对金额数据添加最大金额单位【千、万、十万...】
之类的,这些数据直接放到前端,给用户直接看的话,很不好读,不友好,常见的方法是对金额进行增加千分位分割。现在要解决的问题是给数字增加一个单位,即最大金额单位;关于增加千分位的方法,之前的文章已经实现过一次,原创 2022-09-20 16:12:13 · 2416 阅读 · 0 评论 -
开发cli脚手架基础知识之 ---commander工具
简单使用一下commander的指令终端指令单个指令使用多指令复合使用其中和是一个意思,前者为简写,后者为全写。如果要传入多个参数,可以使用空格区分,如下所示:option默认值选项可以设置一个默认值。输入, 使用默认值输入自定义值取反值可以定义一个以开头的 型长选项。在命令行中使用该选项时,会将对应选项的值置为。当只定义了带的选项,未定义对应不带的选项时,该选项的默认值会被置为。选项的参数使用方括号声明表示参数是可选参数(如–optional [value])。该选项在不带参数原创 2022-06-08 17:13:47 · 667 阅读 · 0 评论 -
JavaScript设计模式与开发实践-代理模式
代理模式代理模式的关键是,当客户不方便直接访问一个对象或者不满足需求时,提供一个替身对象来控制对这个对象的访问,客户实际上时访问的是替身。替身对象对请求作出一些处理之后,再把请求转给本体对象;代理模式的基本用法var Flower = function(){};var xiaoming = { sendFlower : function (target) { target.receiveFlower(flower); }};var B = { r原创 2022-05-17 14:34:11 · 148 阅读 · 0 评论 -
fullCalendar日程表在Vue项目中的应用
fullCalendar日程表在Vue项目中的应用fullCalendar相关API使用fullCalendar插件在项目中实现日程排版,支持天、月日程转换,自定义事件页面布局通过按钮切换天与月视图的转换,天视图回显具体的时分排版项目,月视图回显缩略信息<div class="order-day-calendar h-100 clearfix"> <div id='calendar' class="h-100" @contextmenu.prevent.stop="st原创 2022-05-06 11:56:55 · 6188 阅读 · 11 评论 -
JavaScript设计模式与开发实践-策略模式
策略模式策略模式计算奖金策略模式的定义:是指定义一系列的算法,把它们一个个封装起来。策略模式的目的是将算法的使用和算法的实现分离开来;一个基于策略模式的程序至少由两部分组成。第一个部分是一组策略类,策略类封装了具体的算法,并负责具体的计算过程。第二个部分是环境类Context,Context接受客户的请求,随后把请求委托给摸一个策略类。要做的这点,说明Context中要维持对某个策略对象的引用;const performanceS = function(){};performanceS.prot原创 2022-04-30 09:40:15 · 161 阅读 · 0 评论 -
JavaScript设计模式与开发实践-单例模式
单例模式简单的单例模式实现const Singletion = function (name) { this.name = name; this.instance = null;};Singletion.prototype.getName = function() { console.log(`name:${this.name}`);};Singletion.getInstance = function(name) { if(!this.instance) { this.instan原创 2022-04-30 09:38:26 · 1266 阅读 · 0 评论 -
hash路由监听
<script> function Router () { this.routes = {}; this.currentUrl = ''; } Router.prototype.add = function (path, callback) { this.routes[path] = callback || function() {} }; Router.prototype.refresh = function() { this.current原创 2021-03-26 17:54:35 · 389 阅读 · 0 评论 -
js es6实现企业微信扫码登录,重写路由重定向
// 定义类export const WxCodeLogin = class { constructor (option, node, callback) { this.node = node this.callback = callback this.appid = option.appid this.agentid = option.agentid this.redirect_uri = option.redirect_uri this.state原创 2020-12-24 09:41:45 · 1022 阅读 · 2 评论 -
js 实现图片粘贴、压缩上传,显示上传进度
class pasteUploadClass { constructor({ filedata, api, blob, timeOut }, callbackprogress,callbackloadstart) { this.pasteImg = ""; this.blob = blob || ""; this.uploadData = filedata || {}; this.uploadApi = api || ''; .原创 2020-11-26 15:24:56 · 254 阅读 · 0 评论 -
git commit 校验eslint格式
插件依赖'lint-staged''husky'package.json配置"husky": { "hooks": { "pre-commit": "lint-staged" }},"lint-staged": { "src/**/*.{js,vue}": [ "eslint --fix", "git add" ]}原创 2020-09-24 15:39:17 · 267 阅读 · 0 评论 -
vue项目解决页面登录时,禁止浏览器提醒是否保存密码
主要思路1.通过input输入框,监听输入值,进行替换成*符号,避免使用input的type="password"类型,造成浏览器提醒是否记住密码;如果是vue、react等项目请自行改造一下代码!vue项目解决页面登录时,禁止浏览器提醒是否保存密码......原创 2020-08-15 21:00:52 · 3552 阅读 · 0 评论 -
vue + xlsx 实现前端读取excel文件内容
前端实现js读取Excel文档数据内容html代码如下 <div class="fl f-c-w"> <p>上传填好的顾客信息<span class="tip-msg">(仅支持xls/xlsx格式)</span></p> <el-button type="text" @click...原创 2020-04-14 15:26:42 · 2533 阅读 · 0 评论 -
vue element-ui实现input输入框金额数字添加千分位
在util.js中定义方法包含金额添加过滤千分位,验证金额格式等const MoneyTest = /((^[1-9]\d*)|^0)(\.\d{0,2}){0,1}$/;// 金额添加千分位const comdify = function (n) { if(!n) return n; let str = n.split('.'); let re = /\d{1,...原创 2019-12-26 09:39:00 · 9637 阅读 · 3 评论 -
Vue element-ui select 下拉框数据懒加载
<template> <el-select placeholder="请选择" v-model="selectedCode" @change="changeSelected" :filter-method="filterMethodHandler" filterable v-el-select-lazy='loadMore'> <el-opti...原创 2019-11-11 17:05:32 · 5510 阅读 · 2 评论 -
vue keep-alive实现动态缓存以及缓存销毁
vue keep-alive实现动态缓存以及缓存销毁需求来源及描述后台管理系统中,左侧为功能菜单栏,点击菜单列表,右侧显示该菜单的功能页面,本来是一个非常简单的后台管理系统布局,现在增加了tabs菜单按钮;点击左侧菜单栏时,右侧页面头部header显示当前的页面标题,形成一个tabs列表,点击可切换页面内容和关闭tabs;需求要求,点击左侧时,右侧显示页面内容,同时右侧header增加该页...原创 2019-07-17 14:03:24 · 6175 阅读 · 8 评论 -
layui框架table表格实现单击行选中checkbox功能
layui.table.on('row(operateEvent)', function (obj) { var tableDiv; var index = $(obj.tr.selector).attr('data-index'); var tableBox = $(obj.tr.selector).parents('.layui-table-box'); //存在...原创 2019-07-05 15:58:25 · 1859 阅读 · 0 评论 -
js动态拼接url参数query
// 定义url字符串拼接的方法const setUrlQuery = (options) => { let {url,query} = options; if(!url) return ''; if(query) { let queryArr = []; for (const key in query) { ...原创 2019-05-17 16:36:55 · 5631 阅读 · 0 评论 -
webpack4.0配置多页面应用
项目目录src内的目录结构如下:webpack入口文件webpac.config.jsconst webpack = require('webpack');const path = require('path');const HtmlWebpackPlugin = require('html-webpack-plugin');const ExtractTextWebpackPlu...原创 2019-04-21 20:23:02 · 589 阅读 · 1 评论 -
在vue项目开发中实现刷新当前路由页面
在最近开发的项目中入到一个问题:管理员根据自己的身份角色,可以随意切换不同的模块内容,同一模块下又有多种公司的角色;实现这一功能的基本方式就是根据id与权限进行路由跳转,同时坑也来了!!!!!!不同的路由跳转页面是随即刷新的,同一路线下仅改变id值则页面不刷新,数据就没有改变;解决方案1、方法一最初的解决方式很简单,仅仅是使用了window.location.reload();//实现...原创 2019-02-20 11:34:07 · 1246 阅读 · 0 评论