JavaScript
shijie_nihao
二流搬砖人,cv工程师。
展开
-
javascript 自带函数 读取json文件
通过js自带的fetch函数读取项目内的json文件,不必再 劳烦 jquery了。 fetch('./MyJsonFile.json').then((response)=> { response.json().then((jsonContent) => { console.log(jsonContent) }) });原创 2021-09-09 23:47:59 · 705 阅读 · 0 评论 -
JS循环调用异步方法
在前端页面选中多条数据,调用后台方法批量处理,要求在页面上加上进度条。解决思路:逐条调用后台方法,每次处理一个数据,上次处理完成后才开始处理本次数据,在for循环里肯定是不能调用后台方法的,于是在异步方法里的回调结果里递归调用后台方法。基本模板如下:function 递归方法(当前数据集索引,全部数据集){ if(当前数据集索引<全部数据集.length){ 异步方法.subscribe(function(){ 递归方法(当前数据集索引+1,全部数据集); //...原创 2020-06-23 00:56:52 · 2210 阅读 · 0 评论 -
JavaScript数组越界问题 的 笔记
在测试的过程中,遇到“从数据里取数据,结果是unefined”的情况,程序里对undefined数据进行了过滤,考虑 是那地方出问题了。最后排查是 js的数组索引越界了。。。java语言如果数组越界,会出现异常,然而js里的数组是一个特殊的对象,一般情况下是允许越界的。。。var a = []; ...转载 2020-05-07 20:24:59 · 2720 阅读 · 0 评论 -
javascript动态拼接html,事件处理函数传递参数
做网页的时候,需要根据后台程序返回的内容拼接html字符串,并设置对应的事件处理函数,图一是固定的html片段设置处理函数并传递参数,传 字符串类型和Object类型都没问题。 图一 图二展示了...原创 2019-11-24 15:56:17 · 2309 阅读 · 1 评论 -
javascript 替换全部字符串
在使用 字符串的replace方法时,只把匹配的第一处替换了,后面的没替换。解决方式就是把 replace的第一个参数换成正则式,比如 'abcdefgabcdefg'.replace(/abc/g,'123'); // 123defg123defg 'abcdefgabcdefg'.replace('abc','123'); //...原创 2019-11-24 16:08:09 · 209 阅读 · 0 评论 -
JavaScript在IE下获取本机IP
JavaScript在IE下获取本机IP描述:最近遇到一个需求,要进行日志记录,其中包含了IE浏览器客户端IP地址的记录。在尝试了从request中获取IP地址后,在没有出现代理IP的情况下,可以正常获取。即:局域网下,可以收集客户端IP成功。但一旦出现代理IP的情况,就获取不到我们正确的IP地址了。分析:方式一:从request中取IP。若客户端是直接IP进行访问,此时获取IP地址成功...转载 2019-10-10 17:47:03 · 1099 阅读 · 0 评论 -
js使用forEach函数,return语句未停止
编码js时,在forEach函数里使用return语句,多亏了同事提醒,否则后果很严重。。。1、 比较下面的两个函数,预测输出结果。 function test1() { var arr1 = [1, 2, 3, 4, 5, 6]; arr1.forEach((item, idx) => { ...原创 2019-09-11 21:46:17 · 12539 阅读 · 3 评论 -
获取iframe内的标签
1、直接使用js。 document.frames[i].document.getElementById('元素ID');2、jquery。// jquery先调用contents方法$(iframeSelector).contents().find(selector)...原创 2019-09-20 20:13:15 · 1742 阅读 · 3 评论 -
js导出json文件
前言:在调试js的时候,想把某个变量保存文本地json文件,以便于分析代码执行过程。可以按下面步骤操作。1、在程序代码里创建一个保存文件的函数function saveJSON(data, filename){ if(!data) { alert('保存的数据为空'); return; } if(!filename) filename = 'json....原创 2019-09-04 18:48:00 · 11375 阅读 · 2 评论 -
js获取当前周的周一
需求描述:有些功能需求是获取本周(本周一至当前时间)的数据,所以记录下这个通用的需求。 js的Date对象,可以通过getDay方法获取 周天-周六(0-6),如果getDay是0,就往前推6天,如果是1-6,就往前推对应的0-5天。示例函数: function getMonday(date){ ...原创 2019-08-31 22:59:35 · 4224 阅读 · 0 评论 -
JavaScript原生ajax
1、Ajax基础Ajax:Asynchronous JavaScript And XML,异步javascript和xml核心类:XMLHttpRequest,简称XHR2、XHR对象基本方法open(method,url,async) ,method方法的取值 :"GET"或者“POST” ur...原创 2019-08-31 11:53:26 · 138 阅读 · 0 评论 -
js判断字符的宽度
需求背景:根据文字的内容设置元素的宽度,但是中文和英文的宽度不一样,所以遍历字符串,如果是中文,长度加2,如果是英文,长度加1。因此,做此笔记。方式一:function strLen(str) { var len = 0; for (var i=0; i<str.length; i++) { if (str.charCodeAt(i)...原创 2019-08-29 22:39:59 · 3204 阅读 · 0 评论 -
JavaScript数组自带的便捷的函数(map、filter 、sort。。。)
javascript数据可以说实现了“基本数据结构和算法”,在语法上没有java里面的xxx器,写得少,做得多。。。1、高级循环的语法。 for( var i in arr) 其实i是个index,而不是数组里面的某个item。 var array = [1,2,3,4,5,6,7]; for (var i in arr...原创 2019-01-19 15:46:45 · 275 阅读 · 0 评论 -
JavaScript里的反射机制
什么是反射机制 反射机制指的是程序在运行时能够获取自身的信息。例如一个对象能够在运行时知道自己有哪些方法和属性。 在Java里,通过获取类的字节码对象,操纵类的属性和方法,使Java特别灵活。在JS里也有和Java反射机制类似的特性 for in,它除了用作循环,还可以体现出反射的思想。1、for in用于循环var arr=[{key:'key1'...原创 2019-02-03 22:04:19 · 415 阅读 · 0 评论 -
JavaScript 浮点数和百分数互相转换
1、浮点数转百分数/*小数转百分数*//*Number()数据类型转换,指定截取转换后的小数点后几位(四舍五入)*/function toPercent(point){ var str=Number(point*100).toFixed(1); str+="%"; return str;}2、百分数转浮点数/*百分数转小数*/function ...原创 2019-02-03 22:35:18 · 3768 阅读 · 0 评论 -
window.print()前端打印pdf
在有些需求中,需要把当前某部分的内容打印出来,在不需要后端配合的情况下,可以使用window.print()函数导出,window.print函数默认打印整个页面,如果想要设置打印的内容和样式,@media print{}就派上用场了,在html里设置添加不需要打印的class的样式为 display:none,然后在设置需要打印class的样式。<!DOCTYPE...原创 2019-08-09 13:10:10 · 4146 阅读 · 2 评论 -
html标签 导出图片
在做项目的时候,有这么一种需求,把html页面上的某部分内容保存下来,截图保存是一种方式,除此之外,还可以使用把dom元素转成canvas,然后导出png图片。推荐一个js插件html2canvas,接着说下具体步骤。1、引入html2canvas.js html2canvas.js文件下载地址:http://html2canvas.hertzen.com/...原创 2019-08-09 23:17:21 · 665 阅读 · 0 评论 -
Base64编码的理解
1、基本了解 base64是一种编码格式,和UTF-8、ASCII类似,ACSII使用的是256个字符,8个比特位存储信息,base64使用64个字符,6个比特位。64个字符分别是A-Z、a-z、0-9、+、/,按0-63顺序排列。2、ASCII字符转成base64编码 ascii编码使用8个比特位,base64编码使用6个比特位,base64所用...原创 2019-08-11 16:15:42 · 645 阅读 · 0 评论 -
javascript 事件冒泡 和 事件委托
js里的事件: 鼠标键盘事件:onclick、ondbclick、onmousedown、onmouseup、onmouseover、onmousemove、onmouseout、 onkeypress、onkeydown、onkeyup; 页面事件:onload、onunload、onresi...原创 2019-08-11 12:35:25 · 397 阅读 · 0 评论 -
前端数据 用js 导出 excel表
页面经常遇到导出excel功能,一般的做法是使用后台代码POI类库生成excel文件,在浏览器里下载。在博客https://blog.csdn.net/shijie_nihao/article/details/99236504 里说了怎么在前端导出文件,这篇文章介绍另外一个好用的js文件,导出excel。 github地址:https://github....原创 2019-08-11 23:53:19 · 635 阅读 · 0 评论 -
前端数据 用js 导出文件(文本,图片。。。)
这篇文章记录FileSaver.js,需求来源于编码时奇怪的需求。 github地址:https://github.com/eligrey/FileSaver.js/blob/master/dist/FileSaver.js 在单独的HTML文件里使用:FileSaver.js是node项目,github上提供了typescript和webpac...原创 2019-08-11 23:26:56 · 5347 阅读 · 0 评论 -
js反斜杠\替换成正斜杠/
在编码js时,踩了个坑,记录下。。。1、一般的写法(错误示例) 暂时不知为什么。。。2、正确示例原创 2019-08-16 00:28:39 · 2902 阅读 · 0 评论 -
JavaScript循环绑定事件
1、一般逻辑,对li标签循环绑定click事件,但会出现“闭包问题”<ul> <li style="list-style:none;border: 1px solid gray;">第一个</li> <li style="list-style:none;border: 1px solid gray;">第二个</li&am原创 2019-01-19 14:35:41 · 793 阅读 · 0 评论