
Javascript
文章平均质量分 79
超频化石鱼
这个作者很懒,什么都没留下…
展开
-
js递归的优化
尾递归函数调用自身,称为递归。如果尾调用自身,就称为尾递归。阮一峰在《ECMAScript 6》中举了一个例子:function Fibonacci (n) { if ( n <= 1 ) {return 1}; return Fibonacci(n - 1) + Fibonacci(n - 2);}这是一个常规的Fibonacci 数列递归实现。但运行时需要保存众多调用帧,占用大量内存,容易发生栈溢出错误。但若将其更改为尾递归:function Fibonacci2 (n原创 2021-02-02 17:34:34 · 1070 阅读 · 0 评论 -
剪贴板中图片转为BASE64格式
需求将图片复制到剪贴板后,希望将图片快捷地转换为BASE64格式。各种在线工具往往需要先将图片保存到本地,然后将本地文件上传。现在考虑将图片保存到本地这一步去掉,直接将图片从剪贴板粘贴到网页的某个元素中,网页触发粘贴事件并获取文件,然后转换并显示。触发粘贴并转换首先准备一个<textarea>用于粘贴图片以及显示结果。<textarea id="result"></textarea>然后为其添加paste事件:document.getElementById原创 2020-07-21 14:54:07 · 2344 阅读 · 0 评论 -
js处理csv文件并导出
处理当使用js处理Excel文件时,建议导出为csv,这样就能以纯文本形式进行处理。首先使用<input>与FileReader将csv文件以文本形式加载到一个字符串变量中。设字符串变量为tableStr。首先要将整个字符串按数据行来分割。由于csv文件每行结尾都带有换行符\n,故而可以使用\n做分隔符:var rows = tableStr.split(/[\n]/) // ...原创 2019-10-30 11:37:41 · 2418 阅读 · 0 评论 -
js实现本地文件的加载与读取
加载本地文件要加载本地文件,需要使用<input>标签:<input type="file" id="file" multiple>如上:type: 必须为file。multiple: 用于同时加载多个文件。这样就会生成一个选择文件按钮,其右侧显示未选择任何文件。点击选择文件,即可弹出一个文件选择窗口。同时该元素还接收拖放,拖动多个文件到选择文件即可...原创 2019-10-30 11:36:38 · 4504 阅读 · 0 评论 -
SVG动态添加元素与事件
SVG文件是由各个元素组成。元素由标签定义,而标签格式即html的元素定义格式。但是载入一个SVG文件,却无法通过常规的js获取对象方式来获取到SVG中定义的元素,更无法通过这种方式来动态添加SVG元素与事件。SVG元素的操作都要借助于SVG的document对象。SVG的document对象获取方式为:svgDoc = document.getElementById("mySVG").getSV...原创 2018-02-09 15:34:05 · 10249 阅读 · 0 评论 -
SVG对象:延迟获取
引入一个SVG文件:<embed id="mySVG" src="map.svg" type="image/svg+xml" />这样就能在浏览器中看到SVG的图。然而 ,要想在js中直接获取到SVG的对象:svgDoc = document.getElementById("mySVG").getSVGDocument();却会提示svgDoc为null。即使将该行代码放在ready函...原创 2018-02-09 15:34:11 · 978 阅读 · 1 评论