- 博客(20)
- 收藏
- 关注
转载 新变量声明let
很多语言中都有块级作用域,但js没有,它使用var声明变量,以function来划分作用域,大括号“{}” 却限定不了var的作用域。用var声明的变量具有变量提升(declaration hoisting)的效果。ES6里增加了一个let,可以在{}, if, for里声明。用法同var,但作用域限定在块级,let声明的变量不存在变量提升。 示例1: 块级作用域 if
2017-08-29 22:06:25 976
转载 二十位活跃在github上的国内技术大牛
文列举了20位在Github上非常活跃的国内大牛,看看其中是不是很多熟悉的面孔?1. lifesinger(玉伯)Github主页: https://github.com/lifesinger微博:@ 玉伯也叫射雕玉伯(王保平),淘宝前端类库 KISSY、前端模块化开发框架SeaJS、前端基础类库Arale的创始人。2003-2006
2017-08-29 21:16:40 511
原创 封装cookie
一、设置cookie function setCookie( key ,value , timer ){ var oDate = new Date(); oDate.setDate( oDate.getDate() + timer ); document.cookie = key + "=" + value + ';expires=' + oDate.toGMTStri
2017-08-24 10:12:37 221
原创 js实现五种排序
一、冒泡排序思想:比较两个相邻的项,如果前者比后者大,则交换 function bubbleSort(arr){ var length = arr.length, temp; for (var i=0;i<length;i++ ) { for (var j=0;j<length-1-i;j++)//减i是除去不交换的情况 { if (a
2017-08-24 09:59:49 826
原创 js实现二分搜索的两种方法
一、递归方法 function binarySearch(arr,item,start,end){ var length = arr.length, start = start || 0, end = end || length -1, mid = Math.floor((start+end)/2); if (arr[mid] === item) {
2017-08-24 09:15:30 308
转载 闭包--整理
(文章说明:关于对闭包的解释,有人总结的很好,我就直接转啦;其余部分为自己整理)一、什么是闭包?JavaScript中所有的function都是一个闭包。不过一般来说,嵌套的function所产生的闭包更为强大,也是大部分时候我们所谓的“闭包”。原理:所谓“闭包”,就是在构造函数体内定义另外的函数作为目标对象的方法函数,而这个对象的方法函数反过来引用外层函数体中的临时变量。这使得只
2017-08-23 22:04:50 317
转载 JavaScript中_proto_和prototype的区别和关系?
_proto_(隐式原型)与prototype(显式原型)1.是什么显式原型 explicit prototype property:每一个函数在创建之后都会拥有一个名为prototype的属性,这个属性指向函数的原型对象。Note:通过Function.prototype.bind方法构造出来的函数是个例外,它没有prototype属性。NOTE Function o
2017-08-23 16:58:02 369
转载 HTTP缓存详解
文章分为三部分,我们先来统一梳理一下一个缓存请求的过程,然后从请求头以及响应头缓存相关字段进行解析,最后总结一下前端需要了解的对于缓存的操作一 . 缓存过程:当一个用户发起一个静态资源请求的时候,浏览器会通过以下几步来获取资源当第一次发送请求,http返回200的状态码,如果没有关闭缓存请求的话(没标明不使用缓存,下述)则会在返回头中返回包含last-M
2017-08-23 16:28:06 191
转载 HTTP详解
什么是http协议:引用百度百科的话说来就是:http协议其实就是超文本传输协议,超文本传输协议 (HTTP-Hypertext transfer protocol) 是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。目前我们使用的http版本是http/1.1其前身是http/1.0。关于两个版本不同,下面会不时提及。在整个iso传输
2017-08-23 16:26:18 343
转载 JavaScript高级选择器querySelector和querySelectorAll
querySelector 和 querySelectorAll 方法是 W3C Selectors API 规范中定义的。他们的作用是根据 CSS 选择器规范,便捷定位文档中指定元素。目前几乎主流浏览器均支持了他们。包括 IE8(含) 以上版本、 Firefox、 Chrome、Safari、Opera。querySelector和querySelectorAll的参数须
2017-08-23 15:40:05 489
转载 JS异步编程的方式
一、回调函数这是异步编程最基本的方法。假定有两个函数f1和f2,后者等待前者的执行结果。 f1(); f2();如果f1是一个很耗时的任务,可以考虑改写f1,把f2写成f1的回调函数。 function f1(callback){ setTimeout(function () { // f1的任务代码
2017-08-22 22:13:50 253
转载 JS延迟加载的方式
延迟加载JavaScript,也就是页面加载完成之后再加载javascript,也叫on demand(按需)加载,一般有一下几个方法:1. 动态创建DOM方式head append script tag[javascript] view plain copywindow.onload = function () { set
2017-08-22 15:35:46 405
转载 HTML 5离线Web应用(整理)
一、开发支持离线Web 应用的目的:随着互联网的发展,用户提交的数据渐渐成为互联网的主流。那么在开发支持离线的 Web 应用时,就不能仅仅满足于静态页面的展现,还必需考虑如何让用户在离线状态下也可以操作数据。离线状态时,把数据存储在本地;在线以后,再把数据同步到服务器上。二、在开发支持离线的 Web 应用程序时,开发者通常需要使用以下三个方面的功能:1.离线资源缓存:需要一种方式来指明
2017-08-21 21:43:06 2442
转载 当你在浏览器地址栏输入一个URL后回车,浏览器做了什么?
以下是一个大概流程:1. 浏览器向DNS服务器查找输入URL对应的IP地址。2. DNS服务器返回网站的IP地址。3. 浏览器根据IP地址与目标web服务器在80端口上建立TCP连接4. 浏览器获取请求页面的html代码。5. 浏览器在显示窗口内渲染HTML。6. 窗口关闭时,浏览器终止与服务器的连接。这其中最有趣的是第1步和第2步(域名解析)。我们输入的网址(域名)是IP地址的一
2017-08-21 16:54:16 10016
转载 JS中return false,return,return true的用法及区别
首先return作为返回关键字,他有以下两种返回方式1.返回控制与函数结果语法为:return 表达式; 语句结束函数执行,返回调用函数,而且把表达式的值作为函数的结果2.返回控制无函数结果语法为:return;在大多数情况下,为事件处理函数返回false,可以防止默认的事件行为.例如,默认情况下点击一个元素,页面会跳转到该元素href属性指定的页. 例如:链接
2017-08-17 10:53:36 966
转载 JS实现DOM树的遍历
二叉 DOM 树的遍历[javascript] view plain copyfunction Tree() { var Node = function(key){ this.key = key; this.left = null;
2017-08-10 21:43:05 3903
转载 Array.prototype.slice.call()方法详解
在很多时候经常看到Array.prototype.slice.call()方法,比如Array.prototype.slice.call(arguments),下面讲一下其原理:1、基本讲解1.在JS里Array是一个类 slice是此类里的一个方法 ,那么使用此方法应该Array.prototype.slice这么去用 slice从字面上的意思很容易理解就是截取(当然你不
2017-08-10 16:38:07 260
原创 找出数组的重复元素
法一:将一个数组作为另一个数组的下标 function duplicates(arr){ //result数组用来存放结果,count数组用来存放arr中每个元素的个数 var result = [],count = []; //遍历arr,如果以arr中元素为下标的count元素已存在,则该count元素加1,否则设置为1 for (var i=0;i<arr.l
2017-08-10 15:31:44 431
转载 原生js实现数组去重的5种方法
遍历数组法(√)最简单的去重方法,实现思路:新建一新数组,遍历传入数组,值不在新数组就加入该新数组中;注意点:判断值是否在在数组的方法“indexOf” 是ECMAScript5方法,IE8以下的不支持,需要多写一些兼容低版本浏览器代码,代码如下:function unique1(array){ var n=[];//一个新的临时数组 for(var i=0;iarra
2017-08-10 15:17:33 1832
原创 ES6中集合的应用
1.实现并集、交集、差集 var set1 = new Set([1,2,3]); var set2 = new Set([2,3,4,5,6]); let union = new Set([...set1,...set2]); let intersect = new Set([...set1].filter(x => set2.has(x))); let diff
2017-08-09 11:05:21 174
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人