Web
web开发
HDdgut
这个作者很懒,什么都没留下…
展开
-
自定义时间戳转化为年 月 日 时 分 秒
【代码】自定义时间戳转化为年 月 日 时 分 秒。原创 2024-03-27 21:30:00 · 161 阅读 · 0 评论 -
jq获取url携带的参数
function GetRequest() { var url = location.search; //获取url中"?"符后的字串 var theRequest = new Object(); if (url.indexOf("?") != -1) { var str = url.substr(1); ...原创 2020-04-15 15:19:12 · 408 阅读 · 0 评论 -
js定时器setInterval的多种写法
1.setInterval(function/code, milliseconds, param1, param2, ...)函数名或是匿名函数function(){},可以传参,setInterval(function(tr){console.trace(tr)},1000,"每隔2秒我就会显示一次");定义函数function show2(str){ console.trace(str);};setInterval(show2,1000,"每隔2秒我就会显示一次");2.setInterva原创 2020-05-19 23:29:44 · 882 阅读 · 0 评论 -
定时器setTimeout校准(JS闭包)
在js中所有函数都可以访问上一层作用域,父函数中定义子函数,子函数可以访问父函数中的值,子函数相当于一个闭包函数。父函数调用子函数进行计数,counter不会被重置,且不能被外部所改变,只有重新调用父函数,才会重置。每次执行定时器后,都获取系统时间进行修正,对后面运行时间有一个补偿。原创 2024-01-03 21:45:00 · 504 阅读 · 0 评论 -
js的四种for循环的区别和优化写法,与性能区别
orEach和map,await不生效;使用break或continue会报错for循环、for…in,for…of,支持await,for和for…of中可以使用break和continue;for…in会忽略continue和break原创 2021-04-21 14:52:18 · 567 阅读 · 0 评论 -
计数器(JS闭包)
在js中所有函数都可以访问上一层作用域,父函数中定义子函数,子函数可以访问父函数中的值,子函数相当于一个闭包函数。父函数调用子函数进行计数,n不会被重置,且不能被外部所改变,只有重新调用父函数,才会重置。调用父函数时,返回的是一个函数,相当于要执行createCounter()() 才会有输出值;实现一个计数器,counter 函数最初返回 n,每次调用它时会返回前一个值加 1 的值;闭包满足n的变量,调用过程中不会在外部被改变,也不会被重置。输出[-2,-1,0,1]原创 2023-10-10 20:00:00 · 512 阅读 · 0 评论 -
js点击内容div之外的遮罩层,关闭弹窗,怎么显示下层的内容
原理:用z-index设置蒙层和div的层级,蒙层在div下面,点击div的时候,不会触发蒙层点击事件前提。蒙层和div不是嵌套关系。子div点击事件阻止冒泡:event.stopPropagation();...原创 2020-04-06 16:12:41 · 418 阅读 · 0 评论 -
JS精度运算问题,四则运算自定义函数
注意:n = (r1>=r2) ? r1 : r2; 最后保留位数。加法运算: jsDoubleAdd(num1,num2){ let r1,r2,m; try{ r1 = num1.toString().split(".")[1].length; }catch{ r1 = 0;原创 2020-09-23 11:33:51 · 222 阅读 · 0 评论 -
es6箭头函数与普通函数的区别
this指向的区别普通函数:一般指向它的直接调用者,如果没有调用者(严格模式下)undefined,默认模式下(非严格模式下),指向Window如果需要明确绑定this的指向1.通过在外部先将this的值赋值给一个临时变量(var that =this)示例:var obj ={a:1,foo=function(){var that=this;setTimeOut(function(){console.log(that.a)},3000)}}2.通过bind()来原创 2020-07-15 17:33:15 · 257 阅读 · 0 评论 -
深拷贝和浅拷贝的区别,怎么解决浅拷贝问题,栈和堆与数据类型拷贝的关系
深拷贝(deepCopy):增加了一个指针并申请了一个新的内存,新的指针指向新的内存地址。浅拷贝(shallowCopy):只增加了一个新指针指向已存在的内存地址。怎么实现深拷贝1.将一个对象转为json对象。然后再解析这个json对象let obj = {a:{b:22}};let copy = JSON.parse(JSON.stringify(obj));2.lodash的cloneDeep3.Vue.extend(),jq的$.extend( [deep ], target原创 2020-09-10 11:41:14 · 240 阅读 · 0 评论 -
箭头函数的适应场景?
注意事项函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象,函数体内没有自己的this,其内部的this指向是外层作用域的this(在箭头函数中this的指向是固定,声明的时候就静态绑定了)不可以作构造函数,也就是不能使用new命令,否则会报错不能使用yield命令,所以不能做Generator函数不可以使用arguments对象,因为对象在箭头函数体内不存在。假如要使用arguments对象,则使用rest参数代替场景:箭头函数适合于无复杂逻辑或无副作用的纯函数场景下,原创 2022-01-20 23:54:00 · 1375 阅读 · 0 评论 -
使用js,句中单词首字母大写 确保字符串的每个单词首字母都大写,其余部分小写。
解答:function titleCase(str) { // 请把你的代码写在这里 str = str.split(" "); for(var i= 0;i<str.length;i++){ str[i]=str[i][0].toUpperCase()+str[i].slice(1).toLowerCase(); } str = str.join(" ");...原创 2019-11-26 16:58:14 · 610 阅读 · 1 评论 -
js怎么让对象中的数据排序输出
情景:渲染统计数据,按照日期排序,数据类型如下:const data = { "01":6, "02":3, "03":9, ...}假如使用for in 遍历数据,输出的数据不一定按照01,02这样排序解决方式:先用 Object.keys(data).sort()将key排序导出,再遍历数据如下://先key排序 let arr = Object.keys(data).sort();//再遍历keyarr.foreach(item=>{//排序输出数据 conso原创 2022-05-17 23:11:09 · 517 阅读 · 0 评论 -
什么是尾调用优化和尾递归?
尾调用是函数的最后一步,所以不需要,保留外层函数的调用记录,因为调用位置、内部变量的信息不会再用到,可以直接用内层函数的调用记录,取代外层函数的调用记录。函数调用会在内存中形成一个“调用记录”,又称为“调用帧”,保存调用位置和内部变量信息。当函数嵌套的层级比较深,调用栈中的调用帧比较多,对内存的消耗很大。解法:最后一步可以选择爬1个或2个台阶,则爬n阶等于爬(n-1)+(n-2)个台阶之和。每次的结果都保留在参数中,只保留一个调用记录,复杂度 O(1),不需要保留每一步的调用记录。原创 2022-11-09 20:00:00 · 417 阅读 · 0 评论 -
接口返回文件流下载
代码】接口返回文件流下载。原创 2022-08-08 20:00:00 · 172 阅读 · 0 评论 -
jq怎么判断图片没有上传,src属性无效
$('#id-img').attr("src")== undefined || $('#id-img').attr("src")=="unknown"原创 2020-04-06 16:08:36 · 451 阅读 · 0 评论 -
ECMAScript 6 中let命令与var的区别
1.作用域不同let命令所在的代码块内有效。var是全局有效for (let i = 0; i < 10; i++) { // ...}let定义的i只在for循环中有效特殊的例子var a = [];for (var i = 0; i < 10; i++) { a[i] = function () { console.log(i); }...原创 2019-08-15 00:03:50 · 143 阅读 · 0 评论 -
js怎么将 base64转换成图片?并上传服务器
var dataurl = avatar.getDataUrl();//base64图片数据 if(!dataurl){ alert('请对图片进行裁剪调整'); return; }//base64图片转图片 var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[...原创 2020-04-06 16:20:00 · 3631 阅读 · 0 评论 -
js中声明的const变量
1.const声明一个只读的常量。一旦声明,常量的值就不能改变。const一旦声明变量,就必须立即初始化,不能留到以后赋值类似于const PI = 3.1415;const的作用域与let命令相同:只在声明所在的块级作用域内有效。const命令声明的常量也是不提升,同样存在暂时性死区,只能在声明的位置后面使用。本质上:const实际上保证的,并不是变量的值不得改动,而是变...原创 2019-08-15 23:46:50 · 1630 阅读 · 0 评论 -
js常见问题解决技巧
js将二维数组转一维数组 this.OrderItems = [].concat(...this.newList.map(item => item.OrderItems));js的splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目,该函数会改变原来的数组利用indexOf和过滤函数filter进行数组去重,原理:indexOf判断字符是否在字符串中存在,存在则返回该元素或第一次利用indexOf和filter进行去重,原理:判断一个字符是否在字符串中存在,如果存在则返回字.原创 2020-12-02 09:22:04 · 154 阅读 · 0 评论 -
限制input只能输入数字和小数
使用type=“number”网页有用,但手机仍可以输入非数字,而且长度maxlength会失效v-model.nunber不好用,如果一开始输入不是数字,则没有用。使用正则 oninput="value=value.replace(/[^\d]/g,'')"推荐原创 2020-11-26 09:57:19 · 3863 阅读 · 0 评论 -
简单的flexible 代码
$(function(){ var whdef = 16/1920;// 表示1920的设计图,使用100PX的默认值 var wH = window.innerHeight;// 当前窗口的高度 var wW = window.innerWidth;// 当前窗口的宽度 var rem = wW * whdef;// 以默认比例值乘以当前窗口宽度,得到该宽度下的相应FONT-SIZE值 $('html').css('font-size', rem + "px");原创 2021-10-25 14:41:11 · 183 阅读 · 0 评论 -
连锁重绘导致页面卡顿
长列表滚动页面,box-shadow的阴影区域和固定定位有交叉关系时,滚动时会导致页面重绘。websocket实时更新列表中某行中某个元素的数据时,整个列表发生重绘。(数据变化时使用了animation导致了同一层次的元素重绘)解决:在该元素上增加相对定位,设置一个唯一的z-index值。使元素有独立的层次,在浏览器渲染该元素时不会触发连锁重绘。...原创 2021-10-20 10:28:38 · 284 阅读 · 0 评论 -
什么是RESTful架构
(1)每一个URI代表一种资源;(2)客户端和服务器之间,传递这种资源的某种表现层;(3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"GET用来获取资源,POST用来新建资源(也可用于更新资源),PUT用来更新资源,DELETE用来删除资源。...原创 2021-03-29 14:22:52 · 78 阅读 · 0 评论 -
vue上传图片出现request Content-Type isn‘t multipart/form-data错误
Content-Type 标头告诉客户端实际返回的内容的内容类型。上传文件正确的content-Type是:Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryU5hWNP1WkuZkbBiv报错之后Content-Type是:application/json;charset=UTF-8Vue中的原因是:在拦截器出对请求参数做了修改,导致请求参数的类型改变,浏览器识别添加Content-Type与真正的参数的类型不一致。原创 2021-03-23 09:22:09 · 6591 阅读 · 4 评论 -
页面导入样式时,使用link和@import有什么区别?
1.link属于XHTML标签,除了加载CSS外,还能用于定义RSS,定义rel连接属性等作用;而@import是css提供的,只能加载css2.页面被加载时,link会同时加载,而@import引用的css会等到页面被加载完再加载3.@import是css2.1提出的,只在IE5以上才能被识别,而link是xhtml标签,无兼容性问题4.link支持用js控制DOM去改变样式,而...原创 2019-09-25 00:00:08 · 91 阅读 · 0 评论 -
触发BFC条件
FC(格式化上下文)、BFC(块级格式化上下文)body根元素绝对定位元素(postion:absolute/fixed)display:inline-block、table-cells、flex浮动元素:float(除none以外)overflow:除visible,(hidden、auto、scroll)原创 2021-01-29 10:18:11 · 183 阅读 · 0 评论 -
在一个html里面引入另一个html的几种方法
1.iframe2.js的load函数,$(“#page1”).load(“b.html”)3.object4.import(只能引入css文件)5.include6.<frameset> <frame ><frame ></frameset>原创 2020-09-25 11:13:32 · 5145 阅读 · 0 评论 -
html的行内元素、块级元素、空元素有哪些? css盒模型
1.块级元素div、p、h1~h6、from ul2.行内元素a、b、br、i、span、input、select3.css的盒模型内容(content)、border、padding、margin待补充原创 2020-07-04 18:56:34 · 297 阅读 · 0 评论 -
XHTML的代码规范,XHTML与HTML的区别
1.XHTML对大小写敏感,要求所有标签和属性名必须使用小写2.所有属性值必须用""括起来,如果属性值里面需要用到'单引号,用'代替,例如:alt="no 'word'"3.xhtml把所有 < 和 & 特殊符号用编码表示任何小于号(<),不是标签的一部分,都必须被编码为& l t ;任何大于号(>),不是标签的一部分,都必须被编码为& g t ;任何与号(&),不是实体的一部分的,都..原创 2020-07-04 18:27:18 · 369 阅读 · 0 评论 -
怎么在网页上html中自动打开qq对话窗口
主要的链接:tencent://message/?uin=我们的QQ号码&Site=网站名称&Menu=yes例如:tencent://message/?uin=1278230143&Site=&menu=yes;框架嵌入,当网页加载的时候,再去加载链接:如下<iframestyle="display:none;" src="tencent://message/?uin=1278230143&Site=&menu=yes"></.原创 2020-05-26 15:56:12 · 1295 阅读 · 0 评论 -
div点击穿透事件的处理
第一种,因为是冒泡了,所以阻止冒泡第二种,因为div2覆盖在div1里面,所以不管你点击那个地方,都是触发了div1的区域,所以当点击的时候,判断这个区域是不是div2的区域,如果是的话,就触发div2,如果不是的话就触发div1转自:https://www.cnblogs.com/lwwen/p/7278761.html小程序在大的层绑定点击事件,不但父层要个参数,每个子层都要给参数,data-cid,不然放在父层,子层获取不到参数。...原创 2020-05-09 11:55:00 · 2180 阅读 · 0 评论 -
html的progress 怎么改变默认样式
html:<progress value="0" max="100"> 您的浏览器不支持progress元素 </progress> <span>56%</span>value:是达到百分比的值,max是最大可到达css:progress { border-radius:...原创 2020-01-10 10:38:04 · 1609 阅读 · 0 评论 -
web响应式的一些方法
1.给 img标签增加样式规则使它自适应容器尺寸。应声明为块级元素,应适应它容器的宽度,应保持原本的宽高比。2.为优化图片在高分辨率设备下的显示效果,最简单的方式是定义它们的width和height值为源文件宽高的一半。img {max-width: 100%;display: block;height: auto;}3.一般依赖于媒体查询:max-width(...原创 2020-03-11 16:46:11 · 190 阅读 · 0 评论