JavaScript高级程序设计阅读笔记
文章平均质量分 95
miaoch
世界上并没有完美的程序,但我们并不因此而沮丧,因为写程序本来就是一个不断追求完美的过程。
展开
-
第五章:引用类型(Object 类型、Array 类型)
[TOC] - 引用类型的值(对象)是引用类型的一个实例。简单来讲,就是和java中的class类型。但是他们又不一样,因为js中的引用类型是不具备java中的类那么完善的机制(接口等等)。引用类型有时候也被称为对象定义,因为他描述的是一类对象所具有的属性和方法。Object 类型废话不多说,看下面创建Object实例的两种方式: //通过new关键字构造 var原创 2017-03-20 11:02:25 · 594 阅读 · 0 评论 -
第十章:DOM(节点层次剩余节点类型介绍)
DOM节点层次Element类型HTML元素取得特性设置特性DOM节点层次Element类型Element类型用于表现XML或HTML元素,提供了对元素签名、子节点及特性的访问。Element节点的特征如下:nodeType的值为1nodeName的值为元素的标签名nodeValue的值为nullparentNode可能是Documen原创 2017-04-20 16:50:24 · 562 阅读 · 0 评论 -
第十章:DOM(DOM操作技术)
DOMDOM操作技术动态脚本动态样式操作表格使用NodeListDOMDOM操作技术很多时候,DOM操作比较简明,因此用JS去生成那些通常由HTML代码生成的内容并不麻烦。不过有些时候,操作DOM并不像表面上那么简单,其中充斥着隐藏的陷阱和不兼容问题。动态脚本使用<script>元素可以向页面中插入JavaScript代码,一种方式是通过src特性包含外部文件,另一种方式是用这个元素原创 2017-04-21 10:57:28 · 507 阅读 · 0 评论 -
第十三章:事件(事件流、事件处理程序)
事件事件流事件冒泡事件捕获DOM事件流事件处理程序HTML事件处理程序事件JavaScript和HTML之间的交互是通过事件实现的。事件最早是在IE3和Netscape Navigator2中出现的,当时是作为分担服务器运算负载的一种手段。在IE4和Netscape Navigator4发布时,这两种浏览器都提供了相似但不相同的API。IE9、Fire原创 2017-05-12 14:09:55 · 571 阅读 · 0 评论 -
第十章:DOM(节点层次:Node类型和Document类型)
DOM节点层次Node类型nodeTypenodeName和nodeValue属性节点关系childNodesparentNodepreviousSibling 和 nextSiblingfirstChild 和 lastChildownerDocument操作节点 appendChildinsertBefore replaceChild和removeChild原创 2017-04-18 09:22:07 · 893 阅读 · 0 评论 -
第十二章:DOM2 和 DOM3(遍历)
DOM Level 2 Tranversal原创 2017-05-04 15:31:08 · 389 阅读 · 0 评论 -
第十三章:事件类型(鼠标与滚轮事件)
事件事件类型鼠标与滚轮事件-原创 2017-05-25 10:41:17 · 515 阅读 · 0 评论 -
第十三章:事件(事件对象)
事件事件对象触发DOM上的某个事件后,会产生一个事件对象event,这个对象包含着所有与事件有关的信息。所有浏览器都支持event对象,但方式有所不同。DOM中的事件对象兼容DOM的浏览器会将一个event对象传入到事件处理程序中。无论指定事件处理程序使用什么方法(DOM0级或DOM2级),都会传入event对象。 var btn = document.getElementById("原创 2017-05-16 11:43:50 · 299 阅读 · 0 评论 -
第十三章:事件类型(键盘和文本事件、复合事件、变动事件)
事件事件类型键盘和文本事件原创 2017-05-26 10:53:05 · 843 阅读 · 0 评论 -
第十一章:DOM扩展
DOM扩展选择符APIquerySelector方法querySelectorAll方法matchesSelector方法元素遍历HTML5与类相关的补充getElementsByClassName 方法classList属性焦点管理HTMLDocument的变化readyState 属性兼容模式head属性DOM扩展尽管DOM原创 2017-04-25 15:59:01 · 2715 阅读 · 0 评论 -
第十二章:DOM2 和 DOM3(范围)
DOM2和DOM3范围为了让开发人员更方便的控制页面,DOM Level 2 Traversal and Range 模块定义了“范围”接口。通过范围可以选择文档的一个区域,而不必考虑节点的界限。这种行为是在后台完成的,对用户是不可见的。IE以专有方式实现了自己的范围特性。DOM中的范围DOM2级在Document类型中定义了createRange()方法。使用hasFeature()或者直接原创 2017-05-09 15:48:00 · 683 阅读 · 0 评论 -
第十三章:事件类型(简述、UI事件、焦点事件)
事件事件类型由于事件类型这一小节篇幅很长,所以我决定再细化一下。以下是DOM3级事件规定的几类事件: UI(User Interface,用户界面)事件,当用户与页面上的元素交互时触发。焦点事件,当元素获得或失去焦点时触发。鼠标事件,当用户通过鼠标在页面上执行操作时触发。滚轮事件,当使用鼠标滚轮(或类似设备)时触发。文本事件,当在文档中输入文本时触发。键盘事件,当用户通过键原创 2017-05-18 12:00:34 · 642 阅读 · 0 评论 -
第十二章:DOM2 和 DOM3(DOM变化)
DOM2 和 DOM3DOM变化针对 XML 命名空间的变化Node 类型的变化Document 类型的变化Element 类型的变化NameNodeMap 类型的变化其他方面的变化DocumentType 类型的变化Document 类型的变化DOM2 和 DOM3DOM1 级主要定义的是XML和HTML文档的底层结构。DOM2 级和DOM3原创 2017-04-26 15:10:21 · 455 阅读 · 0 评论 -
第十四章:表单脚本(表单的基础知识)
表单脚本JavaScript最初的一个应用,就是分担服务器处理表单的责任,打破处处依赖服务器的局面。由于Web表单没有为许多常见任务提供现成的解决手段,很多开发人员不仅会在验证表单的时候使用JavaScript,而且还增强了一些标准表单控件的默认行为。表单的基础知识在HTML中,表单是由<form>元素来表示的。在JavaScript中,表单对应的是HTMLFormElement 类型。HTM原创 2017-06-05 16:45:56 · 340 阅读 · 0 评论 -
第十三章:事件类型(HTML5事件、设备事件、触摸与手势事件)
事件事件类型HTML5事件DOM规范没有涵盖所有浏览器支持的所有事件。很多浏览器还实现了一些自定义的事件。HTML5详尽列出了浏览器应该支持的所有事件。此处讨论得到浏览器完善支持的事件,其他事件会在其余地方讨论。contextmenu事件可以简单地认为该事件是鼠标右键单击事件(在Windows中是右键单击,在Mac中是Ctrl+单击,以下默认为Windows)。该事件的名称叫上下文菜单,就像我原创 2017-05-27 15:28:00 · 1069 阅读 · 0 评论 -
第十三章:事件(内存和性能、模拟事件)
事件内存和性能前面我们提到了好多好多事件,那么为页面添加事件处理程序就设计到了内存和性能问题。例如,如果我们为大量按钮添加匿名函数事件处理程序,首先这些匿名函数都是对象是占用空间的,其次这些添加事件处理程序的操作也会延迟整个页面的交互就绪时间。事件委托由于大多数类型的事件都是会冒泡的,所以我们可以为它们相同的父元素添加一件事件处理程序,这样就能避免大量地添加事件处理程序了原创 2017-06-02 10:01:47 · 358 阅读 · 0 评论 -
第十五章:使用Canvas绘图(2D上下文)
使用Canvas绘图-原创 2017-06-22 17:06:25 · 1434 阅读 · 0 评论 -
第十四章:表单脚本(文本框脚本)
表单脚本文本框脚本众所周知,在HTML中有两种文本框:一个是使用<input>(type为text)的单行文本框,一个是使用<textarea>的多行文本框。<input type="text">单行文本框: size:指定文本框中能够显示的字符数(可能是按照最宽的那种字符,而字母细一点,能放多一点。)maxlength:指定文本框可以接受的最大字符数value:可填写初始值(长度可以超过原创 2017-06-09 11:57:46 · 502 阅读 · 0 评论 -
第十二章:DOM2 和 DOM3(样式)
DOM2 和 DOM3样式访问元素的样式DOM样式属性和方法计算的样式操作样式表CSSRule创建规则删除规则元素大小偏移量客户区大小滚动大小确定元素大小DOM2 和 DOM3样式在HTML中定义样式的方式有3种:通过<link/>元素包含外部样式表文件,通过<style>元素定义嵌入式样式,以及使用style特性定义针对特定元素的样式。DOM Level 2 Style原创 2017-05-02 16:28:48 · 430 阅读 · 0 评论 -
第八章:BOM(window对象)
BOMECMAScript是JavaScript的核心,但如果要在Web中使用JS,那么BOM(浏览器对象模型)则无疑才是真正的核心。BOM提供了很多对象,用于访问浏览器的功能,这些功能与任何页面内容无关。window对象BOM的核心对象是window,它表示浏览器的一个实例。在浏览器中,window对象有双重角色,它既是通过JS访问浏览器的接口,又是ECMAScript规定的Global对象原创 2017-04-06 16:29:15 · 374 阅读 · 0 评论 -
第六章:面向对象的程序设计(理解对象)
理解对象属性类型数据属性访问器属性定义多个属性读取属性的特性面向对象(Object-oriented, OO)的语言有一个标志,那就是他们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象。js中没有类的概念,在js中我们可以把对象想象成散列表,无非就是一组名值对(没有特定顺序),其中值可以是数据或函数。每个对象都是基于一个引用类型创建的,这个引用类型可以是原生类型,也可以是开原创 2017-03-27 15:43:53 · 404 阅读 · 0 评论 -
第三章:基本概念(数据类型)
数据类型typeof操作符Undefined类型Null类型Boolean类型Number类型String类型Object类型数据类型typeof操作符js中有五种简单类型(类型首字符大写):Undefined、Null、Boolean、Number和String。(感觉就和java中的基本类型类似)还有一种复杂类型Object。在我看来,Object本质和java中的由类创建的对原创 2017-03-14 10:39:35 · 457 阅读 · 0 评论 -
第五章:引用类型(Function类型和内置对象 简略版)
本来这篇文章我已经写过了,后来误删了,所以这次就简略写一次。这里顺便吐槽一下CSDN的保存机制。Function 类型没有重载是因为1.变量都是存着arguments里面的无法区分。Function类型是一个对象,而函数名只是一个指针,不可能说一个指针指向2个函数。函数有直接声明和函数表达式两种方式。后者是没有函数提升的效果的。函数有两个重要的内部属性:arguments和this。argum原创 2017-03-27 16:36:14 · 326 阅读 · 0 评论 -
第五章:引用类型(Date 类型、RegExp 类型)
Date类型js中的Date类型是在早期Java的java.util.Date类基础上构建的。Date类型使用来自UTC1970年1月1日午夜(零时)开始经过的毫秒数来保存日期。 var now = new Date();//传入一个毫秒数,不传为系统当前时间Date.parse()方法接收一个表示日期的字符串参数,然后根据字符串返回毫秒数。日期格式因地而异。原创 2017-03-21 11:52:14 · 357 阅读 · 0 评论 -
第二章:在HTML中使用JavaScript
笔记易错点<script>元素async属性代表应该(注意是应该)立即下载脚本,但不妨碍页面中的其他操作,且只对外部脚本有效。<script>元素defer属性表示脚本立即下载(其实除了async,下载的次序就只和结点位置有关)但可以延迟到文档加载完成后再执行,只对外部脚本有效。test.html:<!DOCTYPE html><html lang="en"><head> <me原创 2017-03-13 10:39:02 · 370 阅读 · 0 评论 -
第三章:基本概念(语法和变量)
语法JavaScript区分大小写。标识符:变量、函数、属性名字、函数参数。标识符可以是按照下列格式规则组合起来的一个或多个字符,但不能使用关键字、保留字、true、false、null作为标识符: 第一个字符必须是字母、下划线(_)或一个美元符号($);其他字符可以是字母、下划线、美元符号或数字。标识符的字母可以包含扩展的ASCII或Unicode字母字符,但是不推荐这么做,按照惯例,命原创 2017-03-13 14:46:20 · 421 阅读 · 0 评论 -
第六章:面向对象的程序设计(创建对象)
创建对象工厂模式构造函数模式构造函数也是普通函数构造函数的问题原型模式理解原型对象原型与in操作符更简单的原型语法原生对象的原型原型对象的问题组合使用构造函数模式和原型模式动态原型模式寄生构造函数模式稳妥构造函数模式创建对象虽然用Object构造函数或对象字面量都可以用来创建单个对象,但这些方法会导致大量的重复代码。为了解决这个问题,人们开始使用工厂模式的一种变体。工原创 2017-03-29 15:45:58 · 412 阅读 · 0 评论 -
第六章:面向对象的程序设计(继承)
继承许多面向对象语言都支持两种继承方式:接口继承和实现继承。接口继承只继承方法签名,而js中函数是没有签名的,所以加上中没有接口继承。但是js中有实现继承,而且实现继承主要是依靠原型链来实现的。原型链原型链,命名非常的形象。从那面的学习知道了,搜索一个属性,先从对象中搜索,再从对象的原型对象中搜索。其实在这个地方,如果原型对象中也没有,那么搜索是否就结束了呢?其实不然,如果原原创 2017-03-31 15:35:52 · 554 阅读 · 0 评论 -
第八章:BOM(location对象、navigator对象、screen对象、history对象)
BOMlocation对象查询字符串参数位置操作navigator对象检测插件BOMlocation对象location对象提供了当前窗口中加载的文档有关的信息,还提供了一些导航功能。location对象既是window对象的属性,也是document对象的属性。也就是说,window.location和document.location引用的是同一原创 2017-04-10 18:17:04 · 633 阅读 · 0 评论 -
第九章:客户端检测(能力检测、怪癖检测)
客户端检测能力检测更可靠的能力检测能力检测不是浏览器检测怪癖检测客户端检测因为浏览器之间存在差异,哪怕是跨平台的同种浏览器,也有一些差异,这些给开发带来了困难。因此客户端检测是一种补救措施,这种措施不到万不得已不要轻易使用,尽量使用更通用的方法。能力检测能力检测的目的不是检测浏览器类型,而是检测浏览器是否有该功能。举例来说IE5.0之前的版本不支持document.getElement原创 2017-04-11 10:04:41 · 643 阅读 · 0 评论 -
第三章:基本概念(语句和函数)
语句if 语句,do-while语句, while语句,for语句。(前三者略过)for (var i=0;i<10;i++) 和var i;for (i=0;i<10;i++)是一样的,js中不存在块级作用域,因此前者的i在循环外部同样可以访问到。 var count = 10; for (var i=0; i < count; i++){ alert(i);原创 2017-03-16 14:22:42 · 323 阅读 · 0 评论 -
第五章:引用类型(基本包装类型:Boolean、Number和String)
基本包装类型Boolean类型Number类型String 类型lengthcharAt和charCodeAtconcatslicesubstrsubstringindexOf和lastIndexOftrimtoLowerCasetoUpperCasematchsearch replacesplitlocaleCompare fromChatCodehtml方法不建议使用原创 2017-03-26 17:21:10 · 1116 阅读 · 0 评论 -
第四章:变量、作用域和内存问题
基本类型和引用类型js变量可能包含两种不同的类型的值:基本类型值和引用类型值。基本类型值包括Undefined、Null、Boolean、Number和String。引用类型的值是保存在内存中的对象。js不允许直接访问内存中的位置,即不能直接操作对象的内存空间。在操作对象时,实际上是在操作对象的引用而不是实际的对象。动态属性对于引用类型的值,我们可以为其添加属性和方法,也可以原创 2017-03-17 10:56:45 · 283 阅读 · 0 评论 -
第七章:函数表达式(简述、递归和闭包)
函数表达式简述定义函数的方式有两种:函数表达式和函数声明。函数声明的语法如下: function functionName(arg0, arg1, arg2) { //函数体 }FireFox、Safari、Chrome、Opera都给函数定义了一个非标准的name属性,通过该属性可以访问到指定函数的名称。这个属性值永远等于跟在function关键字后面的标识符。原创 2017-04-01 17:32:56 · 715 阅读 · 0 评论 -
第七章:函数表达式(模仿块级作用域和私有变量)
函数表达式模仿块级作用域JS和JAVA一个区别就在于JS没有块级作用域。看以下例子: function outputNumbers(count){ for (var i=0; i < count; i++){ alert(i); } //var i;//多了这句对结果毫无影响 alert(i); /原创 2017-04-05 10:43:06 · 278 阅读 · 0 评论 -
第三章:基本概念(操作符)
操作符定义:操作符能用于操作数据值,包括算术运算符、位操作符、关系操作符和相等操作符。操作符能适用于很多值,例如字符串、数字值、布尔值,甚至对象。在应用于对象时,相应的操作符通常会调用对象的valueOf()和(或)toString()方法,以便取得可以操作的值。一元操作符递增和递减操作符(+ +,- -)应用于数值时,和java中没有区别。要注意的是操作符的位置分为前置和后原创 2017-03-15 09:08:51 · 571 阅读 · 0 评论 -
第十四章:表单脚本(选择框脚本、表单序列化、富文本编辑)
表单脚本选择框脚本选择框是通过<select>和<option>元素创建的。<select>元素是在JS中是HTMLSelectElement 类型,提供了额外的属性和方法: add(newOption, relOption):向控件中插入新<option>元素,其位置在相关项(relOption)之前。可以通过new Option(text, value)创建HTMLOptionElement原创 2017-06-13 15:06:58 · 691 阅读 · 0 评论