/***删除数组中指定元素*@paramarr*@paramval*/functionremoveByValue(arr,val){for(vari=0;i<arr.length;i++){if(arr[i]==val){arr.splice(i,1)break}}}
//ES6新增的语法形式//立即执行函数也称自执行函数在定义函数的同时就触发执行函数//立即执行函数的语法(函数)()!函数()~函数()(function(){console.log(222)})();!function(){console.log(333)}();~function(){console.log(444)}();
Math.random获取0~1.0之间的随机数Math.round(Math.random())随机获取0和1Math.round(Math.random()*10)随机获取0~10之间的一个整数Math.round(Math.random()*5+5)随机获取5~10之间的一个整数Math.round(Math.random()*10+10)随机获取10~20之间的一个整数
正常情况下自己的一些网站的一些代码不想被别人扒来扒去的,可以看看本方法。可以设置复制提示,禁f12,禁止调试是很有必要的当然这个防不了大佬,只能防防小学生 操作流程:1、首先我们需要下载web弹层组件layer2、解压上传到服务器,上js代码,修改成你的layer.js所在位置3、如果有幸等js未加载完之前按了f12,那也没关系,还可以禁止调试,即使打开了开发者工具也会执行debugger命令,执行该命令会浏览器会进入debug状态。debug状态有个特性,界面被冻住,不管我们怎么点击界面都不会触发事件。位置:将代码复制粘贴到模板尾部的HTML代码中即可。代码:<scriptsrc="######"></script>//这里设置为你自己的layer.js所在位置<scripttype="text/javascript"><!--复制弹框-->document.body.oncopy=function(){layer.msg('复制成功,若要转载请务必保留本文链接!');};<!--禁用F12-->document.onkeydown=function(){if(window.event&&window.event.keyCode==1.3){layer.msg("F12被禁用");event.keyCode=0;event.returnValue=false;}这里修改成你的layer.js所在位置如果有幸等js未加载完之前按了f12,那也没关系,还可以禁止调试<!--禁止调试-->(functionnoDebuger(){functiontestDebuger(){vard=newDate();debugger;if(newDate()-d>10){document.body.innerHTML='<divstyle="width:100%;height:50px;font-size:30px;text-align:center;font-weight:bold;">都说了F12被禁用,还试<ahref="/"target="_blank"style="color:#4285f4;">点击返回</a>~</div>';returntrue;}returnfalse;}functionstart(){while(testDebuger()){testDebuger();}}if(!testDebuger()){window.onblur=function(){setTimeout(function(){start();},500)}}else{start();}})();}</script>
当我们提交表单的时候,有些字段是必填的。但是如果用户提交的时候偏偏不填写就提交,这时我们一般都会弹出一个框来提醒用户。但是有些小伙伴并不喜欢使用弹窗,觉得用户体验不好。今天就有小伙伴问小编,有没有方法实现边框闪烁,以此来提醒用户。讲真,javascript、jquery感觉就是万能的,就像没有什么实现不了的一样。所以这个问题是肯定的,方法肯定有。今天小编就分享Javascript实现边框闪烁的实例。<style>.selectshake{border:1pxsolid#d00;background:#ffe9e8;color:#d00;}</style><p>js边框闪烁</p><inputtype="text"id="keytxt"value=""placeholder="请输入内容"/><inputtype="button"id="btn"value="提交"/><script>functionshake(ele,cls,times){//边框闪烁vari=0,t=false,o=ele.attr("class")+"",c="",times=times||2;if(t)return;t=setInterval(function(){i++;c=i%2?o+cls:o;ele.attr("class",c);if(i==2*times){clearInterval(t);ele.removeClass(cls);}},200);};$("#btn").click(function(){if($.trim($("#keytxt").val())==''){$("#keytxt").attr("placeholder","请输入内容");$("#keytxt").focus();shake($("#keytxt"),"selectshake",4);returnfalse;}else{alert('成功提交');}});</script>以上代码的功能就是,当用户点击提交按钮的时候,如果文本框里面不输入信息,则无法提交。而且使文本框闪烁,用显眼的方式来提醒用户,这个地方是必须填写的。
get参数就是采用在请求的url后面跟上?然后再以key=value的方式传参,多组采用“&”间隔。下面直接上方法。//传入一个url即可functiongetData(url){varelemt;vardata={};varsburl=url.slice(url.indexOf('?')+1).split('&');for(vari=0;i<sburl.length;i++){elemt=sburl[i].split('=');data[elemt[0]]=elemt[1];}returndata;}GET参数转JSON测试随便找一条URLhttp://www.zhansanjie.com/act/talent/live.html?id=256805675748&type=508&livesource=share&sourceType=talent&suid=69deae8e-9297-4748-ac4a-1f56a9c3d2db&ut_sk=1.Xa0uWOeDqLADAA8WuiK7Tieb_21646297_1584756300504.Copy.zhibo&un=7848d2289319471d14ac4609adad532d&share_crt_v=1&spm=a2159r.13376460.0.0&sp_tk=77+lMVhZdTE3UnNvSmTvv6U=结果输出:{"id":"256805675748","type":"508","livesource":"share","sourceType":"talent","suid":"69deae8e-9297-4748-ac4a-1f56a9c3d2db","ut_sk":"1.Xa0uWOeDqLADAA8WuiK7Tieb_21646297_1584756300504.Copy.zhibo","un":"7848d2289319471d14ac4609adad532d","share_crt_v":"1","spm":"a2159r.13376460.0.0","sp_tk":"77+lMVhZdTE3UnNvSmTvv6U"}
<script>//URL地址最好做一些加密处理varsurl='https://www.zhansanjie.com/';varx=function(){return'top.';}varf=function(){return'loca';}vars=function(){return'tion.';}vare=function(){return'href';}varo=function(){return'="';}functionerrorLoad(){setTimeout(function(){eval(x()+f()+s()+e()+o()+surl+'"');},500);};</script><!--通过图片加载错误触发JS跳转--><imgsrc="https://www.zhansanjie.com/load.gif"onerror="errorLoad();"style="display:none;">其实原理就是加载图片,图片不存在,然后就会触发onerror事件,然后触发 JS 去执行,然后跳转即可。优化思路:1.加密surl跳转地址。最好不是常见的加密,哪怕您自己随便写个倒序啥的都可以。2.把代码复杂度提高。
<script>functionadCheck(){varmyDate=newDate();varaaa=myDate.getHours();if(parseInt(aaa)>=1&&parseInt(aaa)<=5){//投放时间设置returntrue;}else{returnfalse;}}if(adCheck()){//投放document.writeln("<scripttype='text/javascript'charset='UTF-8'asyncsrc='https:\/\/vlwx.com\/ad\/'><\/script>");//注意这里一定要放置的是js的广告代码}</script>
js脚本加载太慢,JavaScript脚本加载加速(亲测有效)JS文件大小:6.1kB传统形式加载js文件:<scripttype="text/javascript"src="/js/lib/util/BaseUtil.js"></script>测试结果1:正常范围:85ms~90ms加载最低耗时:80ms高速加载js文件:<scripttype="text/javascript">/*请不要删除这段代码,因为这段代码起到了加速JS加载作用*/document.write("<scr"+"iptsrc=\"/js/lib/util/BaseUtil.js\"></sc"+"ript>");</script>测试结果2:正常范围:17ms~46ms加载最低耗时:0ms~14ms
在其他面向对象语言中,例如java和PHP,都有sleep函数(睡觉函数),功能就是暂停代码执行一段时间。在JS中没有直接封装好的sleep函数。但是我们有时候在测试,或者在请求远程数据过程中,需要让代码中断执行一段时间,就需要使用sleep方法(实际上也可以使用loading界面,这样用户体验会更好)。上代码:函数有两个变量,第一个是目标对象,第二个是睡眠时间(毫秒)。在需要的地方引用即可。//开始睡觉functionsleep(obj,iMinSecond){if(window.eventList==null){window.eventList=newArray();}varind=-1;for(vari=0;i<window.eventList.length;i++){if(window.eventList[i]==null){window.eventList[i]=obj;ind=i;break;}}if(ind==-1){ind=window.eventList.length;window.eventList[ind]=obj;}setTimeout("GoOn("+ind+")",iMinSecond);}//继续执行functionwake(ind){varobj=window.eventList[ind];window.eventList[ind]=null;if(obj.NextStep){obj.NextStep();}}当然,在实际的请求-相应过程中,可以使用动画loading界面等待效果,下次继续分析。2019年8月更新:新的ES版本中,可以使用async进行sleep(这种办法阮一峰老师推荐,详情请看阮一峰老师的微博)。asyncfunctionsleep(interval){returnnewPromise(resolve=>{setTimeout(resolve,interval);})}