js基础类
qq_25186543
前端菜鸟
展开
-
vscode 升级后保存格式化 eslint 格式化不管用
原因 : vscode 升级后,插件也根着升级,然后发现保存时没有自己格式化 eslint 格式 。。。。之前使用的格式// vscode默认启用了根据文件类型自动设置tabsize的选项 "editor.detectIndentation": false, // 重新设定tabsize "editor.tabSize": 2, // #每次保存的时候自动...原创 2020-01-03 13:46:19 · 3844 阅读 · 0 评论 -
vue 使用 eslint
新项目在安装的时候选择 eslint 就会自动生成旧项目使用1、安装一个新项目使用 eslint ,然后把根目录的.eslintrc.js 文件 和.editorconfig 文件复制到旧项目根目录2、把新项目里面的 package.json 里面有关 eslint 的内容都复制到旧项目的 package.json 里面,然后 npm install 下载这些配置"devD...原创 2019-11-15 09:11:57 · 230 阅读 · 0 评论 -
字符串的操作
var str = 'abcddefgdE'; //字符串转 json JSON.parse(str) //长度 ,返回长度 str.length; //转大写字母,返回大写字母 var toU = str.toUpperCase() console.log(toU); //转小写字母返回小写字母...原创 2018-03-20 21:18:52 · 151 阅读 · 0 评论 -
碰上了个闭包的面试题
2018-03-22 今天面试有个笔试题是这样的,咋一看返回一个方法又调用自己,瞬间感觉有点晕乎乎的,看了一会也没心情做了,然后就写了一个 undefind ,回来查了一下才发现并不难,只是认真一点一步步分析也就分出来了 function fun(n,o){ console.log(o) return { fun : function(m){ return ...原创 2018-03-22 23:29:21 · 617 阅读 · 0 评论 -
post 请求400,头部信息不对
项目ajax 请求需要头部信息为 headers :{'Content-Type': 'application/json'} ,传入的是 json ,然后请求的时候一直报400 错误,原因是后台要要接收的是字符串形式,把传入的数据转换一下 JSON.stringify(data),$.ajax({ url: url, method: 'POST', ...原创 2018-03-12 18:18:08 · 38141 阅读 · 0 评论 -
性能优化问题
代码层面:避免使用css表达式,避免使用高级选择器,通配选择器。缓存利用:缓存Ajax,使用CDN,使用外部js和css文件以便缓存,添加Expires头,服务端配置Etag,减少DNS查找等请求数量:合并样式和脚本,使用css图片精灵,初始首屏之外的图片资源按需加载,静态资源延迟加载。请求带宽:压缩文件,开启GZIP,代码层面的优化用hash-table来优化查找少用全局变量(全局变量会占用内存...转载 2018-02-27 16:48:11 · 185 阅读 · 0 评论 -
webpack 打包文件 vue 过大
打包优化1、打包 vender 时不打包 vue、vuex、vue-router、axios 等,然后连上自己本地的路径在 build/webpack.base.conf.js 文件里加上 externals ,不需要打包的文件就放写在这里,然后在 index.html 外连上这些库 externals: {//不打包的 'vue': 'Vue', '原创 2018-02-07 14:45:14 · 5359 阅读 · 0 评论 -
rem 的计算公式,小程序的单位换算
监听屏幕在大小改变 ,recalc 是计算方法window.addEventListener(resizeEvt,recalc,false);计算原理是rem 就是帮我们把设计图实现一个等比缩放的过程,假如设计图是按 640px 来设计的,那么我把设计图分成 10份(随你自己分),也就是 640px = 10rem,那么就是 1rem = 64px, 在根元素 html 上设置的 font-si...原创 2018-03-07 11:25:40 · 8059 阅读 · 0 评论 -
图表 ECharts 的应用--小记
var option = { color: arr[i].color, // 每份数据的色值 tooltip : { trigger: 'axis', axisPointer : { // 坐标轴指示器,坐标轴触发有效原创 2018-02-01 11:22:52 · 242 阅读 · 0 评论 -
js 数组去重和排序
去重复1、用 indexOf 查看是否存在,不存在没添加 var arr = ['aa','aa','aa','bb','bb',3,5,8,9,4,5,4]; function unique(arr){ var newArr = []; for(var i in arr){ if(newArr.indexOf(arr[i]) === -1){ newArr...原创 2018-02-26 17:12:37 · 530 阅读 · 0 评论 -
js 继承方法
1、call 继承法call 只能继承函数的值,并不能继承函数的原型 function parent(){ this.a = 10; this.b = 20; } function child(){ this.c = 30; parent.call(this) } parent.prototype.newFu = function(){ retur...原创 2018-02-26 15:20:44 · 717 阅读 · 0 评论 -
jquery 源码分析
1、解读 jquery 无 newhttp://www.cnblogs.com/aaronjs/p/3278578.html#undefined原创 2018-02-26 14:33:53 · 161 阅读 · 0 评论 -
js 原型
//构造函数 function d(name,age){ this.name = name; this.sex= sex; } //在函数原型链上添加属性和方法 ...原创 2018-02-26 10:10:18 · 137 阅读 · 0 评论 -
js 跨域请求的方法
1 jsonp 原理就是在前端定义一个接收数据的方法 , 把方法名拼在连接的后面 , 然后通过 script 标签的 src 就可以了,其它看代码:连接其它是服务器的,然后服务器通过传过来的参数拿到相应的数据,,服务器提供动态生成脚本并在脚本是写上数据和传过来的方法名,,,调用 起来就可以了12345678910111213141516171819202122<!DOCTYPE htm...原创 2018-03-23 17:28:36 · 210 阅读 · 0 评论 -
数组操作方法
数组添加: var arr = [1,2,4,5,6,7,8,3]; //向最后加一个 arr.push('后加一下'); //在最前方加一个 arr.unshift('前加一个')数组删除 var arr = [1,2,4,5,6,7,8,3]; //删除最后一个 arr.pop(); //删除第一个、 arr.shift();数组排序 var arr =...原创 2018-03-20 20:55:05 · 318 阅读 · 0 评论 -
mint-ui 使用 loadmore 下拉刷新时,需要用JS来自动触发下拉
刚开始找文档,文档里并没有提供这种方法,,,然后没办法,,就去看了一下源码,,然后觉可以搞一下 在里面看到有几个属性操作下拉的 ,,一个是 translate 是下拉多少的距离,一个是 topDropped 是否要动画时间,,还有一个topStatus 是下拉时显示哪些元素1、先把 loadmore.vue 复制出来到自己的组件文件里,然后把里面的 spinner 组件给注...原创 2019-01-19 18:19:28 · 1173 阅读 · 0 评论 -
使用公众号里的文章时碰到的问题
1:此图片来自微信公众平台未经允许不可引用 解决办法:加上一个head 标签 <meta name=referrer content=never>说明 :感谢:https://www.imooc.com/wenda/detail/384418我使用图片和微信检测图片就相同于两方操作,當A頁面<meta name="referrer" content=...原创 2019-01-19 18:00:11 · 554 阅读 · 0 评论 -
回流和重桧(转)
转至 https://www.cnblogs.com/dujingjie/p/5784890.html 一.明确概念首先我们要明确页面在文档加载完成之后到完全显示中间的过程是1.根据文档生成DOM树(包括display:none的节点)2.在DOM树基础上根据节点的几何属性(margin/padding/width/height等)生成render树(不包括display:none、...转载 2018-12-18 21:01:10 · 253 阅读 · 0 评论 -
函数 去抖 与节流
//停止改变n毫秒后执行 function debounce(method,delay){ var timer=null; return function(){ var context=this, args=arguments; clearTimeout(timer); ...原创 2018-07-17 17:09:39 · 351 阅读 · 0 评论 -
gulp 使用
1、安装node.js2、全局安装 gulp npm install --global gulp 3、进入文件 局部安装 gulpnpm install gulp --save-dev4、在根目录创建 gulp.jsvar gulp = require('gulp');gulp.task('default', function() { // 将你的默认的任务代码放在这});5、运行命令 ...原创 2018-05-23 10:52:49 · 249 阅读 · 0 评论 -
7 牛 上传图片
官方文档 https://developer.qiniu.com/kodo/sdk/1283/javascript#2一开始用了里面的 例子var observable = qiniu.upload(file, key, token, putExtra, config)var subscription = observable.subscribe(observer) // 上传开始// o...原创 2018-04-19 15:04:22 · 1842 阅读 · 1 评论 -
浏览器和手机的复制
以下代码可以实现 , 传入文本即可,兼容 安卓 和 IOS ;原理是 :先添加节点 ,然后选择对象,执行复制,而 ios 要先执行选中操作 再复制,复制完后要移除选中 ,然后删除节点function copyText(text){ var Url2 = text || '没复制上'; if (navigator.userAgent.match(/(iPhone|iPod...原创 2018-04-12 15:36:56 · 609 阅读 · 0 评论 -
文件加密方式
在浏览器端获取文件的MD5值使用 browserMD5File项目地址Demo查看使用:接入jsimport browserMD5File from 'browser-md5-file' let file = event.target.files[0]; browserMD5File(file, function (err, md5)...原创 2018-04-11 08:46:28 · 293 阅读 · 0 评论 -
记一次 jsencrypt 加密的使用
下载 npm install encryptjs --save-dev然后接入 html,,,publicKey 是后台给的一个 要密钥,str 就是得出来的加密串注意 publicKey 给过来的密钥有分行,不能把分行去掉、不能把分行去掉、不能把分行去掉连在一起,可以用'xxxx'+'bbbbb'连在一起 var jsencrypt = new JSEncrypt(); ...原创 2018-04-10 13:32:44 · 9006 阅读 · 1 评论 -
input 操作
H5 调用,camera照相机;camcorder摄像机;microphone录音。accept表示,直接打开系统文件目录。<input type="file" id='image' accept="image/*" capture='camera'>其实html5的input:file标签还支持一个multiple属性,表示可以支持多选<input type="file" id...原创 2018-04-09 17:44:31 · 329 阅读 · 0 评论 -
jquery 的 $ 与别的库的 $ 冲突
1、$太火热,jQuery采用$作为命名空间,不免会与别的库框架或者插件相冲突。2、jQuery版本更新太快,插件跟不上,导致不同版本对插件的支持度不一样。出于以上的原因,jQuery给出了解决方案–– noConflict函数。 引入jQuery运行这个noConflict函数将变量$的控制权让给第一个实现它的那个库,确保jQuery不会与其他库的$对象发生冲突。在运行这个函数后,就只能使...原创 2018-02-10 20:08:17 · 372 阅读 · 0 评论 -
animation 在 电视版的 UC 浏览器没动画
公司配了个电视版的大屏幕,放一个后台数据首页面大屏;在高德地图里的点加入闪闪的动画,发现在电脑上好好的动画,到了那都不会动了,下载了个电脑版的 UC 发现是好的,想到可能是电视版本的的 UC 版本太底了,但在电视是APP市场上发现是最高的了,真是悲吹后来在网上查了一下,发现了一们大神也碰到过,原因是旧版本的 UC , div 的 after 和 before 不支持 ani原创 2018-02-05 16:01:52 · 280 阅读 · 0 评论 -
value.toFixed is not a function
事件是这样的是一个图表页面,请求了接口后,因为有的数据有 1.2555555555 很长一段,所以要做保留两位小数,然后用了var a = data.xx.toFixed(2)data.xx = a;注意 : 用了.toFixed(2) ,这时候的 a 已经变成的字符串 , typeof a 得出来的是 string ,得用 parseFloat(a)原创 2017-11-16 17:03:00 · 7985 阅读 · 0 评论 -
图片懒加载插件
window.onload = function(){Echo.init({offset: 200, //设置图片距离可视区域多少像素被加载(纵向) throttle: 1050 //设置图片延迟加载的时间}); } echo.js 代码window.Echo = (function(window, document, undefi原创 2017-11-03 11:32:28 · 283 阅读 · 0 评论 -
原生 JS 写的手机端上下拉
下拉刷新*{margin: 0;padding: 0;}body{background-color: #f5f5f5}#up{position: relative;}.tran{-webkit-transition: all .3s;transition: all 0.3s}#drop-down,#Pull{line-height: 36px; font-size: 1原创 2017-11-03 11:29:24 · 996 阅读 · 0 评论 -
图片生成beta64
var getBase64 = function(file){ var maxWidth = 640; var promise = new Promise(function(resolve, reject){ if(file.files && file.files[0]){ var thisFile = file.files[0];原创 2017-11-03 11:07:22 · 812 阅读 · 0 评论 -
简单的正则匹配
/^[1-9]([.]{1}[1-9])?$/ 匹配折扣 9 或者 9.9/^([\u4E00-\u9FA5]|\w)*$/ 不能有字符。只能是字/^[A-Z]+$/; 只写字母/^\d+$/ 只写数字/^(-?((180)|(((1[0-7]\d)|(\d{1,2}))(\.\d+)?)))$/g 经度值原创 2017-11-03 10:55:19 · 207 阅读 · 0 评论 -
百度地图加载百度js 出现 BMap is not defined
!function(mapInit) { var script = document.createElement("script"); script.type = "text/javascript"; script.src = "http://api.map.baidu.com/api?v=2.0&ak="+ App.BMapAk +"&callback=mapinit";原创 2017-11-03 10:53:39 · 13879 阅读 · 1 评论 -
js 一些时间之间的转换
日期换星期几var weekDay = ["星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];var dateStr = "2008-08-08 08:08:08"var myDate = new Date(Date.parse(dateStr.replace(/-/g, "/")));alert(weekDay[myDate.getD原创 2017-11-03 10:44:45 · 201 阅读 · 0 评论 -
滚动条的检测 与 屏幕的横屏事件
window.onorientationchange = function(){ switch(window.orientation){ case -90: case 90: alert("横屏:" + window.orientation);原创 2017-11-03 10:40:52 · 715 阅读 · 0 评论 -
手机端 rem 的使用
(function(doc, win) { var docEl = doc.documentElement, //getElementById("luckDraw") resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize', recalc = functio原创 2017-11-03 10:36:20 · 209 阅读 · 0 评论 -
input 正则匹配
只能输入数字英文输入数字: 输入中文: 输入英文: 三个合在一起 除了英文的标点符号以为 其他的人都可以中文,英文字母,数字,中文标点//数字后面两小数function clearNoNum(obj) { obj原创 2017-11-03 10:31:27 · 1109 阅读 · 0 评论 -
http 详解
http 就是一种通信协议,计算机之间要共同尊守这些规则才能通信http 流程1、http客户端发起请求,创建端口 2、http服务器就在端口监听客户端请求3、监听到后,http服务器向客户端返回状态和内容 (如:200 然后返回请求的文件。。详解如下)浏览器的流程1、输入网址后,浏览器先搜索自身的 DNS 缓存 (前面4步都是为了解原创 2017-11-18 16:04:14 · 246 阅读 · 0 评论 -
echarts的使用
1、在普通页面中使用 var obj = document.getElementById(div); var myChart = echarts.init(obj); myChart.setOption(option);2、在vue项目中使用npminstallechartsmain.jsimport echarts from 'ec原创 2017-11-15 14:31:10 · 311 阅读 · 0 评论 -
javaScript 的 prototype 的学习
每一个构造函数都有一个属性叫做原型 prototype 。这个属性非常有用:为一个特定类声明通用的变量或者函数。prototype 是 new 实例中自带的参数, new 一个实例出可以看到而 prototype 属性能够为多个 new 出来的实例 添加共同的方法与属性,如下: function Par(name){ this.name = name; } Par.prototype.a...原创 2018-02-09 14:08:09 · 168 阅读 · 0 评论