javascript
redtopic
这个作者很懒,什么都没留下…
展开
-
JS实现快速排序
大致分三步:1、找基准(一般是以中间项为基准)2、遍历数组,小于基准的放在left,大于基准的放在right3、递归 function quickSort(arr){ //如果数组 if(arr.lengthreturn arr;} var pivotIndex=Math.fl转载 2017-04-13 17:47:20 · 694 阅读 · 1 评论 -
js中cookie的使用详细分析
cookie概述 在上一节,曾经利用一个不变的框架来存储购物栏数据,而商品显示页面是不断变化的,尽管这样能达到一个模拟 全局变量的功能,但并不严谨。例如在导航框架页面内右击,单击快捷菜单中的【刷新】命令,则所有的Javascript变量都会丢失。因此,要实现严格的 跨页面全局变量,这种方式是不行的, Javascript中的另一个机制:cookie,则可以达到真正全局变量的要求。 co转载 2017-04-25 14:58:33 · 409 阅读 · 0 评论 -
怎样实现前端裁剪上传图片功能
由于前端是不能直接操作本地文件的,要么通过用户点击选择文件或者拖拽的方式,要么使用flash等第三方的控件,但flash日渐衰落,所以使用flash还是不提倡的。同时html5崛起,提供了很多的api操控,可以在前端使用原生的api实现图片的处理,这样可以减少后端服务器的压力,同时对用户也是友好的。最后的效果如下:这里面有几个功能,第一个是支持拖拽,第二个压缩,第三个是裁剪编辑转载 2017-04-25 15:38:22 · 606 阅读 · 0 评论 -
JS核心系列:浅谈原型对象和原型链
在Javascript中,万物皆对象,但对象也有区别,大致可以分为两类,即:普通对象(Object)和函数对象(Function)。一般而言,通过new Function产生的对象是函数对象,其他对象都是普通对象。举例说明:function f1(){ //todo}var f2 = function(){ //todo};var f3 = ne转载 2017-04-26 10:41:21 · 210 阅读 · 0 评论 -
JS的十大经典算法排序
有句话怎么说来着:雷锋推倒雷峰塔,Java implements JavaScript.当年,想凭借抱Java大腿火一把而不惜把自己名字给改了的JavaScript(原名LiveScript),如今早已光芒万丈。node JS的出现更是让JavaScript可以前后端通吃。虽然Java依然制霸企业级软件开发领域(C/C + +的大神们不要打我。。。),但在Web的江湖,Ja转载 2017-06-05 13:12:45 · 412 阅读 · 0 评论 -
Javascript中apply、call、bind
apply、call 在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向。 JavaScript 的一大特点是,函数存在「定义时上下文」和「运行时上下文」以及「上下文是可以改变的」这样的概念。 先来一个栗子:1转载 2017-06-06 20:30:46 · 313 阅读 · 0 评论 -
js获取菲波那契数列的第N个元素
菲波那契数列,大致可以描叙为a(n) = a(n-1) + a(n-2) (a >=2)。类似于这样[1, 1, 2, 3, 5, 8, 13 ...]。具体大家可以百度一下。下面我们来用js获取菲波那契数列的第N个数为多少:1.递归var a = function(n) { if (n === 1 || n === 2) {转载 2017-06-08 12:46:02 · 1207 阅读 · 0 评论 -
cookie操作
CookieUtil={ addCookie:function(key,value,options){ var str=key+"="+escape(value); if(options.expires){ var curr=new Date(); //options.expires的单位是小时 curr.se转载 2017-06-21 21:04:15 · 222 阅读 · 0 评论 -
JQuery之ContextMenu(右键菜单)
插件下载地址:http://www.trendskitchens.co.nz/jquery/contextmenu/jquery.contextmenu.r2.js压缩版:http://www.trendskitchens.co.nz/jquery/contextmenu/jquery.contextmenu.r2.packed.jsJquery主页: http://jqu转载 2017-04-25 14:50:53 · 574 阅读 · 0 评论 -
iframe跨域
script、image、iframe的src都不受同源策略的影响。所以我们可以借助这一特点,实现跨域。如前面所介绍的JSONP跨域,以及灯标(Beacons)。该篇随笔主要阐述iframe结合一些技术,实现跨域请求。 1、iframe+window.name; 2、iframe+location.hash; 3、iframe+window.postMessa转载 2017-04-25 12:17:31 · 977 阅读 · 0 评论 -
不借助第三个变量实现两个变量交换的思考
网上存在三种方法: 1) 算术运算简单来说,就是通过+和-运算来实现。代码如下:int a,b;a=10;b=12;a=b-a; //a=2;b=12b=b-a; //a=2;b=10a=b+a; //a=12;b=10通过以上运算,a和b中的值就进行了交换。表面上看起来很简单,但是不容易想到,尤其是在习惯标准算法之后。此算法转载 2017-04-13 17:54:11 · 302 阅读 · 0 评论 -
Javascript的事件处理机制
这篇文章对于了解Javascript的事件处理机制非常好,将它全文转载于此,以备不时之需。什么是事件?事件(Event)是JavaScript应用跳动的心脏 ,也是把所有东西粘在一起的胶水。当我们与浏览器中 Web 页面进行某些类型的交互时,事件就发生了。事件可能是用户在某些内容上的点击、鼠标经过某个特定元素或按下键盘上的某些按键。事件还可能是 Web 浏览器中发生的事情,比如说某转载 2017-04-06 11:21:20 · 330 阅读 · 0 评论 -
什么是JSONP
什么是JSONP? 先说说JSONP是怎么产生的: 其实网上关于JSONP的讲解有很多,但却千篇一律,而且云里雾里,对于很多刚接触的人来讲理解起来有些困难,着用自己的方式来阐释一下这个问题,看看是否有帮助。 1、一个众所周知的问题,Ajax直接请求普通文件存在跨域无权限访问的问题,甭管你是静态页面、动态网页、web服务、WCF,只要是跨域请求,一律不准。 2、不过我转载 2017-04-06 16:14:30 · 236 阅读 · 0 评论 -
Debounce 和 Throttle 的原理及实现
在处理诸如 resize、scroll、mousemove 和 keydown/keyup/keypress 等事件的时候,通常我们不希望这些事件太过频繁地触发,尤其是监听程序中涉及到大量的计算或者有非常耗费资源的操作。有多频繁呢?以 mousemove 为例,根据 DOM Level 3 的规定,「如果鼠标连续移动,那么浏览器就应该触发多个连续的 mousemove 事件」,这意味着转载 2017-04-06 16:49:29 · 19233 阅读 · 1 评论 -
将url的查询参数解析成字典对象
这个题目不约而同的出现在了多家公司的面试题中,当然也是因为太过于典型,解决方案无非就是拆字符或者用正则匹配来解决,我个人强烈建议用正则匹配,因为url允许用户随意输入,如果用拆字符的方式,有任何一处没有考虑到容错,就会导致整个js都报错。而正则就没有这个问题,他只匹配出正确的配对,非法的全部过滤掉,简单,方便。实现代码:1234转载 2017-04-06 17:00:03 · 1883 阅读 · 0 评论 -
闭包
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。下面就是我的学习笔记,对于Javascript初学者应该是很有用的。一、变量的作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。Javascript语言的特殊之处,就在于函数内部可以直接读取全转载 2017-04-25 11:12:28 · 173 阅读 · 0 评论 -
深入理解JavaScript作用域和作用域链
作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理。今天这篇文章对JavaScript作用域和作用域链作简单的介绍,希望能帮助大家更好的学习JavaScript。51CTO推荐专题:JavaScript入门JavaScript作用域任何程序设计语言都有作用域的概念,简单的说,作用域就是变量与函数转载 2017-04-25 11:56:33 · 263 阅读 · 0 评论 -
谈谈Ajax原理实现过程
1.什么是AJAX?AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术。它使用:使用XHTML+CSS来标准化呈现;使用XML和XSLT进行数据交换及相关操作;使用XMLHttpRequest对象与Web服务器进行异步数据通信; 使用Javascript操作转载 2017-04-25 12:03:49 · 820 阅读 · 1 评论 -
js事件模型
EventUtil={ addListener:function(target,type,handler){ if(target.addEventListener){ target.addEventListener(type,handler); }else if(target.attachEvent){ target.attach("o转载 2017-06-21 21:01:15 · 173 阅读 · 0 评论