JavaScript高级程序设计
文章平均质量分 52
超高校级的观测者
这个作者很懒,什么都没留下…
展开
-
关于JavaScript的学习(二十)——JSON
第二十章JSON语法可以表示为以下三种类型:简单值:使用与javascript相同的语法,可以在JSON中表示字符串(”hello”)、数值(5)、布尔值和null。但是不支持undefined。对象:对象作为一种复杂的数据类型,表示的是一组无序的键值对。每个键值对的值可以是简单值,也可以是复杂数据类型的值。数组:数组也是一种复杂的数据类型,表示一种有序的值的列表,可以通过索引访...原创 2018-07-18 11:37:12 · 114 阅读 · 0 评论 -
关于JavaScript的学习(八)——BOM
第八章浏览器对象模型(BOM)以window对象为依托,表示浏览器窗口以及页面可见区域。同时window对象还是ECMAScript中的Global对象,因而所有全局变量和函数都是它的属性,且所有原生的构造函数及其他函数也都存在于它的命名空间下。BOM的组成部分:在使用框架时,每个框架都有自己的window对象以及所有原生构造函数及其他函数的副本。每个框架都保存在frames集合中,...原创 2018-07-12 17:06:06 · 128 阅读 · 0 评论 -
关于JavaScript的学习(九)——客户端检测
第九章客户端检测是JavaScript开发中最具有争议的一个话题。由于浏览器间存在差别,通常需要根据不同浏览器的能力分别编写不同的代码。有不少客户端检测方法,但下列是最经常使用的。能力检测在编写代码之前先检测特定浏览器的能力。例如,脚本在调用某个函数之前,可能要先检测该函数是否存在。这种检测方法将开发人员从考虑具体浏览器类型和版本中解放出来,让他们把注意力集中到相应的能力是否存在上。...原创 2018-07-13 09:39:28 · 141 阅读 · 0 评论 -
关于JavaScript的学习(二十一)——Ajax与Comet
由于Ajax内容非常庞大,本章只大概复习了一下Ajax。第二十一章 Ajax是无需刷新页面就能够从服务器取得数据的一种方式。关于Ajax,可以从以下几方面来总结一下。负责Ajax运作的核心对象是XMLHttpRequest(XHR)对象。XHR对象由微软最早在IE5中引入,用于通过JavaScript从服务器取得XML数据。在此之后,Firefox、Safari、C...原创 2018-07-19 10:34:42 · 198 阅读 · 0 评论 -
关于JavaScript的学习(十)——DOM
第十章 DOM是语言中立的API,用于访问和操作HTML和XML文档。DOM1级将HTML和XML文档形象地看作一个层次化的节点树,可以使用JavaScript来操作这个节点树,进而改变底层文档的外观和结构。 DOM 由各种节点构成,简要总结如下。最基本的节点类型是Node,用于抽象地表示文档中一个独立的部分;所有其他类型都继承自Node。Document类型表示整个文档,...原创 2018-07-13 17:36:15 · 106 阅读 · 0 评论 -
关于JavaScript的学习(十一)——DOM扩展
第十一章 虽然DOM为与XML及HTML文档交互制定了一系列核心API,但任然有几个规范对标准的DOM进行了扩展。这些扩展中有很多原来是浏览器专有的,但后来成为了事实标准,于是其他浏览器也都提供了相同的实现。其三个规范如下:Selectors API定义了两个方法,让开发人员能够基于CSS选择符从DOM中取得元素,这两个方法是querySelector()和querySelec...原创 2018-07-14 09:14:56 · 137 阅读 · 0 评论 -
关于JavaScript的学习(十二)——DOM2和DOM3
第十二章 DOM2级规范定义了一些模块,用于增强DOM1级。“DOM2级核心”为不同的DOM类型引入了一些与XML命名空间有关的方法。这些变化只在使用XML或XHTML文档时才有用;对于HTML文档没有实际意义。除了与XML命名空间有关方法外,“DOM2核心”还定义了以编程方式创建Document实例的方法,也支持了创建DocumentType对象。“DOM2级样式”模块主要针对操作...原创 2018-07-14 18:28:31 · 170 阅读 · 0 评论 -
关于JavaScript的学习(二十二)——高级技巧
第二十二章 JavaScript中的函数非常强大,因为它们是第一类对象。使用闭包和函数环境切换,还可以有很多使用函数的强大方法。可以创建作用域安全的构造函数,确保在缺少new操作符时调用构造函数不会改变错误的环境对象。可以使用惰性载入函数,将任何代码分支推迟到第一次调用函数的时候。函数绑定可以让你创建始终在指定环境中运行的函数,同时函数柯里化可以让你创建已经填了某些参数的函数。...原创 2018-07-20 15:28:15 · 421 阅读 · 0 评论 -
关于JavaScript的学习(十三)——事件
第十三章 事件是将JavaScript与网页联系在一起的主要方式。“DOM3级事件”规范和HTML5定义了常见的大多数事件。即使有规范定义了基本事件,但多数浏览器仍然在规范之外实现了自己的专有事件,从而为开发人员提供更多掌握用户交互的手段。有些专有事件与特定设备关联,例如移动Safari中的orientationchange事件就是特定关联ios设备的。 在使用事件时,需要考虑如下...原创 2018-07-15 16:58:31 · 222 阅读 · 0 评论 -
关于JavaScript的学习(十四)——表单脚本
第十四章 虽然HTML和Web应用自诞生以来已经发生了天翻地覆的变化,但Web表单相对却没有什么改变。使用JavaScript可以增强已有的表单字段,从而创造出新的功能,或者提升表单的易用性。为此,表单、表单字段都引入了相应的属性和方法,以便JavaScript使用。下面是本章介绍的几个概念:可以使用一些标准或非标准的方法选择文本框中的部分或部分文本。大多数浏览器都采用了Fire...原创 2018-07-15 17:04:48 · 137 阅读 · 0 评论 -
关于JavaScript的声明变量提升
首先 javascript 是一种弱类型、动态的、解释型的脚本语言。弱类型:类型检查不严格,偏向于容忍隐式类型转换。 强类型:类型检查严格,偏向于不容忍隐式类型转换。 动态类型:运行的时候执行类型检查。 静态类型:编译的时候就知道每个变量的类型。 解释型:程序不需要编译,程序在运行的时候才翻译成机器语言,每执行一次都要翻译一次,因此效率比较低,但是跨平台性好。 编译型:程序...转载 2018-09-13 17:29:46 · 159 阅读 · 0 评论 -
关于JavaScript的学习(七)——函数表达式
第七章在JavaScript编程中,函数表达式是一种非常有用的技术。使用函数表达式可以无须对函数命名,从而实现动态编程。匿名函数,也称为拉姆达函数,是一种使用JavaScript函数的强大方式。以下总结了函数表达式的特点:函数表达式不同于函数声明。函数声明要求有名字,但函数表达式不需要。没有名字的函数表- 达式也叫作匿名函数;在无法确定如何引用函数的情况下,递归函数就会变得比较复杂;...原创 2018-07-12 10:32:38 · 128 阅读 · 0 评论 -
关于JavaScript的学习(十九)——E4X
第十九章 E4X是以ECMA-357标准的形式发布的对ECMAScript的一个扩展。E4X的目的是为操作XML数据提供与标准ECMAScript更相近的语法。E4X具有下列特征:与DOM不同,E4X只用一个类型来表示XML中的各个节点。XML对象中封装了对所有节点都有用的数据和行为。为表现多个节点的集合,这个规范定义了XMLList类型。另外两个类型,Namespace和QN...原创 2018-07-18 10:27:34 · 703 阅读 · 0 评论 -
关于JavaScript的学习(六)——面向对象的程序设计
第六章ECMAScript 支持面向对象(OO)编程,但不使用类或者接口。对象可以在代码执行过程中创建和增强,因此具有动态性而非严格定义的实体。在没有类的情况下,可以采用下列模式创建对象。 模式 详解 工厂模式 使用简单的函数创建对象,为对象添加属性和方法,然后返回对象。这个模式后来被构造函数模式所取代 构造函数模式 可以创建自定义引用类型,可...原创 2018-07-11 16:44:28 · 114 阅读 · 0 评论 -
关于JavaScript的学习(一)——JavaScript简介
从今天开始通过学习《JavaScript高级程序设计》对JavaScript进行复习,在此基础上掌握新的知识第一章JavaScript主要目的是处理以前由服务器端(如Perl)负责的一些输入验证操作。一个完整的JavaScript实现应该由下列三个不同的部分组成:核心(ECMAScript)文档对象模型(DOM)浏览器对象模型(BOM)ECMAScript——提供核...原创 2018-07-09 11:10:04 · 166 阅读 · 0 评论 -
关于JavaScript的学习(二)——在HTML中使用JavaScript
第二章向HTML页面中插入JavaScript的主要方法是使用< script >元素。HTML 4.01为< script >定义了下列6个属性:asyns可选。表示应该立即下载脚本,但不妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本。只对外部脚本文件有效。charset可选。表示通过src属性指定的代码的字符集。由于大多数浏览器会忽略它的值,...原创 2018-07-09 17:28:59 · 166 阅读 · 0 评论 -
关于JavaScript的学习(十五)——使用Canvas绘图
第十五章 HTML5的< canvas >元素提供了一组JavaScript API,让我们可以动态地创建图形和图像。图形是在一个特定的上下文中创建的,而上下文对象目前有两种。第一种是2D上下文,可以执行原始的绘图操作,比如:设置填充、描边颜色和模式绘制矩形绘制路径绘制文本创建渐变和模式 第二种是3D上下文,即WebGL上下文。WebGL是从OpenGL...原创 2018-07-16 11:36:22 · 158 阅读 · 0 评论 -
关于JavaScript的学习(三)——基本概念
第三章ECMAScript中的一切(变量、函数名、操作符)都区分大小写。未经初始化的变量,会保存一个特殊的值——undefined。在函数中使用var定义一个变量,那么这个变量在函数退出后就会被销毁,但可以通过省略var操作符,从而创建一个全局变量:funtion test(){ message="hi";//全局变量}test();alert(message);//...原创 2018-07-10 10:43:42 · 106 阅读 · 0 评论 -
关于JavaScript的学习(十六)——HTML5脚本编程
第十六章 HTML5除了定义了新的标记规则,还定义了一些JavaScript API。这些API是为了让开发人员创建出更好的、能够与桌面应用媲美的用户界面而设计的。本章讨论了如下的API:跨文档消息传递API能够让我们在不降低同源策略安全性的前提下,在来自不同域的文档间传递消息。原生拖放功能让我们可以方便地指定某个元素可拖动,并在操作系统要放置时做出响应。还可以创建自定义的可拖动...原创 2018-07-16 15:59:47 · 174 阅读 · 0 评论 -
关于JavaScript的学习(四)——变量、作用域和内存问题
第四章1.基本类型值和引用类型值的特点:基本类型值在内存中占据固定大小的空间,因此被保存在栈内存中;从一个变量向另一个变量复制基本类型的值,会创建这个值的一个副本;引用类型的值是对象,保存在堆内存中;包含引用类型值的变量实际上包含的并不是对象本身,而是一个指向该对象的指针 从一个变量向另一个变量复制引用类型的值,复制的其实是指针,因此两个变量始终指向一个对象 var...原创 2018-07-10 17:39:20 · 119 阅读 · 0 评论 -
关于JavaScript的学习(十七)——错误处理与调试
第十七章 错误处理对于今天复杂的Web应用程序开发而言至关重要。不能提前预测到可能发生的错误,不能提前采取回复策略,可能导致较差的用户体验,最终引发用户不满。多数浏览器在默认情况下都不会向用户报告错误,因此在开发和调试期间需要启动浏览器的错误报告功能。然而,在投入运行的产品代码中,则不应该再有诸如此类的错误报告出现。下面是几种避免浏览器响应JavaScript错误的方法。在可能...原创 2018-07-17 09:14:14 · 116 阅读 · 0 评论 -
关于JavaScript的学习(十八)——JavaScript与XML
第十八章 JavaScript对XML及其相关技术有相当大的支持。然而,由于缺乏规范,共同的功能却存在一些不同的实现。DOM2级提供了创建空XML文档的API,但没有涉及解析和序列化。既然规范没有对这些功能做出规定,浏览器提供商就各行其实,拿出了自己的实现方案。IE采取了下列方式:通过ActiveX对象来支持处理XML,而相同的对象也可以用来构建桌面应用程序。Windows携...原创 2018-07-17 11:55:20 · 282 阅读 · 0 评论 -
关于JavaScript的学习(五)——引用类型
第五章Object类型var person = new Object(); //或 var person={};person.name = "Nicholas";person.age = 29;//与上面相同,为对象字面量表示法var person = { name : "Nicholas", age : 29}alert(person["name...原创 2018-07-11 12:00:20 · 108 阅读 · 0 评论 -
关于JavaScript的数组去重及性能问题
关于JavaScript的数组去重及性能问题for循环(两次嵌套)+ 新数组//chrome: max: 1443, min: 1181, average: 1207.47//firefox: max: 238, min: 178, average: 185.7function sort1(arr) { var flag = 0; var result = new ...转载 2018-09-14 15:39:25 · 200 阅读 · 0 评论