js
文章平均质量分 60
js
考拉很OK
这个作者很懒,什么都没留下…
展开
-
js实现点击下载文件
下载原创 2022-02-25 14:56:00 · 1509 阅读 · 0 评论 -
Cache 和 Buffer 都是缓存,主要区别是什么?
以BT为例,BT下载需要长时间的挂机,电脑就有可能24小时连轴转,但BT下载的数据是碎片化的,体现在硬盘写入上也是碎片化的,因为硬盘是机械寻址器件,这种碎片化的写入会造成硬盘长时间高负荷的机械运动,造成硬盘过早老化损坏,当年有大量的硬盘因为BT下载而损坏。磁盘缓存也是一样,刚才说内存是慢速设备,所以需要片上缓存,但这个“慢”是相对于CPU而言的,相对于机械硬盘HDD,内存的速度可快多了。CPU速度很快,但CPU执行的指令是从内存取出的,计算的结果也要写回内存,但内存的响应速度跟不上CPU。原创 2017-07-18 16:32:00 · 35 阅读 · 0 评论 -
区分slice,splice和split方法
解释:splice方法从array中移除一个或多个数组,并用新的item替换它们。参数deleteCount是要移除的元素的个数。解释:slice方法复制string的一部分来构造一个新的字符串,用法与参数匀和数组的slice方法一样;end参数等于你要取的最后一个字符的位置值加上1。参数start是截取的开始数组索引,end参数等于你要取的最后一个字符的位置值加上1(可选)如果有额外的参数,那么item会插入到被移除元素的位置上。separator是一个空字符,会返回一个单字符的数组。原创 2017-09-15 13:47:00 · 59 阅读 · 0 评论 -
总结调用Flash的几种方法
这两种方法都没有用到 <embed> ,代码是符合XHTML规范,但仍然不能检测播放器版本,并且 Flash Satay 不兼容一些读屏软件。该方法共有10个参数,前5个参数不能省略,后面的参数为可选,但如果不用某个参数,必需用 null 关键字点位;,不过有一点值得一提, 直接使用 <embed> 兼容性也不错,IE 下也能正常显示,但并不推荐,原因同上。参数6:版本低于当前要求时,执行该 swf 文件,跳转到官方下载最新版本的 flash 插件(可选)参数5:正常播放该 flash 的最低版本。原创 2017-09-18 00:20:00 · 197 阅读 · 0 评论 -
js阻止浏览器、元素的默认事件与js阻止事件冒泡、阻止事件流
这里点击button的时候,浏览器会先后弹出3,2,1,本来只想让绑定在button上的事件发生,却无意中触发了它的两个父级上的事件,这里我们只是做了一个简单测试,试想如果在项目开发中,某个按钮和他的父级同时绑定了很重要的事件,那么结果会惨不忍睹。嵌套的div元素,如果父级和子元素都绑定了一些事件,那么在点击最内层子元素时可能会触发父级元素的事件,下面介绍一下js阻止默认事件与js阻止事件冒泡示例,大家参考使用吧。button,radio等表单元素的默认事件 ,注:a元素的点击跳转的默认事件 ,原创 2017-09-18 00:33:00 · 473 阅读 · 0 评论 -
RequireJS 与 SeaJS 的异同
RequireJS 遵循的是 AMD(异步模块定义)规范,SeaJS 遵循的是 CMD (通用模块定义)规范。RequireJS 采取的是在源码中预留接口的形式,源码中留有为插件而写的代码。SeaJS 采取的插件机制则与 JavaScript 语言以及Node 的方式一致:开放自身,让插件开发者可直接访问或修改,从而非常灵活,可以实现各种类型的插件。RequireJS 和 SeaJS 都是模块加载器,倡导的是一种模块化开发理念,核心价值是让 JavaScript 的模块化开发变得更简单自然。原创 2017-09-18 00:44:00 · 33 阅读 · 0 评论 -
js 数组,字符串,json互相转换
var data=[{"url":"http://www.baidu.com","oldname":"baidu"},{"url":"http://www.sina.com.cn/","oldname":"新浪"}];//eval()可以将json字符串转化为json数据格式。arr[i] =[];//js中二维数组必须进行重复的声明,否则会undefind。原创 2017-09-27 13:47:00 · 293 阅读 · 0 评论 -
ES6这些就够了
ES6的特性远不止于此,但对于我们日常的开发开说。这已经是够够的了。还有很多有意思的方法。比如findIndex...等等。包括用set来完成面试题常客数组去重问题。我和我的小伙伴们都惊呆了!原创 2017-11-04 21:12:00 · 32 阅读 · 0 评论 -
Babel 入门教程
是一个广泛使用的转码器,可以将ES6代码转为ES5代码,从而在现有环境执行。这意味着,你可以现在就用 ES6 编写程序,而不用担心现有环境是否支持。下面是一个例子。上面的原始代码用了箭头函数,这个特性还没有得到广泛支持,Babel将其转为普通函数,就能在现有的JavaScript环境执行了。原创 2017-11-14 10:58:00 · 83 阅读 · 0 评论 -
require.js
其次,由于js文件之间存在依赖关系,因此必须严格保证加载顺序(比如上例的1.js要在2.js的前面),依赖性最大的模块一定要放到最后加载,当依赖关系很复杂的时候,代码的编写和维护都会变得困难。默认情况下,require.js假定这三个模块与main.js在同一个目录,文件名分别为jquery.js,underscore.js和backbone.js,然后自动加载。后来,代码越来越多,一个文件不够了,必须分成多个文件,依次加载。它指定的回调函数,只有前面的模块都加载成功后,才会运行,解决了依赖性的问题。原创 2017-11-14 11:08:00 · 27 阅读 · 0 评论 -
JavaScript模块化编程之require.js与sea.js
像Node.js主要用于服务器的编程,加载的模块文件一般都已经存在本地硬盘,所以加载起来比较快,不用考虑异步加载的方式,所以CommonJS规范比较适用。还是上面的代码,如果在浏览器中运行,会有一个很大的问题,你能看出来吗?CMD 即Common Module Definition通用模块定义,CMD规范是国内发展出来的,就像AMD有个requireJS,CMD有个浏览器的实现SeaJS,SeaJS要解决的问题和requireJS一样,只不过在模块定义方式和模块加载(可以说运行、解析)时机上有所不同。原创 2017-11-14 11:24:00 · 134 阅读 · 0 评论 -
arguments对象与Rest参数
(三个点)作为前缀。在ECMAScript 6之前,JavaScript有一个变量来访问这些未知或可变数目的参数,这是一个类似数组的对象,并非一个数组。所以,如果你打算将所有的值都包含在rest参数中,那么你应该一开始就将它们定义为用逗号分隔的命名参数。ECMAScript 6引入了一个新功能,Rest参数,它表示一个未知数量的参数作为函数中的一个数组。第一次函数调用,将分配a = 6,b = undefined,c = undefined,第二次函数调用,将分配a = 7,b = 56,c = 9。原创 2017-11-15 09:49:00 · 66 阅读 · 0 评论 -
函数中的 arguments 对象
在JavaScript函数中,arguments对象用于访问或引用传递给函数的所有参数。正如你将在下面列出的代码中所看到的那样,执行push操作会引发异常,因为arguments.push不是函数。除了arguments名称之外,你还可以使用JavaScript数组,如对象arguments来引用它们。简单地说,JavaScript arguments对象是一个类似数组的对象,它引用传递给函数的参数。你不能对arguments对象使用其他JavaScript数组方法,例如push,pop,slice等等。原创 2017-11-19 20:02:00 · 27 阅读 · 0 评论 -
js之iframe父、子页面通信
一般先加载完父页面才会去加载子页面,所以:必须要确保在iframe加载完成后再进行操作,如果iframe还未加载完成就开始调用里面的方法或变量,会产生错误。判断iframe是否加载完成有两种方法:1. iframe上用onload事件2. 用document.readyState=="complete"来判断。原创 2017-11-27 00:32:00 · 1026 阅读 · 0 评论 -
用js把数据从一个页面传到另一个页面
然后在2.html页面split(“=”)去截取。原创 2017-11-27 01:25:00 · 439 阅读 · 0 评论 -
JS 判断PC、android、ios、微信浏览器
【代码】JS 判断PC、android、ios、微信浏览器。原创 2017-11-29 19:03:00 · 240 阅读 · 0 评论 -
js——引用类型和基本类型
复制给另一个对象的过程其实是把该对象的地址复制给了另一个对象变量,两个指针都指向同一个对象,所以若其中一个修改了,则另一个也会改变。也就是说,基本类型的复制就是在栈内存中开辟出了一个新的存储区域用来存储新的变量,这个变量有它自己的值,只不过和前面的值一样,所以如果其中一个的值改变,则不会影响到另一个。(1)创建一个String类型的实例(使用 new 操作符创建的引用类型的实例,在执行流离开当前作用域之前都一直保存在内存中。基本类型的数据是存放在栈内存中的,而引用类型的数据是存放在堆内存中的。原创 2017-12-03 22:35:00 · 43 阅读 · 0 评论 -
JS 中对变量类型的判断
从输出的结果来看,Object.prototype.toString.call(变量)输出的是一个字符串,字符串里有一个数组,第一个参数是Object,第二个参数就是这个变量的类型,而且,所有变量的类型都检测出来了,我们只需要取出第二个参数即可。今天我们就来探讨一下,使用什么方法判断一个出一个变量的类型。同时,我们也要看到,und和nul是检测的Object类型,才输出的true,因为js中没有Undefined和Null的这种全局类型,他们und和nul都属于Object类型,因此输出了true。原创 2017-12-12 13:36:00 · 61 阅读 · 0 评论 -
前后端常用通讯方式-- ajax 、websocket
要这样完成一个WebSocket服务器,估计所有的人都想放弃,幸好的是市场上有几款比较好的开源库供我们使用,比如 PyWebSocket,WebSocket-Node, LibWebSockets等等,这些库文件已经实现了WebSocket数据包的封装和解析,我们可以调用这些接口,这在很大程度上减少了我们的工作量。另外,Socket.IO提供了4个配置的API:io.configure, io.set, io.enable, io.disable。//监听客户端连接,回调函数会传递本次连接的socket。原创 2018-01-07 00:03:00 · 211 阅读 · 0 评论 -
js判断移动设备
1. 判断 iPhone Android iPod。3. 判断安卓、苹果、winphone手机。原创 2018-01-29 14:40:00 · 156 阅读 · 0 评论 -
Debounce 和 Throttle 的原理及实现---防止频繁触发某事件
debounce强制函数在某段时间内只执行一次,throttle强制函数以固定的速率执行。在处理一些高频率触发的 DOM 事件的时候,它们都能极大提高用户体验。原创 2018-02-02 13:56:00 · 96 阅读 · 0 评论 -
es6 箭头函数 this 问题
this。原创 2018-02-09 17:37:00 · 37 阅读 · 0 评论 -
js中进行金额计算 parseFloat 会产生精度问题
parseFloat(price*100 * quantity)的计算结果是7693.000000000001 使用Math.round()方法四舍五入,再除100 即为正确的结果。needPay的正确结果应该是76.93元 但是运行后发现needPay为76.93000000000001。此情况可通过 toFixed(n) 方法修正 但是这个方法对 js版本要求较高 不能兼容ie5。另一个解决方案是: 将元为单位的金额乘以100换算为分进行计算。原创 2018-03-01 09:33:00 · 259 阅读 · 0 评论 -
ES6 Javascript 实用开发技巧
ES6 中新增加了let和const两个命令,let用于定义变量,const用于定义常量 两个命令与原有的var命令所不同的地方在于,let, const//es5if(1==1){//foo//es6if(1==1){定义常量对象a.b = 3;上例中,常量 a 中的内容在定义后,再进行修改依然有效,原因是对于对象类型的使用是指针式引用,常量只是指向了对象的指针,对象本身的内容却依然可以被修改,注意,数组(Array) 也是对象;stringnumberboolean等a = 2;原创 2018-04-17 11:07:00 · 33 阅读 · 0 评论 -
CORS 跨域
浏览器发现,这个回应的头信息没有包含Access-Control-Allow-Origin字段(详见下文),就知道出错了,从而抛出一个错误,被XMLHttpRequest的onerror回调函数捕获。它也是一个逗号分隔的字符串,表明服务器支持的所有头信息字段,不限于浏览器在”预检”中请求的字段。服务器收到”预检”请求以后,检查了Origin、Access-Control-Request-Method和Access-Control-Request-Headers字段以后,确认允许跨源请求,就可以做出回应。原创 2018-04-23 11:02:00 · 31 阅读 · 0 评论 -
数组、Set对象的互相转换
1. 把数组对象转换为Set对象。2. 把Set对象转为数组。原创 2018-05-07 17:31:00 · 237 阅读 · 0 评论 -
ES6系列汇总
汇 总第一节:什么是ES6?新手该如何理解第二节:ES6新增了let关键字,干嘛用的?第三节:ES6中另一个不得不说的关键字const第四节:教你如何快速让浏览器兼容ES6特性第五节:一个令人兴奋的ES6新特性:解构赋值第六节:ES6为字符串String带来哪些好玩的特性?第七节:ES6为数值做了哪些扩展?第八节:ES6为数组做了哪些扩展?第九节:ES6为对象做了哪些扩展?第十节:ES6为函数做了哪些扩展?第十节(补课):函数的扩展 — 箭头函数的this使用第十一节:JavaScript有了一种全新的数据原创 2018-05-25 16:57:00 · 27 阅读 · 0 评论 -
热更新-自动刷新浏览器
6. 需要配置的话可以下载到本地引用,不需要配置的话直接引用官网的即可 <script src="http://livejs.com/live.js"></script>Live.js是一个插件库,使用时直接引入html中即可,默认检测html、css、js,可以在源文件中配置其他的文件后缀来检测比如jsp、php等文件都可以。编辑文件后点击浏览器会自动刷新(适用于大部分开发者),在编辑器(idea)中 ctrl+s 后浏览器也会自动刷新(适用于分屏的开发者,不需要鼠标去点击浏览器)原创 2018-06-14 15:53:00 · 56 阅读 · 0 评论 -
js异步任务处理方式
Generator 的方式解决了 Promise 的一些问题,流程更加直观、语义化。但是 Generator 的问题在于,函数的执行需要依靠执行器,每次都需要通过。函数完美的解决了上面两种方式的问题。流程清晰,直观、语义明显。操作异步流程就如同操作同步流程。Promise 的方式虽然解决了 callback hell,但是这种方式充满了 Promise的。语义化不明显,代码流程不能很好的表示执行流程。方法,如果处理流程复杂的话,整段代码将充满。函数自带执行器,执行的时候无需手动加载。原创 2018-07-13 15:36:00 · 36 阅读 · 0 评论 -
js识别用户设备是移动端手机时跳转到手机网站
一、识别到用户的设备是手机等移动端设备时跳转到移动端网站。原创 2018-08-24 17:20:00 · 129 阅读 · 0 评论 -
监听用户关闭浏览器、离开浏览器事件
有时候,开发者需要知道,用户正在离开页面。常用的方法是监听下面三个事件。pagehideunload但是,这些事件在手机上可能不会触发,页面就直接关闭了。因为手机系统可以将一个进程直接转入后台,然后杀死。用户点击了一条系统通知,切换到另一个 App。用户进入任务切换窗口,切换到另一个 App。用户点击了 Home 按钮,切换回主屏幕。操作系统自动切换到另一个 App(比如,收到一个电话)。上面这些情况,都会导致手机将浏览器进程切换到后台,然后为了节省资源,可能就会杀死浏览器进程。原创 2018-10-29 09:57:00 · 797 阅读 · 0 评论 -
用 !来判断数据是否存在
在工作中经常会碰到用来判断数据是否存在的情况,例如:if(!原创 2019-09-30 10:19:00 · 33 阅读 · 0 评论 -
js实现复制内容到剪贴板
复制原创 2019-12-07 19:28:00 · 219 阅读 · 0 评论