介绍两种方法,一是ES6的flat,简单粗暴.二是递归,也不麻烦. flat ES6自带了flat方法,用于使一个嵌套的数组扁平化,默认展开一个嵌套层.flat方法接收一个数字类型参数,参数值即嵌套层的深度,默认为1.(注意是“嵌套层”不是“层”,如传入0则不展开任何嵌套)    需要注意的是:第一,flat方法一旦使用,必将移除掉数组的empty空项:第二,flat方法返回一个新数组,并不会改变原数组.    由于我们不好确定最大嵌套层的深度,因此有个很暴力的方法,直接传入Infinity,可…
本文主要介绍一些JS中用到的小技巧 1. 类型强制转换   1.1 string强制转换为数字 可以用*1来转化为数字(实际上是调用.valueOf方法) 然后使用Number.isNaN来判断是否为NaN,或者使用 a !== a 来判断是否为NaN,因为 NaN !== NaN '32' * 1            // 32 'ds' * 1            // NaN null * 1            // 0 undefined * 1    // NaN 1  * {…
JS.JQ相关小技巧积攒,以备不时之需. 1.js 获取时间差:时间戳相减.new Date().getTime()  获得毫秒数,除以(1000*60*60*24) 获得天数. 2.重定向操作:页面重定向:window.location.href="http://..."即可(本页页面跳转). 3.js立即执行函数,window.onload = function, $(document).ready({})区别 以及 执行时机 以及 先后顺序. 4.前台form表单的提交方式有很多…
一.HTML download 与文件下载 如果希望在前端侧直接触发某些资源的下载,最方便快捷的方法就是使用HTML5原生的download属性,例如: <a href="large.jpg" download>下载</a> 但显然,如果纯粹利用HTML属性来实现文件的下载(而不是浏览器打开或浏览),对于动态内容,就无能为力. 例如,我们对页面进行分享的时候,希望分享图片是页面内容的实时截图,此时,这个图片就是动态的,纯HTML显然是无法满足我们的需求的,借助J…
js 数字操作: 1.1 取整: 取整有很多方法如: parseInt(a,10); Math.floor(a); a>>0; ~~a; a|0; 前面2种是经常用到的,后面3中算是比较偏的,因为其有不足之处,比如将下面代码放到 console 里测试: var num = 2150000000; console.log(num|0); console.log(parseFloat(num)) 你会发现问题; 输出的是: -2144967296 2150000000 其原因就在于js数字存储的…
首先,看一个非常不优雅的例子: 看到这段代码,虽然代码很短,但是一眼看上去就不想再看了,也就是没什么可读性.这段代码,没有封装,随意定义一个变量都是全局变量,这样在多人开发或者是大型开发中,极其容易造成所谓的脏读. 那么,该怎样把JS写得优雅一些呢?下面总结了几点供大家参考(如有错误,欢迎指正!): ①巧用闭包将函数变量变为局部变量,基本格式为: ;(function(){ ... })() 解释一下,最前面的分号,主要是为了防止在与别人的代码合并的时候出错,例如以下情况: var lucky=…
1. 数组中通过赋值语句来改变值 var a = 1; var msg = ["value0","value1"]; for(var i = 0;i<10;i++){ alert(msg[a = a == 1 ? 0 : 1]);// 0,1,0,1… } 能实现切换两个不同的值.  msg[a=1] 相当于 msg[1], a=1,同时执行赋值和取值 2.类型转换 一般把"123"转成number类型,都是parseInt("1…
1.关于泛微流程的js设计 泛微oa可以插入javascript可以diy自己想要的表单页面前端功能.如果有前端开发经验,或者熟练使用jQuery的话,这将变得非常容易!同时泛微OA内部有很多库,包括报表相关的js和excel相关的js等等. 2.导入相关的库 泛微oa的插入,不仅能插入js代码,还能引入css样式. 引入jQuery-ui的css文件:<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/th…
js事件执行顺序是js中一个老生常谈的一个话题, 聊这个话题之前我们先谈谈怎么给页面元素绑定我们需要的事件 1.给页面元素绑定事件 a)直接在元素上面加上需要绑定的事件,如 <button type="button" onclick="console.log('111')"></button> 结果如下: 此方法不建议使用,有两方面的原因, 1)此方法绑定的方法必须为一个全局的方法,而通常我们需要绑定的方法都是针对某一处特定的方法,并不具备通…
以前写js代码调试代码查看数据是否正确的时候不知道F12(开发者工具),都是alert(xxx)或者console.log(xxx), 现在知道还可以用document.write或者try...catch或者window.onerror 还发现一个好用的东西,JSON.stringify(xxx),如果参数为对象,会显示对象的内容,不用用循环什么的了,对数组或数据对象之类的挺有用,像下面弹窗就是一个数据对象作为JSON.stringify参数的结果…