JS高级程序设计
十元两元
这个作者很懒,什么都没留下…
展开
-
JavaScript高级程序设计学习19_E4X
1、E4X的类型XML:XML结构中的任何一个独立的部分XMLList:XML对象的集合Namespace:命名空间前缀和命名空间URL之间的映射QName:由内部名称和命名空间URL组成的一个限定名1.1XML类型var x = new XML("<employee position=\"Software Engineer\"><name>Nic...原创 2018-12-10 17:18:31 · 302 阅读 · 1 评论 -
JavaScript高级程序设计学习18_javascript与XML
1、跨浏览器处理XML解析XMLfunction parseXml(xml){ let xmldom = null; if(typeof DOMParser != "undefined"){ xmldom = (new DOMParser()).parseFromString(xml,"text/xml"); let errors = xmldom.getElem...原创 2018-12-10 15:49:43 · 118 阅读 · 0 评论 -
JavaScript高级程序设计学习22_高级技巧
1、作用域安全的构造函数关于作用域安全的构造函数的贴心提示。实现这个模式后,你就锁定了可以调用构造函数的环境。如果你使用构造函数窃取模式的继承且不使用原型链,那么这个继承很可能被破坏。function Polygon(sides){ if (this instanceof Polygon) { this.sides = sides; this.getArea = fu...原创 2018-12-14 11:53:41 · 162 阅读 · 0 评论 -
JavaScript高级程序设计学习13_事件
1、事件对象兼容 DOM 的浏览器会将一个 event 对象传入到事件处理程序中。无论指定事件处理程序时使用什么方法( DOM0 级或 DOM2 级),都会传入 event 对象。触发的事件类型不一样,可用的属性和方法也不一样。不过,所有事件都会有下表列出的成员。虽然 DOM 和 IE 中的 event 对象不同,但基于它们之间的相似性依旧可以拿出跨浏览器的方案来。IE 中 event...原创 2018-11-08 15:54:53 · 141 阅读 · 0 评论 -
JavaScript高级程序设计学习11_DOM扩展
1、HTML51、classList属性在操作类名时,需要通过className属性添加、删除和替换。因为className中是一个字符串,即使只修改一部分,也必须设置整个字符串。add(value):将给定的字符串添加到列表中。如果存在,就不添加了contains(value):判断是否存在给定的值。返回true或falseremove(value):从列表中删除给定的字符串...原创 2018-11-03 17:46:40 · 153 阅读 · 0 评论 -
JavaScript高级程序设计学习10_DOM
1、node类型DOM1级定义了一个Node接口,javascript中得所有节点都继承Node类型,因此所有节点都共享着相同的属性和方法。每个节点都有一个nodeType属性,用于表明节点的类型。它由下列12个数值常量表示,任何节点类型必居其一:Node.ELEMENT_NODE(1);Node.ATTRIBUTE_NODE(2);Node.TEXT_NODE(3);Node.C...原创 2018-10-27 12:39:41 · 108 阅读 · 0 评论 -
JavaScript高级程序设计学习8_BOM
1、窗口位置IE、Safari、Opera和Chrome都提供了screenLeft和screenTop属性,Firefox则提供了screenX和screenY属性,Safari和Chrome同时也支持这两个属性,使用下列代码可ku跨浏览器取浏览器窗口的位置:let leftPos = (typeof window.screenLeft == 'number')? window.scr...原创 2018-10-21 12:05:33 · 204 阅读 · 0 评论 -
JavaScript高级程序设计学习7_函数表达式_递归
递归函数是在一个函数通过名字调用自身的情况下构成的,如下:function factorial(num){ if (num <= 1){ return 1; } else { return num * factorial(num-1); }}这是一个经典的递归阶乘函数。虽然这个函数表面看来没什么问题,但下面的代码却可能导致它出错。var a...原创 2018-10-08 15:52:35 · 145 阅读 · 0 评论 -
JavaScript高级程序设计学习5_引用类型_数组Array
1、检测数组ECMScript5新增了Array.isArray()方法,最终目的确定某值是不是数组,而不管它在哪个全局执行环境中创建的if(Array.isArray(value)){ //doSomething}可用instanceof操作符判断某值是不是引用实例,语法如下:result = varible instanceof Object/Array/RegE...原创 2018-08-19 20:15:28 · 180 阅读 · 0 评论 -
JavaScript高级程序设计学习5_引用类型_基本包装类型
NumberNumber是与数字对应de的引用类型,要创建Number,可以调用Number构造函数向其中传入相应的数值。其中有两个方法:1、toFixed() 按照指定的小数位返回数值的字符串表示,如下:let num = 10;alert(num.toFixd(2));//"10.00"2、toPrecision()与toFixed()一样接受一个参数,而且该参数同样也是指...原创 2018-09-15 15:41:14 · 121 阅读 · 0 评论 -
JavaScript高级程序设计学习4_传递参数
ECMAScript中所有的函数的参数都是按值传递的。也就是说,把函数外部的值复制给函数内部的参数,就和把值从一个变量复制到另外一个变量一样。基本类型值的传递如同基本类型变量的复制一样,如下例:let num1 = 5;let num2 = num1;alert(num2);//5引用类型值的传递,如同引用类型变量的复制一样,如下例:let obj1 = new Object(...原创 2018-08-19 10:04:43 · 208 阅读 · 0 评论 -
JavaScript高级程序设计学习24_性能
首先,由于JS是一种解释型语言,执行速度要比编译型语言慢得多。(注:,Chrome是第一款内置优化引擎,将JS编译成本地代码的浏览器,其它浏览器也陆续实现了JS的编译过程。但是,即使到了编译执行JS的新阶段,仍然会存在低效率的代码。)以下总结一些可以改进代码的整体性能的方法。1.注意作用域记住一点,随着作用域中的作用域数量的增加,访问当前作用域以外的变量的时间也在增加。所以,访问全局变量总...原创 2018-12-17 11:18:24 · 148 阅读 · 0 评论