javascript高级程序设计解读
flyingpig2016
菲常六加一
展开
-
JavaScript基本类型和引用类型 — 第4.1讲
JavaScript基本类型和引用类型 >还是那句话,只有自己能给别人讲清楚地东西,只有自己做出来的东西,只有自己亲自写出的来的东西才是自己掌握的东西! —随笔!1:JavaScript变量分哪几种?他们各自的特点?JavaScript的变量分为两种不同类型的值:基本类型和引用类型;基本类型就是前面我们讨论的5中基本数据类型:undefined、null、boolean、number、st原创 2016-10-20 23:02:46 · 862 阅读 · 0 评论 -
JavaScript中的焦点事件 — 第13.4.2 节
焦点事件一:什么是焦点事件? 焦点事件会在页面元素失去或者获得焦点时触发。利用焦点事件并和document.hasFocus()、document.activeElement属性配合,可以知道用户在页面上的行踪。焦点事件分为6种: 1. blur:在元素失去焦点时触发。(不会冒泡);兼容所有浏览器。 2. DOMFocusIn:元素获取焦点时触发。和focus等价,(冒泡,opera支原创 2016-12-13 22:37:43 · 685 阅读 · 0 评论 -
理解JavaScript中参数传递的特性 —第3.7.1节
1:首先要明白ecmascript函数的参数特点?与大多数语言不一样的是,JavaScript的函数不介意传递多少个参数。 此话怎讲呢? 加入你的自定义函数只接受两个参数,但是,在调用这个参数的时候未必一定要传递两个参数,可以是0,1,2,3.....等任意个,而且解析器不会报错!2:但是,为什么呢?原理我也希望大家明白:ECMAScript中的参数内部是一个数组来表示的。函数接收的都原创 2016-10-18 23:20:29 · 435 阅读 · 0 评论 -
js中的获取事件 — 第5.3讲
一:时间标准? GMT:格林尼治所在地的标准时间,不准确,一个小时调一次。 UTC:世界统一时间,世界标准时间,国际协调时间。协调世界时是以原子时秒长为基础,2000万年相差一秒。现在基本都用UTC。 二:获取时间间隔? 1. ECMA5添加了Date.now()方法,获取当前日期和时间的毫秒数。 var start = Date.now(); for (var i = 0原创 2016-12-21 20:14:27 · 633 阅读 · 0 评论 -
浏览器支持的html5事件 — 第13.4.7节
浏览器支持的html5事件一:阻止鼠标右键的contextmenu事件? 用来显示上下文菜单,用来让开发人员取消默认的上下文菜单,而提供自定义的菜单。这个事件可以冒泡。 下面是一个自己制作的右键菜单,代码展示如下:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</ti原创 2016-12-17 11:06:11 · 636 阅读 · 0 评论 -
JavaScript中的设备事件 — 第13.4.8节
JavaScript中的设备事件一:检测屏幕旋转的角度:orientationchange 苹果公司为移动Safari浏览器中添加了orientationchange事件,用来检测屏幕的旋转状态,它对应的属性window.orientaion:它一共有三个状态:0:正常状态;-90:手机向右横屏;90:手机向左横屏。 不过我在安卓的魅族手机上和小米手机测试了也可以用到orientati原创 2016-12-17 23:21:48 · 703 阅读 · 0 评论 -
模拟事件的方法 — 第13.6讲
一:创建DOM事件的方法? 模拟事件的步骤:创建event对象,它接受四种参数: UIEvents : 一般的UI事件。其实鼠标和键盘事件都继承自UI事件,DOM3级中是UIEvent;MouseEvents:一般化的鼠标事件。DOM3级中的是MouseEvent;MutationEventents:检测DOM变动的事件。DOM3中是MutationEvent。HTMLEvents :一原创 2016-12-20 16:50:50 · 555 阅读 · 0 评论 -
js中的鼠标和滚轮事件 — 第13.4.3节
JavaScript中的鼠标和滚轮事件一:鼠标事件分类? DOM3级鼠标事件分为9种: 1. click:一般是鼠标左键按下或者回车键按下; 2. dbclick:在用户双击鼠标按钮的时候触发(一般左键); 3. mousedown:用户按下了任意鼠标按钮时触发; 4. mouseenter: 在鼠标从元素外部首次移到元素范围之内时触发。(不冒泡),在光标移动到后代元素上不会触原创 2016-12-15 13:08:53 · 1009 阅读 · 0 评论 -
javascript中事件的分类 — 第13.4.1讲
事件分类总结一:javascript中事件的分类 1.UI事件:当用户与页面上的元素交互时候触发; 2.焦点事件:当用户通过鼠标在页面上执行操作时触发; 3.滚轮事件:当用户使用鼠标滚轮时触发; 4.文本事件:当在文档中输入文本时触发; 5.键盘事件:当用户通过键盘在页面操作时触发; 6.合成事件:当为IME(input Method Editor,输入法编辑器)输入字符时触发;原创 2016-11-30 18:12:44 · 404 阅读 · 0 评论 -
js中的touch事件及gesture(手势)事件详解 — 第13.4.9节
一:touch事件分类? 1. touchstart:当手指触摸屏幕时触发。不管有多少个手指放在了屏幕上,只要再触摸一下屏幕就会触发。在此,我用小米的google浏览器做了一个实验,添加一个计数器,用来查看屏幕上手指触摸的次数,代码如下: window.onload = function(){ var i = 0; document.addEventListe原创 2016-12-19 19:59:11 · 19641 阅读 · 0 评论 -
Ajax原理-原生js的XMLHttpRequest对象意义
Ajax原理-原生js的XMLHttpRequest对象意义原创 2017-05-21 23:16:03 · 6959 阅读 · 0 评论 -
js工厂模式、构造函数以及他们创建对象的优缺点? — 第6.2.1节
工厂模式和构造函数的区别 学习JavaScript有一段时间了,但是随着工作的进展,我发现,JavaScript绝对不是写一下简单效果那么肤浅,是时候完全,透彻地理解他的精髓了。好了,让俺老猪带你装逼带你飞吧! 一:为什么使用工厂模式和构造函数? 虽然Object构造函数或者字面量(var person={})可以创建单个对象,但是,他有一个明显的缺点,那就是:重复造轮子,产生大量的重复性原创 2016-10-26 23:29:39 · 9074 阅读 · 1 评论 -
详解callee和caller, apply()和call()的用法 — 第5.5.4节
一:函数内部的对象:arguments和this 我们都知道js中arguments对象主要是保存函数的参数(如果不知道arguments,在有参数的函数中输出一下就知道了),但是这个对象还有一个属性为callee,它是一个指针,指向拥有这个arguments对象的函数。例如阶乘函数: function factorial(num){ if(num <= 1){原创 2016-12-24 21:55:37 · 1148 阅读 · 0 评论 -
深入理解prototype(原型对象)
对JavaScript中原型模式的理解一:什么是原型对象?有什么优点? 简单的来说,无论何时,我们创建的每一个函数都有一个prototype属性,这个属性是一个指针,指向一个对象,这个对象包含了通过调用该构造函数所创建的对象共享的属性和方法。其实我们平常的叫法就是指:prototype就是通过该构造函数创建的某个实例的原型对象,但是其实prototype是每个构造函数的属性而已,只能说万物皆原创 2016-11-05 22:29:07 · 28768 阅读 · 2 评论 -
js中typeof和instanceof的区别+必须熟记于心的JavaScript数据类型 — 第3.4 章
typeof和instanceof的区别 +JS数据类型 相信大家学习了,很多门编程语言,但是扪心自问一下,你真的很了解你所学的语言吗?对于写了这么长时间js的我来说,这是第一次能够静下心来,真正为了学习而学习的时候! 就拿JavaScript语言来说,它虽然是一门弱类型语言,但是,我认为,不管它是什么语言,至少在我们学习的时候,要清楚地记得,它的数据类型分哪几类,每一类又分为哪几种! 废话不原创 2016-10-22 20:05:00 · 636 阅读 · 0 评论 -
JavaScript中width的用法 — 第4.2.1节
with的用法with的意义虽然你肯了解,with的用法,但是你也许看了这个才明白它的意义: 1.JavaScript的执行环境理性总共有两种——全局和局部,但是还有其他的方法来延长作用域链。 2.这么说吧,with语句可以再作用域链的前端临时增加一个变量对象,该变量对象会在代码执行后被移除。 3.这样的语句有两种:with 和 try-catch. 现在我们来看看width语句的实例吧:v原创 2016-10-22 21:55:16 · 921 阅读 · 0 评论 -
keydown、keypress和textInput的用法 — 第13.4.4节
一:键盘事件的用法? “DOM3级事件”为键盘事件制定了规范,有3个键盘事件: 1. keydown:当用户按下任意键的时候触发。如果按住不放会重复触发; 2. keypress:当用户按下键盘上字符键时触发,如果按住不放会重复触发,另外按下esc键也会触发这个事件; 3. keyup:当用户释放键盘上的键的时候触发。当按下键盘上的字符键时,首先触发keydown事件,然后紧跟原创 2016-12-15 21:50:12 · 1333 阅读 · 0 评论 -
DOM中的event对象详解 — 第13.3.1节
理解事件对象 追根溯源事件对象,才发现自己会的微不足道! 在触发DOM的事件的时候,浏览器会默认产生一个event对象,这个对象包含了所有与该事件有关的信息,比如:鼠标点击页面的某个按钮会让事件对象中包含对象的节点、鼠标的位置….等信息。 * 一:对于直接在html里写入的事件,通过变量event来输出event对象:*<input type="button" value="按钮3" on原创 2016-11-28 23:54:02 · 857 阅读 · 0 评论 -
DOM中监听节点变化的事件(变动事件)的用法 — 第13.4.6节
DOM变动事件用法原创 2016-12-16 13:31:26 · 30284 阅读 · 0 评论 -
event对象的兼容性处理 — 第13.3讲
想过没有,你最最痛恨的ie全家却能提高你的编程能力! IE中的event对象和DOM中的event不同,要访问IE中的event对象取决于指定事件处理程序的方法。在使用DOM0级方法添加事件处理程序的时候,event对象作为window对象的一个属性存在。var btn1 = document.getElementById('btn1');btn1.onclick = function(e){原创 2016-11-29 18:33:02 · 1873 阅读 · 0 评论 -
js中contact、slice、splice、indexOf、lastIndexOf方法使用 —第5.2.6节
contact、slice、splice、indexOf方法使用一:contact方法作用? 注意:使用该方法的时候,它会创建一个当前数组的副本,然后将接受到的参数添加到该数组的末尾。var arr1 = ['bangbang','qiqi','yanniu','linlin'];//concat用法 ,合并多个数组var cont1 = arr1.concat('are friends',{原创 2016-10-24 00:02:44 · 6327 阅读 · 0 评论 -
js中every、filter、forEach、map和some迭代法 — 第5.2.8节
ECMAscript 5给数组定义了5个迭代法,每个方法都接收两个参数: 1:每一项运行的函数;2:运行该函数的作用域对象(可选); 1. every()和some()方法; every();对数组都运行里面的函数,如果每一项都符合,则返回true; some();如果符合一项就返回true;var number = [0,1,2,3,4,5,6,7];function test1(item原创 2016-10-24 23:23:00 · 748 阅读 · 0 评论 -
javascript中的UI事件 — 第13.4.1节
一:什么是UI事件? UI事件指的是那些不一定与用户操作有关的事件。这些事件在DOM规范出现之前,都是以其他形式存在的。在DOM规范中保留是为了向后兼容。ui事件有7种 1.DOMActivate:表示已经被用户操作过的元素。DOM3中被废弃。Firefox和chrome可以使用。 2. load: - 页面完全加载后再window上面触发; - 当所有框架都加载完毕时在框架上面触发;原创 2016-11-30 18:15:27 · 532 阅读 · 0 评论 -
用JavaScript操作cookie — 第23.3.1节
用JavaScript操作cookie一:用js操作cookie须知? JavaScript中操作cookie用的是BOM里面的document.cookie属性。根据cookie的(域、路径、失效时间和安全设置),所有cookie的字符串,一系列由分隔号隔开的明值对如下所示:name1=value1;name2=value2;name3=value3; 以上所有的名字和值都是经过URL编码原创 2016-11-09 00:05:09 · 486 阅读 · 0 评论 -
addEventListener()和attachEvent()跨浏览器的兼容性处理 — 第13.2.5节
为了保证处理事件能在大多数浏览器下一致的运行,只需关注冒泡阶段。第一个要创建的方法是addHandler(),它的职责是视情况分别使用DOM0级方法、DOM2级方法或IE方法来添加事件。第二个方法是removeHandler()方法,用于移除添加的事件。EventUtil创建方法和用法如下:<!DOCTYPE html><html lang="en"><head> <meta chars原创 2016-10-29 22:57:23 · 2066 阅读 · 0 评论 -
JavaScript中attachEvent()和detachEvent()使用方法 — 第13.2.4节
我们都知道,dom事件处理程序有两种类型:DOM0级和DOM2级,其中DOM0级在文档中调用onclick事件,这种方法比较繁琐,DOM2级使用addEventListener()和removeEventListener()两个方法处理事件,这种方法比较常见,但是,ie人家牛逼,IE中也有类似的两个方法:attachEvent()和detachEvent()。这两个方法接受相同的连个参数:事件处理程原创 2016-10-29 20:17:55 · 13066 阅读 · 1 评论 -
DOM0级和DOM2级事件处理程序的区别? — 第13.2.2节
一:什么是DOM0级事件处理程序? DOM0级方法指定的事件处理程序被认为是元素的方法,因此,这时候的事件处理程序是在元素的作用域中执行的;例如DOM0级绑定事件的方法:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body> <原创 2016-10-29 19:11:24 · 3440 阅读 · 0 评论 -
事件冒泡和事件捕获的含义? — 第13.1讲
该懂得一定要懂,该学的不能再拖,该行动的就是此刻!一:事件流的历史? 就像是在桌面上画了许多同心圆,当把手放在圆心上,那么你的手指指的不是一个圆,而是所有的圆。公司的浏览器开发团队在看待浏览器事件方面还是一致的,如果你单击了某个按钮,他们都认为,事件不仅仅发生在按钮上,甚至单击了整个页面。 JavaScript中事件流描述的是从页面中接收事件的顺序,但是有意思的是,IE和Netscape原创 2016-10-29 14:18:45 · 4053 阅读 · 0 评论 -
JavaScript中用sort方法进行二维数组排序 — 第5.2.5节
JavaScript中数组排序方法用到的最多的当然是封装好的sort()方法了 一:sort()方法怎么使用? sort方法并不像我们想的那么容易使用,不是单纯的arr.sort()就行了,需要我们定义里面的回调函数!因为sort()方法默认情况下按照升序排列数组项,sort()方法会调用toString()转型方法,然后比较得到的字符串,即使我们比较的是数字,他也会把数字转为字符串以后再排序。原创 2016-10-23 15:28:00 · 13329 阅读 · 0 评论 -
JS的数组转换字符串方法toString、toLocaleString、join和valueOf — 第5.2.1节
toString、toLocaleString、join和valueOf用法我们知道每个JavaScript对象都具有toLocaleString()、toString()和valueOf()方法。废话不多说,直接上代码,能应用最好不过了:var arr1 = ['bangbang',18,'programmer'];console.log(arr1.toString()); //ban原创 2016-10-23 15:07:10 · 6277 阅读 · 0 评论 -
JavaScript的继承方式——原型链
JavaScript中依靠原型链的继承方式开门见山,ECMAScript中实现继承主要是靠原型链来实现的。 什么是原型链呢? 其基本思想是利用原型,让一个引用类型继承另一个引用类型的属性和方法。根据上一节原型对象:我们知道,每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针。那么如果我们让原型对象等于另一个类型的实例,结果会怎样呢原创 2017-05-16 23:45:27 · 1448 阅读 · 0 评论