![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javascript
文章平均质量分 66
guo-snowstorm
在校学生
展开
-
Event loop
为什么要了解Event loop?理解Event loop,对于浏览器(或者nodejs)处理事件的过程会有更透彻的理解,使用promise,nextTick, setImmediate,setTimeout等会更清晰。本文主要是基于浏览器端来理解的。有部分术语还是采用英文,看上去感觉比中文好理解参考自:Tasks, microtasks, queues and schedules转载 2016-08-19 10:32:41 · 676 阅读 · 0 评论 -
Javascript中bind、call、apply函数用法
转自:http://developer.51cto.com/art/201503/466978.htmjs 里函数调用有 4 种模式:方法调用、正常函数调用、构造器函数调用、apply/call 调用。同时,无论哪种函数调用除了你声明时定义的形参外,还会自动添加 2 个形参,分别是 this 和arguments。arguments 不涉及到上述 3 个函数,所以这里只转载 2016-04-24 12:12:59 · 390 阅读 · 0 评论 -
javascript 中bind()的使用
转载:https://segmentfault.com/a/1190000002662251在讨论bind()方法之前我们先来看一道题目:var altwrite = document.write;altwrite("hello");//1.以上代码有什么问题//2.正确操作是怎样的//3.bind()方法怎么实现对于上面这道题目,答案并不是太难,主要考点就是th转载 2016-04-24 12:11:10 · 368 阅读 · 0 评论 -
JavaScript中Object.defineProperty()相关
先看一断代码:function foo(){}Object.defineProperty(foo.prototype,"z",{get:function(){return 1;}});var obj = new foo();obj.z; //1obj.z = 10; obj.z; //still 1;Object.defineProperty(foo.prototype,'z'原创 2016-04-24 11:20:30 · 359 阅读 · 0 评论 -
JavaScript严格模式详解
转载自:http://www.xuanfengge.com/4637.html一、概述除了正常运行模式,ECMAscript 5添加了第二种运行模式:“严格模式”(strict mode)。顾名思义,这种模式使得Javascript在更严格的条件下运行。设立”严格模式”的目的,主要有以下几个:- 消除Javascript语法的一些不合理、不严谨之处,转载 2016-04-24 11:00:40 · 438 阅读 · 0 评论 -
关于 JavaScript中的 Object.create()
1、Object.create()用于创建一个对象,它可以接受一个参数,这个参数会成为创建对象的原型对象。2、var obj = Object.create();和obj ={} ; 是等价的。3、var obj= Object.create(null);创建一个对象obj,这个obj的原型就是null,但是此时,obj的原型链上就没有Object.prototype了。4、Obje原创 2016-04-24 10:53:08 · 384 阅读 · 0 评论 -
Object.prototype.toString.call() 区分对象类型
转自:http://www.veryhuo.com/a/view/52778.html在 JavaScript 里使用 typeof 来判断数据类型,只能区分基本类型,即 “number”,”string”,”undefined”,”boolean”,”object” 五种。对于数组、函数、对象来说,其关系错综复杂,使用 typeof 都会统一返回 “object” 字符串。要转载 2016-04-24 10:40:18 · 325 阅读 · 0 评论 -
JavaScript中的数据类型检测问题
在JavaScript中,数据的类型检测问题是一个非常常见的问题,现在总结一下,总的来说,有如下方法:typeof、instanceof、Object.prototype.toString、constructor。一、typeof这个方法是最基本的方法,可以满足一般的类型判断需要,用法如下:typeof 123 //"number"typeof NaN //"number"t原创 2016-04-24 10:38:45 · 495 阅读 · 0 评论 -
select的onchange事件问题
转自:http://blog.sina.com.cn/s/blog_5f7b8c2c0100l7yf.html一、onChange事件只有在值改变时才可触发,所以必须在每一次选择时(尤其第一次)保证选择的值是改变的!所以 selected >个人 //在这要选定一个默认的值 "selected" 单位 这样在选择第二个时,值就转载 2016-04-23 15:25:28 · 2760 阅读 · 0 评论 -
JavaScript中的onchange、oninput以及onpropertychange
一、onchange事件属性onchange事件可以用于元素和元素,表示当内容改变并且失去焦点后触发,onchange也可以用于元素,当改变选择的项时会触发此事件。但是要注意,在js代码中改变input的value值或者改变框中的值,或者改变的选中项(这个可以通过给select对象的selectedIndex属性赋值来实现),这些情况均不能触发onchange事件。那该怎么办呢,其实我们可原创 2016-04-23 15:23:45 · 1148 阅读 · 1 评论 -
JavaScript中的offsetParent属性
转自:http://www.cnblogs.com/jhxk/articles/1669680.html offsetParent属性返回一个对象的引用,这个对象是距离调用offsetParent的元素最近的(在包含层次中最靠近的),并且是已进行过CSS定位的容器元素。 如果这个容器元素未进行CSS定位, 则offsetParent属性的取值为根元素(在标准兼容模式下为htm转载 2016-04-23 11:38:18 · 402 阅读 · 0 评论 -
JavaScript Date.getTime() 函数详解
转自:http://www.365mini.com/page/javascript-date-gettime.htmgetTime()函数用于使用当地时间返回当前Date对象中的时间值。该时间值表示从1970年1月1日午夜开始,到当前Date对象时,所经过的毫秒数,以格林威治时间为准。该函数属于Date对象,所有主流浏览器均支持该函数。语法date.getTime(转载 2016-04-23 11:14:53 · 8655 阅读 · 1 评论 -
JavaScript函数的中实参个数和形参个数的获取
在JavaScript函数调用时,可以判断实参的个数是否和形参的个数相等,进而执行一些动作。其中:1、形参个数: arguments.callee.length 或者 函数名.length ,arguments.callee就是取得函数的名字。2、实参个数: arguments.lengthfunction fun(a,b,c,d){ if( arguments.c原创 2016-04-24 13:32:07 · 7245 阅读 · 0 评论 -
给事件响应函数传递参数
转自:http://www.jb51.net/article/44146.htm这篇文章主要介绍了给事件响应函数传参数的四种方式。需要的朋友可以过来参考下,希望对大家有所帮助如何给事件handler传参数?在刚刚接触Javascript的时候,由于对闭包理解不深刻,常常纠结于该问题。在讨论群里也经常碰到这样的问题,如下复制代码 代码如下:转载 2016-05-20 12:14:37 · 1047 阅读 · 0 评论 -
ES6块级作用域及新变量声明(let)
很多语言中都有块级作用域,但JS没有,它使用var声明变量,以function来划分作用域,大括号“{}” 却限定不了var的作用域。用var声明的变量具有变量提升(declaration hoisting)的效果。ES6里增加了一个let,可以在{}, if, for里声明。用法同var,但作用域限定在块级,let声明的变量不存在变量提升。 示例1: 块级作用域 if转载 2016-06-07 18:18:21 · 937 阅读 · 0 评论 -
JavaScript 运行机制详解
原文链接:http://www.ruanyifeng.com/blog/2014/10/event-loop.html一、为什么JavaScript是单线程?JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊。JavaScript的单线程,与它的用途有关。作为浏览器脚本语转载 2016-03-22 12:05:37 · 1765 阅读 · 1 评论 -
自定义promise
/* Promise */function Promise() { this.queues = []; this.fails = []; this.progress = []; this.nextVal = null; this.nextErr = null;} Promise.prototype.then = function ( onFulfilled, onRej转载 2016-08-18 21:59:30 · 1297 阅读 · 0 评论 -
一个柯里化函数
function curryIt(fn) { var n = fn.length; //声明一个数组args var args = []; //返回一个匿名函数 return function(arg){ //将curryIt后面括号中的参数放入数组 args.push(arg); //如果args中原创 2016-08-01 22:49:06 · 402 阅读 · 0 评论 -
JavaScript 删除数组的某些元素的问题
使用splice()方法删除数组中的某一项时,会改变数组的长度值,则在删除下一项的时候,如果原本下一项正好是需要删除的项,则会漏掉此项,解决方法是,删除完一项后使遍历变量减一,即可:$scope.persons=[ {name:"a",age:"0"}, {name:"b",age:"1"}, {name:"c",age:"2"}, {name:原创 2016-06-19 15:56:16 · 758 阅读 · 0 评论 -
JavaScript中回调函数的上下文问题
JavaScript支持函数作为参数传递,回调函数变量指向的函数对象都未与任何上下文绑定,所有未与明确上下文绑定的变量都是自由变量,浏览器中所有自由变量的上下文都是window对象 !!可以利用call()或apply()给它指定特定的上下文。原创 2016-06-04 11:25:46 · 1147 阅读 · 0 评论 -
javascript encodeURI和encodeURIComponent的比较
背景 encodeURI 和 encodeURIComponent都是ECMA-262标准中定义的函数,所有兼容这个标准的语言(如JavaScript, ActionScript)都会实现这两个函数。它们都是用来对URI (RFC-2396)字符串进行编码的全局函数,但是它们的处理方式和使用场景有所不同。为了解释它们的不同,我们首先需要理解RFC-2396中对于URI中的字符分类保留字转载 2016-06-04 09:27:21 · 346 阅读 · 0 评论 -
js判断当前浏览器是否为IE
下面第三种亲测可用第一种:复制代码 代码如下:if(window.addEventListener){ alert("not ie"); }else if(window.attachEvent){ alert("is ie"); }else{ alert("这种情况发生在不支持DHTML的老版本浏览器(现在一般都支持)") }第二种:转载 2016-06-04 09:07:29 · 8506 阅读 · 1 评论 -
JavaScript操作cookie
从事web开发也有些日子了,cookie 是个啥差不多能说明白,可是实际自己一上手操作就是得去搜索(你们懂的),结果被鄙视了...所以就写一篇博文做为自己的学习笔记,嘿嘿,博客的好处在此体现出来了。 什么是 Cookie “cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 JavaScrip转载 2016-06-03 23:11:20 · 338 阅读 · 0 评论 -
一个同学的ajax学习经验,值得借鉴
hey,guys!今天我们一起讨论下ajax吧!此文只适合有一定ajax基础,但还是模糊状态的同志,当然高手也可以略过~~~一、概念Ajax(Asynchronous Javascript + XML(异步JavaScript和XML )) 二、效果实现无刷新效果,向后台异步的取数据(不是只有AJAX才能实现这样的效果的哦,如img , script标签中的转载 2016-06-03 22:57:50 · 625 阅读 · 0 评论 -
url中的#、?、&
1. # 10年9月,twitter改版。一个显著变化,就是URL加入了"#!"符号。比如,改版前的用户主页网址为http://twitter.com/username改版后,就变成了http://twitter.com/#!/username 这是主流网站第一次将"#"大规模用于重要URL中。这表明井号(Hash)的作用正在被重新认识。本文根据HttpWatch的文章,整理与转载 2016-06-03 21:49:54 · 412 阅读 · 0 评论 -
构造函数返回值问题
/** 关于构造函数的返回值; 原本以为无论设置返回的东西只返回this, 也就是这个构造对象; return []; 返回此数组 return {}; 返回此对象 return function; 返回此函数 return 1; 返回this; return 'a';转载 2016-06-03 21:32:34 · 732 阅读 · 0 评论 -
javascript中 string的charAt()和charCodeAt()方法
charAt()方法和charCodeAt()方法用于选取字符串中某一位置上的单个字符。对于检查用户输入的有效性,这两个方法也是非常有用的.一、charAt()方法具有一个参数:即所选取字符在字符串中的位置。charAt()方法的返回值就是该位置上的字符。字符串中字符的索引位置从0开始,因此,第一个字符的索引是0,第二个字符的索引是1,依此类推。二、charCodeAt()方法与cha原创 2016-04-23 11:09:24 · 3665 阅读 · 0 评论 -
盘点淘宝、腾讯、百度内部使用的JavaScript库
提到JavaScript库,相信很多读者首先就会想到一系列著名的JavaScript库,例如jQuery、Dojo、YUI、Prototype、ExtJS、Google Closure等。这些都是由国外的组织或人员主持开发的,并且大都是开源项目,在中国大陆也受到了开发人员的普遍欢迎。其实,在国内也存在着一些比较优秀的前端开发框架,并且也大多是开源的,这里以腾讯、淘宝和百度使用的Ja原创 2016-04-23 10:40:32 · 5737 阅读 · 0 评论 -
offset、offsetLeft,offsetWidth和offsetHeight的使用方法
转自:http://www.cnblogs.com/rixinren/archive/2010/04/25/1720680.html假设 obj 为某个 HTML 控件。obj.offsetTop 指 obj 相对于版面或由 offsetParent 属性指定的父坐标的计算上侧位置,整型,单位像素。obj.offsetLeft 指 obj 相对于版面或由 offsetP转载 2016-04-23 10:35:12 · 1285 阅读 · 0 评论 -
JavaScript异步编程
原文链接1:http://kb.cnblogs.com/page/95090/原文链接2:http://kb.cnblogs.com/page/167474/这可能是个比较深的话题。何谓异步? 笼统地说,异步在javascript就是延时执行。严格来说,javascript中的异步编程能力都是由BOM与DOM提供的,如setTimeout,XMLHttpRequest,还转载 2016-03-27 10:44:37 · 513 阅读 · 0 评论 -
瀑布流布局的简单应用
原文链接:http://www.cnblogs.com/onlyfu/archive/2012/04/18/2456096.html瀑布流布局简单应用瀑布流布局,简单说,就是按列向下展开,每一列只有固定宽度,没有固定高度。用平时的布局方法肯定不能满足需求,如果仅仅是布局倒也好说,但又要读取数据的时候,就稍麻烦一点。简单说一下原理:利用绝对定位,将每一块数转载 2016-04-09 10:12:33 · 455 阅读 · 0 评论 -
js动态生成css代码
原文链接:http://www.cnblogs.com/2050/p/4029656.html 有时候我们需要利用js来动态生成页面上style标签中的css代码,方法很直接,就是直接创建一个style元素,然后设置style元素里面的css代码,最后把它插入到head元素中。但有些兼容性问题我们需要解决。首先在符合w3c标准的浏览器中我们只需要把要插入的css代码作为一个文本节点插入转载 2016-04-08 10:04:41 · 530 阅读 · 0 评论 -
如何判断一个JS对象是DOM对象
原文链接:http://www.cnblogs.com/2050/p/3870835.html如何判断一个js对象是否一个DOM对象我们在写js代码时有时需要判断某个对象是不是DOM对象,然后再进行后续的操作,这里我给出一种兼容各大浏览器,同时又算是比较稳妥的一种方法。要判断一个对象是否DOM对象,首先想到的无非就是它是否具有DOM对象的各种属性或特征,比如是否有nodeT转载 2016-04-07 18:10:01 · 2495 阅读 · 0 评论 -
国内UED收录
原文链接:http://blog.csdn.net/xianghongai/article/details/19548869腾讯腾讯CDC http://cdc.tencent.com/ CDC(Customer Research & User Experience Design Center)腾讯用户研究与体验设计中心腾讯ISD http://isd.tencent.com/腾讯转载 2016-03-22 11:54:29 · 386 阅读 · 0 评论 -
彻底禁止查看网页源代码
原文链接:http://blog.163.com/xie_yinfeng/blog/static/32404620200911101619604/屏蔽掉右键、复制、选择?完整代码 document.oncontextmenu=new Function("return false") document.onselectstart=new Function("retu转载 2016-03-22 11:18:49 · 20630 阅读 · 2 评论 -
IE和Firefox的Javascript兼容性总结
原文链接:http://www.jb51.net/article/28593.htm长久以来JavaScript兼容性一直是Web开发者的一个主要问题。在正式规范、事实标准以及各种实现之间的存在的差异让许多开发者日夜煎熬。为此,主要从以下几方面差异总结IE和Firefox的Javascript兼容性: 一、函数和方法差异; 二、样式访问和设置; 三、DOM转载 2016-03-22 11:09:22 · 305 阅读 · 0 评论 -
元素浮动之后文字会环绕而不是重合原因示例解答
原文链接:http://www.jb51.net/css/124333.html既然浮动元素脱离了文档流,为什么文字会环绕在浮动元素的周边而不是跟浮动元素重合呢?上网各种搜、各种问人终于找到了解决方法,感兴趣的朋友不要错过,最近在学习CSS,在浮动上遇到一问题:既然浮动元素脱离了文档流,为什么文字会环绕在浮动元素的周边而不是跟浮动元素重合呢? 这问题困扰了我整整一天,上网各转载 2016-03-22 10:51:04 · 2653 阅读 · 0 评论 -
clientWidth offsetWidth innerWidth 区别(窗口尺寸 汇总)
原文链接:http://www.cnblogs.com/youxin/archive/2012/09/21/2697514.htmlscrollWidth 是对象的实际内容的宽,不包边线宽度,会随对象中内容的多少改变(内容多了可能会改变对象的实际宽度)。 clientWidth 是对象可见的宽度,不包滚动条等边线,会随窗口的显示大小改变。 offsetWidth 是对象的可转载 2016-03-22 10:41:48 · 19911 阅读 · 0 评论 -
oninput,onpropertychange,onchange的用法和区别
原文链接:http://blog.csdn.net/sunlylorn/article/details/61233551、前言 由于工作需要,需实现一个类似于微博输入框的功能,在用户动态输入文字的时候,修改提示“您还可以输入XX字”。如下图所示: 因此,稍微研究了一下oninput,onpropertychange,onchange的区别和用法,以及onproperty转载 2016-04-01 11:09:56 · 633 阅读 · 0 评论 -
JavaScript中getBoundingClientRect()方法详解
getBoundingClientRect() 这个方法返回一个矩形对象,包含四个属性:left、top、right和bottom。分别表示元素各边与页面上边和左边的距离。var box=document.getElementById('box'); // 获取元素alert(box.getBoundingClientRect().top);原创 2016-04-01 10:57:53 · 545 阅读 · 0 评论