Javascript
Topepy
不积跬步,无以至千里; 不积小流,无以成江海
展开
-
关于js清除cookie失败详解
1.清除cookie的原理:给需要删除的cookie设置expires(失效时间),从而将删除此条数据。代码如下:document.cookie = name +"=data1;expires="+(new Date()).toGMTString();注意事项:(1).name = data1 表示操作的是cookie中Name为data1的这条数据。原创 2016-01-21 14:25:13 · 4337 阅读 · 0 评论 -
前端开发的45个经典技巧
1、首次给变量赋值是切记使用var关键字(闲谈:清楚的记得有次去面试前端,一个项目经理同时面我和另外一个人,面试官开始就是要我们俩手写一个数组去重函数,哗哗的一下写完交了,面试官看来下之后直接给了一旁的竞争对手,叫她给我指出我代码的错误,才知道刚才忘记写var声明变量,瞬间脸红走了)=。=~~回归正题:变量没有声明直接赋值的话,默认会作为一个全局变量(一切无主的都是window的),要尽量避免原创 2016-04-01 17:52:45 · 6797 阅读 · 1 评论 -
HTML5新特性之客户端数据库(IndexedDB)
1、简述 在HTML5本地存储——Web SQL Database提到过Web SQL Database实际上已经被废弃(由于至今Firefox和IE不支持),而HTML5的支持的本地存储实际上变成了Web Storage(Local Storage和Session Storage)与IndexedDB。Web Storage使用简单字符串键值对在本地存储数据,方便灵活,但是对于大量结构原创 2016-05-08 22:23:47 · 2616 阅读 · 0 评论 -
zepto和jquery的区别
1.总括:Zepto的主页说,会用jQuery就会用Zepto.-Zepto更轻量级。-Zepto是jQuery的精简,针对移动端去除了大量的jQuery的兼容代码。-部分API的实现方式不同。2.详情:1.针对移动端程序,Zepto有一些基本的触摸事件可以用来做触摸屏交互(tap事件、swipe事件),Zepto是不支持IE浏览器的。 并非Zepto的设计不原创 2017-07-29 17:46:20 · 669 阅读 · 0 评论 -
Javascript如何改变对象的原型
1.什么是原型(prototype)。prototype是构造函数的一个属性, 该属性指向一个对象. 而这个对象将作为该构造函数所创建的所有实例的基引用(base reference)。可以把对象的基引用想像成一个自动创建的隐藏属性. 当访问对象的一个属性时, 首先查找对象本身, 找到则返回; 若不, 则查找基引用指向的对象的属性(如果还找不到实际上还会沿着原型链向上查找, 直至到根).原创 2017-08-15 19:57:30 · 1840 阅读 · 0 评论 -
类数组转数组方法详解
类数组转数组:Array.prototype.slice.call(arguments)方法详解:我们知道,Array.prototype.slice.call(arguments)能将具有length属性的对象转成数组,除了IE下的节点集合(因为ie下的dom对象是以com对象的形式实现的,js对象与com对象不能进行转换)如:var a={length:2,0:'first',原创 2016-04-21 16:52:46 · 2759 阅读 · 0 评论 -
Vue-resource如何实现表单提交以及file图片上传的压缩
总括:个人在项目开发中所遇到的问题总结,主要介绍两个知识点:①vue-resource如何实现表单提交。②file图片上传如何压缩,减少上传压力vue中的代码let that = this // 上传图片获取url console.log('没处理时的大小:' + this.headerImage100.length) this.$server.uplo原创 2017-09-12 12:33:32 · 5969 阅读 · 0 评论 -
JS数组去重
1.利用ES5中数组API----filter(简单)function replace(arr){ return arr.filter(function(item,index,self){ return self.indexOf(item) === index;})}2.先使用sort排序,后用splice去重。function replace(arr){ arr.原创 2017-08-14 21:06:59 · 293 阅读 · 0 评论 -
js for循环输出i为同一值的问题
1、最近开发中遇到一个问题,为什么每次输出都是5,而不是点击每个p,就alert出对应的1,2,3,4,5。代码如下: 闭包演示 1 2 3 4 5 window.onload=function() { var ps = documen原创 2016-02-22 14:31:37 · 12075 阅读 · 0 评论 -
JS三目运算(三元运算)
1、什么是三目运算:(布尔表达式 ? 值0:值1;)5>3?alert('5大'):alert('3大');即 if(5>3){alert('5大')}else{alert('3大')};注意:三目运算和if(){}else{}的区别是三目运算有返回值,例如:var max = a>b?a:b;2、多条件的三目运算怎么写:实例:根据学生成绩判定ABCD四个原创 2016-03-08 15:10:11 · 15448 阅读 · 0 评论 -
Cookie与Session的区别
本文分别对Cookie与Session做一个介绍和总结,并分别对两个知识点进行对比分析,让大家对Cookie和Session有一个更深入的了解,并对自己的开发工作中灵活运用带来启示。一、Cookie机制 Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器。IETF RFC 2965 HTTP StateManagement Me原创 2016-04-18 15:29:46 · 4365 阅读 · 1 评论 -
JS正则表达式详解
一、什么是正则表达式?1.定义: 正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符原创 2016-05-12 14:23:31 · 2210 阅读 · 0 评论 -
regExp的test方法取得的值变化的原因及处理办法
1、JavaScript 正则表达式对象RegExp的test方法,用于检测一个字符串是否匹配某个模式。字面量定义RegExp对象:var re = /pattern/attributes,其中attributes可以是g,i,m; 阅读以下程序: var str = 'abc123'; var re = /^abc/g ;var result1 = re.test(s原创 2016-01-24 22:48:25 · 1449 阅读 · 0 评论 -
js页面跳转的实现
一、总结可以实现页面跳转和刷新的方法:1、使用超链接,如:2、表单提交,如3、js实现,如1.window.location.href方式 window.location.href="url"; 2.window.navigate方式跳转 window.navigate("url");3原创 2016-01-13 22:43:29 · 748 阅读 · 0 评论 -
js中删除数组中的某一元素(无下标时)
1、使用filter数组去重;var arr1 = [1,2,3,4,5,6];//待操作数组var j = 2;//待删除元素var noRepeat = function(arr1,arr2){return arr1.flter(function(e){return arr2.indexOf(e);})};var arr2 = [];arr2.pus原创 2016-01-14 11:27:23 · 2401 阅读 · 0 评论 -
js数字舍入误差以及解决方法
1、起因:返回结果是true。2、原因:计算机的二进制实现和位数限制有些数无法有限表示。就像一些无理数不能有限表示,如 圆周率 3.1415926...,1.3333... 等。JS 遵循 IEEE 754 规范,采用双精度存储(double precision),占用 64 bit。3、解决方法(1)toFixed(),存在兼容性(chrome)(2)比较原创 2016-03-02 16:51:34 · 3850 阅读 · 0 评论 -
HTML5新特性之工作线程Web Worker
一、Web Worker的起因:众所周知,在HTML5推出之前的 JavaScript 的运行都是以单线程的方式工作的,虽然有多种方式实现了对多线程的模拟(例如:JavaScript 中的 setinterval 方法,setTimeout 方法等),但是在本质上程序的运行仍然是由 JavaScript 引擎以单线程调度的方式进行的。单线程的不足就是效率低下。HTML5 中引入工作线程原创 2016-04-13 17:11:44 · 766 阅读 · 0 评论 -
JS如何区分Object与Aarry的六种方法
一、经常遇见的问题:JS中判断一个对象的类型时,通常使用typeof,这时候问题就来了,因为typeof()辨别数组的时候返回的是object,所以JS中判断一个对象是不是数组需要一些特殊的处理方式,下面将介绍个人总结的五种处理方法。二、开门见山开发中要判断一个对象是不是数组,推荐使用下面这个函数:function isArray(obj){ if(Array.原创 2016-04-14 15:26:13 · 14341 阅读 · 0 评论 -
浏览器的跨域问题以及解决方案
1、为什么会有跨域问题的存在? JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象,即同源政策。2、什么是同源? 1995年,同源政策由 Netscape 公司引入浏览器。目前,所有浏览器都实行这个政策。 最初,它的含义是指,A网页设置的 Cookie,B网页不能打开,除非这两个网页"同源"。所谓"同源"指的是"三个相同"。 (1)、协议相同原创 2016-04-10 22:37:40 · 48178 阅读 · 1 评论 -
HTML5新特性之WebSocket
一、WebSocket简介: 谈到Web实时推送,就不得不说WebSocket。在WebSocket出现之前,很多网站为了实现实时推送技术,通常采用的方案是轮询(Polling)和Comet技术,Comet又可细分为两种实现方式,一种是长轮询机制,一种称为流技术,这两种方式实际上是对轮询技术的改进,这些方案带来很明显的缺点,需要由浏览器对服务器发出HTTP request,大量原创 2016-04-15 15:35:39 · 7851 阅读 · 1 评论 -
HTML5新特性之离线缓存技术
一、离线缓存的起因:HTML5之前的网页,都是无连接,必须联网才能访问,这其实也是web的特色,这其实对于PC是时代问题并不大,但到了移动互联网时代,设备终端位置不再固定,依赖无线信号,网络的可靠性变得降低,比如坐在火车上,过了一个隧道(15分钟),便无法访问网站,这对于web的伤害很大。而离线web应用允许我们在脱机时与网站进行交互。二、什么是离线Web应程序?为什么要开发离原创 2016-04-12 16:34:32 · 22133 阅读 · 6 评论 -
前端知识总结
1、Javascript中null和undefined的区别总所周知:null == undefined //true null !== undefined //falsenull:是JavaScript的关键字,用于描述“空值”,对其执行typeof操作返回“object”,即为一个特殊的对象值,可以表示数字、字符串和对象是“无值”。null参与数值运算时其值会自原创 2016-04-22 12:03:06 · 828 阅读 · 0 评论