#
JavaScript的toFixed()方法的坑总结

网上几乎所有文章都是错的网上有2类文章: 一类是toFixed科普文章,像W3CSchool直接说toFixed是按照四舍五入,这属于完全错误的,甚至MDN都完全没有提到如何舍入;还有一类是介绍toFixed的坑的文章,这类文章一般都有部分错误,网上绝大部分文章都指出,toFixed是按照银行家舍入法来执行的,实际测试并非如此。 所谓银行家舍入法:四舍六入五看情况,五后非零直接入,五后为零... 阅读全文

@2021-07-02 JavaScript 浏览(1142)
#
如何使用JavaScript实现纯前端读取和导出excel文件

js-xlsx 介绍由SheetJS出品的js-xlsx是一款非常方便的只需要纯JS即可读取和导出excel的工具库,功能强大,支持格式众多,支持xls、xlsx、ods(一种OpenOffice专有表格文件格式)等十几种格式。本文全部都是以xlsx格式为例。 官方github:https://github.com/SheetJS/js-xlsx本文配套demo在线演示地址:http://dem... 阅读全文

@2018-07-03 JavaScript 浏览(61018)
#
几种排序算法的JavaScript实现

概述常见排序算法: 傻瓜排序这个傻瓜排序是我自己给起的名字,就是按照人的常规思维进行排序,不考虑任何时间复杂度和空间复杂度。话说如果给你一个数组让你手工排序,你的思路会是什么样的呢?我想你肯定是这样的: 整体用肉眼扫描一遍,找到最小的,插入结果里面,然后再扫描剩下的数字,找到最小的,再次插入结果里面,直至原始数组变空,是的,没错,这里说的傻瓜排序就是这个思路。 /** * 傻瓜排... 阅读全文

@2018-06-13 JavaScript 浏览(2781)
#
script标签的defer和async的区别

正文网上很多写法都有点问题或者难以理解,下面这一张图说明所有问题: 补充说明: defer 和 async 在下载这块儿是一样的,相较于HTML解析都是异步的;它俩的差别在于脚本下载完之后何时执行,async什么时候下载完什么时候执行,并且会中断HTML解析,defer则在HTML解析完成之后,DOMContentLoaded 事件触发之前执行。async只能用于对其它JS没有任何依赖... 阅读全文

@2018-05-09 JavaScript 浏览(1766)
#
WebWorker简单复习

本文demo:http://demo.haoji.me/2018/04/28-webworker/ JS是单线程语言由于JS设计的初衷就是用来进行一些简单的用户交互以及DOM操作,为了避免复杂性,从一开始JS就被设计成一门单线程语言,现在如是,以后也不会变。 然后正是由于单线程的缘故,当我们需要在前端运行一些大运算量的代码时,浏览器肯定会陷入卡顿。为了解决前端大运算量问题,HTML5引入了We... 阅读全文

@2018-04-28 JavaScript 浏览(3399)
#
JavaScript数字精度问题总结

常见错误console.log(0.1+0.2); // 输出 0.30000000000000004console.log(0.3-0.1); // 输出:0.19999999999999998console.log(0.07*100); // 输出 7.000000000000001console.log(0.07/0.01); // 输出 7.000000000000001 相关文章: ... 阅读全文

@2018-01-05 JavaScript 浏览(3177)
#
编辑页面离开时弹出提示

正文N年前就知道,只是没记录过,所以今天写下来。主要是借助window.onbeforeunload来实现: JS写法: window.onbeforeunload = function(){ return '修改尚未保存,确定放弃吗?';};//或者这样写:window.onbeforeunload = function(event){ event.returnValue = '... 阅读全文

@2017-08-22 JavaScript 浏览(7419)
#
Java、JS、PHP关于AES的加密解密互通问题

背景最近对接统一登录碰到PHP和Java的AES加密结果不一致问题,花了不少的时间,特此记录一下。 大致逻辑就是第三方平台对接统一登录平台时,拿到对方给的一些数据然后采用AES加密生成一个token给对方校验,第三方平台是Java写的,统一登录平台时php写的,而且php那边肯定是不能随意修改代码的,只能改Java这边。 首先,php那边的加密代码如下: /** * 加密 * @return... 阅读全文

@2017-03-18 JavaSE 浏览(15836)
#
第二代居民身份证号码含义详解

含义第二代身份证号码共18位,其中: 1-6位:表示户口所在县(市、旗、区)的行政区划代码,也就是说如果是同一个县的人,那么身份证前6位肯定都一样;7-14位:表示出身日期,共8位,遵循yyyyMMdd格式;15-17位:顺序码,具体是随机分配还是按照出身年月有序分配不清楚,第17位为奇数表示男性,偶数表示女性;18位:校验码,根据一个固定规则由前17位数字计算得来; 下面着重介绍校验码。... 阅读全文

@2017-03-16 JavaScript 浏览(10088)
#
HTML5 fetch API

介绍fetch是传统XMLHttpRequest(也就是常说的ajax)的替代者,相比后者,它更简单,并且内置对Promise的支持。 但其实话说回来,我至今没太搞明白它的更多优点,因为说它使用简单好像体现不出优势,因为我们平时都是使用ajax框架的(比如jQuery),很少会直接使用原生XMLHttpRequest,而且用了它的话还要担心兼容性的问题。 语法语法很简单:fetch(url, ... 阅读全文

@2017-03-08 JavaScript 浏览(7369)
#
Mock.js使用小结

介绍mockjs是一个模拟后台接口的JS库,它的原理是重写了XMLHttpRequest,它可以在接口没出来时非常方便的模拟数据,上线之后不引用它即可。 官网:http://mockjs.com/文档:https://github.com/nuysoft/Mock/wiki 基本语法Mock.mock(template)根据数据模板直接返回数据,以下代码可访问 http://mockjs.... 阅读全文

@2017-02-23 JavaScript 浏览(9939)
#
JS弹出下载对话框以及实现常见文件类型的下载

写在前面JS要实现下载功能,一般都是这么几个过程:生成下载的URL,动态创建一个A标签,并将其href指向生成的URL,然后触发A标签的单击事件,这样就会弹出下载对话框,从而实现了一个下载的功能。 这里所说的下载,有时候也可以理解为保存。出于安全考虑,JS肯定无法直接调用FileAPI写文件到磁盘,但是却可以通过下载来变相实现保存功能。 几个备用知识点JS触发单击事件既然是用A标签模拟,那么肯... 阅读全文

@2017-02-16 JavaScript 浏览(26924)
#
为何所有人都说JavaScript中不推荐使用eval

前言估计稍微接触过前端的人都知道eval不推荐使用,但是有没有想过到底是哪些原因不推荐使用呢? 缺点分析 可读性差;性能差;不易维护、不易调试、不易优化;安全问题,它会执行任意传给它的代码,在代码字符串未知或者是来自一个不信任的源时,绝对不要使用 eval,比如说稍不注意容易引起XSS攻击;作用域问题; 当然性能差是相对的,现代浏览器中其实eval的性能很多时候还是比较好的,比如eval一个... 阅读全文

@2016-11-30 JavaScript 浏览(4904)
#
[精品] JavaScript常见原生DOM操作API总结

几种对象NodeNodeListHTMLCollection节点查找API节点创建APIcreateElementcreateTextNodecloneNodecreateDocumentFragment节点修改APIappendChildinsertBeforeremoveChildreplaceChild节点关系API父关系API子关系API兄弟关系型API元素属性型APIsetAttribu... 阅读全文

@2016-11-20 JavaScript 浏览(6993)
#
JavaScript中的new和instanceof操作符

newJavascript中的new运算符是用来实例化一个类,从而在内存中分配一个实例对象。 在javascript中, 通过new可以产生原对象的一个实例对象,而这个实例对象继承了原对象的属性和方法。因此,new存在的意义在于它实现了javascript中的继承,而不仅仅是实例化了一个对象! 一个模拟new实现过程的代码如下(注意仅仅是模拟其实现过程,并不能替代new!): fun... 阅读全文

@2016-11-16 JavaScript 浏览(2871)
#
JavaScript原生事件相关知识点总结

事件的三个阶段捕获阶段 -> 目标阶段 -> 冒泡阶段,IE低版本不支持捕获阶段。addEventListener的第三个参数useCapture就是表示是否在捕获阶段触发,默认false。 事件的绑定和解绑一般有3种写法。 属性方式此方式不推荐。如,直接在div上面写onclick: <input type="button" value="测试" onclick="t... 阅读全文

@2016-11-12 JavaScript 浏览(3773)
#
JS获取剪贴板图片之后的格式与压缩问题

前言某年某月的某一天,突然发现博客服务器上上传的图片都比较大,一些很小的截图都有几百kb,本来服务器带宽就慢,不优化一下说不过去。 问题细述特别说明:本文代码因为只是用于我自己后台写markdown上传图片,运行环境只考虑PC,所以没有考虑任何兼容性,推荐Chrome下使用。 以下面一张图片为例: 原始图片为85kb,jpg格式的,上传之后就变成png格式了,而且变成了560kb!实在是... 阅读全文

@2016-10-23 JavaScript 浏览(3297)
#
JS自定义事件

原文发表于:20160423 兼容性较好的方法先看一个例子: var event = document.createEvent("CustomEvent");event.initCustomEvent("myevent", true, true, {a:1, b:2});document.addEventListener("myevent", function(e){ console.l... 阅读全文

@2016-10-20 JavaScript 浏览(4221)
#
Promise简单学习

Promise用法介绍ES6中内置了Promise,非ES6下也有很多第三方实现。Promise是JS中异步编程的一种解决方案,主要是为了解决异步回调深渊。 我喜欢偷懒,懒得介绍杂七杂八等等,直接上代码。 最基本用法先来看个例子: // 用setTimeout模拟简单的ajax,num传参来人为模拟成功或者失败,大于10表示成功function ajax(num) { return n... 阅读全文

@2016-10-09 JavaScript 浏览(2481)
#
【经典面试题】JavaScript数组去重

题目已知有如下一个数组,要求实现一个去重方法: var arr = ['aa', 'bb', 'cc', '', 1, 0, '1', 1, 'bb', null, undefined, null]; 既然是面试题,肯定要考虑兼容性和效率。 几种实现第一种实现这是最容易想到的方法: function unique1(array){ var result = []; for(va... 阅读全文

@2016-09-28 JavaScript 浏览(3275)
第1页,共3页