js
文章平均质量分 82
dearqz
欢迎交流与学习
展开
-
js计算检验字符串的字节或字符长度
计算字符长度:/*** @pamam val 字符串* @pamam num 字符串限制长度,比如:两个汉字,传4,两个字母,传2* @return isShort 为true表示小于传入数据,为false表示大于所传数据num* @return index 表示如果大于所传长度,是从字符串哪个索引开始的*/getByteLen(val = "", num) { var len = 0 var index = 0 if (!val) return {isShort: true} f.原创 2020-10-31 16:45:55 · 1420 阅读 · 0 评论 -
结合async await,动态设置Promise.all()
为了演示动态设置promise,这里模拟一个需求:有一组用户列表,前端需要通过用户列表的用户id去获取用户岗位,获取到岗位id后再通过该id去获取岗位状态,具体逻辑看以下代码:// 模拟接口定义// 获取用户列表信息,包括id,nameconst getIdApi = function() { return new Promise(function(resove, reject) { const data = [{id: '001', name: '001'}, {id: '原创 2020-10-31 16:19:38 · 1925 阅读 · 0 评论 -
代码优化之if-else
前言当项目中有越来越多的 if else的时候,不免会有些头痛,一个接着一个,一层嵌套一层,十分影响代码可读性和代码维护。为了解决这个问题,在这里以购买订单状态为例举例优化过程刚开始拿到需求的时候,可能会写出以下的代码: // 获取状态 let status = getStatus() if (status === 'waiting') { console.log('等待支付...原创 2020-01-09 13:22:47 · 319 阅读 · 0 评论 -
设置transform导致弹窗字体模糊问题
说明项目中,设置弹出框居中的时候遇到字体变模糊的情况,查阅资料后发现是transform的问题,下面具体看看:原因项目中弹出框的样式居中是这样写的:.box { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);}比如盒子的宽度为300px,高度为401.5px...原创 2019-11-19 15:16:03 · 1624 阅读 · 0 评论 -
js 常见字符串检验规则封装总结
1、检验手机号 // 检验手机号 function checkPhones (val) { let number = /^[1][3,4,5,6,9,7,8][0-9]{9}$/ if (!number.test(val)) { return true } else { return false } ...原创 2019-10-25 14:52:18 · 499 阅读 · 0 评论 -
js检查字符串字节长度
Blob对象有size属性,返回字节长度,看官方说明要获得字符串的字节长度,看下Blob函数首先要说明的是 js 中的DOMString通过Blob函数会被编译成UTF-8来看下实现例子:...原创 2019-10-25 10:33:20 · 846 阅读 · 0 评论 -
浏览器表单默认填充行为之autocomplete属性
浏览器默认填充是前端很常见的一个问题,无论是注册页还是数据表单页,只要包含地址或是密码框就会调起浏览器的自动填充行为,其实autocomplete属性就可以解决大部分这些问题,只要在input标签里写上这个属性对应的功能名称即可,对应关系如下:off: 用户必须手动填值,或者该页面提供了自己的自动补全方法。浏览器不对此字段自动填充。on: 浏览器可以根据用户先前的填表情况对此字段自动填值。n...原创 2019-10-16 12:31:32 · 969 阅读 · 0 评论 -
位运算 让js更简洁
废话不说,直接看例子,来看看它的好处用 “|” 取整let num=1.5num=num|0; // 1用 “>>” 取半let num=4;num=num>>1; // 2用 “<<” 加倍let num=2;num=num<<1; / / 4用 “^” 两值交换let a=1;let b=2;a^=b;b^=...原创 2019-10-08 10:06:06 · 86 阅读 · 0 评论 -
前端解决宽度设置百分比和边框后样式超出的问题
项目中经常会遇到一类问题:就是设置宽度百分比后再加border边框出现边框溢出显示不出的问题原因很简单,就是宽度已经是百分百了,再设边框,实际内容就是百分百再加上边框的宽度,肯定就溢出了这个问题很好解决,一个属性就搞定:calcdiv { width: calc(~"100% - 2px"); border: 1px solid #eee;}注意: 以上代码即可实现,但是必...原创 2019-09-30 11:59:53 · 2153 阅读 · 0 评论 -
前端请求接口 token登录验证
在登录组件登录函数methods: { userLogin () { this.axios({ method: 'post', url: 'userLogin', data: this.loginData }).then(res => { console.log('登录成功') // 登录成功存储用户信息到本地存储,用户信息包含tok...原创 2019-08-13 10:52:46 · 10940 阅读 · 0 评论 -
vue中标签自定义属性的使用
在 vue 中,尽量避免对dom的操作,通过对状态的管理实现需要的功能举个例子:vue获取dom元素可以使用 ref 要想获得自定义属性,可以通过设置 ref 实现<span data-num="21" ref="dataNum" @click="getData">55</span>getData:function () { console.log(thi...原创 2019-08-23 18:12:29 · 18328 阅读 · 0 评论 -
正则表达式中的前瞻,后顾,负前瞻,负后顾
// 前瞻:exp1(?=exp2) 查找exp2前面的exp1// 后顾:(?<=exp2)exp1 查找exp2后面的exp1// 负前瞻:exp1(?!exp2) 查找后面不是exp2的exp1// 负后顾:(?<!exp2)exp1 查找前面不是exp2的exp1举个例子:"2019年".replace(/(?<=\d+)年/, "year") //...原创 2019-08-09 14:21:32 · 553 阅读 · 0 评论 -
vuex中遇到的坑,vuex数据改变,组件中页面不渲染
vuex数据改变,组件中页面不渲染相信许多vuex新手都会遇到这样的问题:vuex数据更新后,插件中使用数据的地方没有更新这样的代码data() { return { tableData: this.$store.state.AdminInfo }; }然后在 template 中使用 tableData<el-table :data="ta...原创 2019-05-06 18:25:59 · 16403 阅读 · 0 评论 -
原生js文件上传,input如何实现文件(图片)上传与预览
效果说明首先文件上传得需要后台支持,我这里用的node写的后端服务,篇幅有限,这里就不贴后端代码了,有需要的留言联系dom部分由于form表单自动关联input文件上传按钮,故点击上传文件按钮时会自动往 action 路径提交文件 <h3>文件上传:</h3> 选择一个文件上传: <br /> <form action=...原创 2019-05-31 14:55:41 · 9826 阅读 · 0 评论 -
node+express+mysql实现服务端文件上传功能
前言由于是新手,花费了不少时间,现在走通没有问题,所以要是大佬路过,请多多指导,本文主要对初入node不久的新手准备的,如有问题,欢迎留言互相学习首先通过 express 起服务//server.jsconst express=require('express');const static=require('express-static');const bodyParser=req...原创 2019-05-31 15:57:01 · 1426 阅读 · 0 评论 -
Typescript 技术点总结
文章目录Typescript 技术点总结1、原始数据类型布尔值 boolean数值 number字符串 string空值 voidnull 和 undefined任意值 any联合类型2、对象类型接口 Interfaces数组函数类型断言声明文件声明语句全局变量声明文件第三方声明文件书写声明文件内置对象ECMAScript 的内置对象DOM 和 BOM 的内置对象Typescript 技术点总结...原创 2019-06-17 18:12:09 · 549 阅读 · 0 评论 -
vue全局相关extend、compoment、keyCodes、extends以及mixins
说明整理笔记,希望帮到大家,主要包括extend、compoment、extends以及mixins的功能用法以及他们之间的执行关系1、全局给keyCodes设置自定义键名Vue.config.keyCodes = { v: 86, f1: 112, // camelCase 不可用 mediaPlayPause: 179, // 取而代之的是 kebab-case ...原创 2019-06-12 12:10:34 · 563 阅读 · 0 评论 -
vue源码分析中的mvvm双向数据绑定模式
1、initData执行:通过getData函数调用vm.$options.data选项获取数据对象,并对传入类型做处理,对data和method传进来同名做警告。优先级关系:props优先级 > methods优先级 > data优先级2、调用 observe 函数将 data 数据对象转换成响应式3、observe(data, true /* asRootData ...原创 2019-06-12 12:28:22 · 110 阅读 · 0 评论 -
js中的闭包
闭包函数会形成私有作用域,保护里面的变量不受外界的污染,但函数可访问它上一级作用域的变量,从而外界可通过闭包的方式拿到函数里的变量,如:函数A返回函数B,函数B引用了函数A的变量,函数B就称为闭包闭包应用在ajax请求成功回调,事件绑定回调方法等题目for ( var i=1; i<=5; i++) { setTimeout( function timer() { cons...原创 2019-06-25 17:09:47 · 324 阅读 · 0 评论 -
vue中分割线的实现
项目中,需要实现分割线的效果,如图:奈何 element 中的分割线用起来报错,无奈只好自己写,很简单,先说下原理:给一个高为1像素的盒子,盒子宽度根据要求设定,再设置盒子颜色,排列方式为相对定位,盒子里设置文字给左右padding,并进行绝对定位到中间即可实现看代码:<div class="tableTitle"><span class="midText"&...原创 2019-08-02 15:02:32 · 31468 阅读 · 1 评论 -
前端基于vue企业微信JS-SDK语音识别功能开发(同公众号)
前端基于vue企业微信JS-SDK语音识别功能开发(同公众号)微信JS-SDK1.前期准备前端代码撰写微信JS-SDK前端需要实现一个功能,如录音,拍照,分享,地理位置等,前端想要实现这些功能的调用,必须要通过调用JS-SDK的方式来实现,那么如何使用呢,本文进行简单的介绍(新手第一次开发总结,不对的地方望大家指正)1.前期准备因为是第一次开发,看了很多文档,包括官方文档,看了很多遍,仍然...原创 2018-09-27 13:44:54 · 4559 阅读 · 1 评论