第4章 变量、作用域和内存问题
复制变量值
基本类型值复制(如:Number、String 、Boolean、Null和Undefined),分配新的位置
引用类型值(如:对象类型Object type,比如:Object 、Array 、Function 、Data等),复制的是指针,实际指向同一位置,改变任何一个值都会影响到复制或者被复制的值
传递参数
所有函数的参数都是按值传递的
检测类型 typeof
第5章 引用类型
操作数组的方法
添加删除 push() pop() unshift() shift()
排序 sort() reverse()
基于当前数组创建新数组(不会改变原数组) / 合并多个数组 concat()
基于当前数组创建新数组(不会改变原数组) / 复制 截取 数组 slice()
基于当前数组创建新数组(不会改变原数组) / 删除 插入 替换 数组元素 splice()
位置方法 indexOf()  lastIndexOf()
循环
这些方法都不会修改数组中包含的值 every() some() filter() forEach() map()

函数
call / apply 的用途是在特定作用域下调用函数,接收两个参数,一个是在其中运行函数的作用域,一个是参数数组
call 第二个参数可以是Array实例,也可以是arguments
apply 第二个参数是数组
bind() 方法会创建一个函数的实例,其this会被绑定到传给bind()函数的值。
基本包装类型: Boolean Number String

转化函数

toString()
Number()
toFixed() 按照指定的小数位返回数值的字符串表示 如:var num = 10; alert(num.toFixed(2)) //"10.00"

访问字符串特定字符的方法
charAt()单字符字符串方式返回
charCodeAt()返回字符编码
length()字符串长度

字符串操作方法
concat()字符串连接,等同于+号(不影响原字符串)

基于子字符串创建新字符串的方法,返回子字符串(不影响原字符串)
slice() substring() 第一个参数代表指定字符串开始的位置,第二个参数代表子字符串最后一个字符后面的位置(没传第二个参数代表将字符串长度作为结束位置)
substr() 第一个参数代表指定字符串开始的位置,第二个参数代表字符个数(没传第二个参数代表将字符串长度作为结束位置)

字符串位置方法
indexOf() lastIndexOf()

trim() 创建一个字符串副本,删除前置以及后缀的所有空格,然后返回结果
trimLeft()删除字符串开头空格 trimRight()删除字符串末尾空格

字符串大小写转换
toUpperCase() 转换成大写 toLocalUpperCase() 针对地区转换大写
toLowerCase() 转换成小写 toLocalLowerCase() 针对地区转换小写

字符串的模式匹配
match() 只接受一个参数(正则表达式或者RegExp对象)本质上与调用RegExp的exec()方法相同

search()只接受一个参数(正则表达式或者RegExp对象)方法返回第一个匹配的索引,没有匹配项则返回-1

replace() 字符串替换

split()用指定分隔符将字符串分割成多个子字符串,并将结果放在一个数组中(分隔符可以是字符串也可以是RegExp对象),第二个参数可以指定数组大小

localeCompare() 字母表中的排列比较

fromCharCode()接收一或者多个字符编码,然后将它们转换成一个字符串,与charCodeAt()相反 String.fromCharCode[104,101,108,108,111] //"hello"

Global对象的方法

isNan() isFinite() parseInt() parseFloat()

URI编码方法
encodeURI()主要用于整个URL,不会对URL的特殊字符进行编码
edcodeURIComponent() 主要对于URL中的某一段进行编码,会对任何非标准字符进行编码

eval() 把传人的参数当做js语句执行

math对象

求最大最小值
min() max() 例如:找数字的最大值 var values = [1,2,3,4,5,6]; var max = Math.max.apply(Math,values);

舍入方法
Math.ceil()向上取整 Math.floor() 向下取整 Math.round() 四舍五入

Math.random() 返回0和1之前的随机数,不包括0和1 (p136)
从某个整数范围内随机选择一个值->公式: 值 = Math.floor(Math.random() * 可能的值的总数 + 第一个可能的值)
Math.abs(num) 返回num的绝对值

第6章 面向对象程序设计
面向对象
属性类型
1.数据属性(configurable、enumerable、writable、value)
修改属性默认的特性用Object.defineProperty()方法
方法接收三个参数:属性所在的对象,属性名字和一个描述符对象,描述符(descriptor)对象的属性必须是
configurable、enumerable、writable、value。设置其中的一个或多个值,可以修改对应的特
性值。如:
var person = {};
Object.definProperty(person, "name",{
configurable: false,
value:"nicholas"
});
alert(person.name); // "nicholas"
delete person.name;
alert(person.name); // "nicholas"

2.访问器属性(configurable、enumerable、get、set)
访问器属性不包含数据值,包含getter和setter函数

定义多个属性
读取属性的方法(Object.getOwnProtertyDescriptor() 取得给定属性的描述符)

创建对象
1.工厂模式
function createPerson(name, age, job){var o = new Object();o.name = name;o.age = age;o.job = job;o.sayName = function () {alert(this.name);}return o;
}
var person1 = new createPerson("nicholas", 29, "software");
var person2 = new createPerson("greg", 30, "doctor");

2.构造函数模式

function Person(name, age, job){this.name = name;this.age = age;this.job = job;this.sayName = function () {alert(this.name);}
}
var person1 = new Person("nicholas", 29, "software");
var person2 = new Person("greg", 30, "doctor");3.原型模式
function Person() {
}
Person.prototype.name = "nicholas";
Person.prototype.age = 29;
Person.prototype.job = "software";
Person.prototype.sayName = function () {
alert(this.name);
}
var person1 = new Person();实例中的指针仅指向原型,而不指向构造函数(重要,记住)。 delete操作符可以完全删除实例属性,从而让我们重新访问原型属性。

hasOwnProperty()检测属性存在实例中还是原型中,存在实例中返回true。

in 通过对象能访问给定属性时返回true,无论属性存在实例中还是存在原型中。
hasPrototypeProperty()属性存在原型中返回true,存在实例中返回false。
for-in循环时,返回的是所有能够通过对象访问的,可枚举的属性。
Object.keys()取得对象上所有可枚举的实例属性。方法接收一个对象作为参数,返回包含所有可枚举属性的字符串数组。
Object.getOwnPropertyName() 得到实例的所有属性,无论它是否可枚举。
更简单的原型语法(对象字面量重写整个原型对象,此时原型的constructor就不再指向构造函数,而指向Object构造函数,此时需要重设构造函数如下)
Object.defineProperty(构造函数名.prototype, "constructor", {
enumerable: false,
value:构造函数名
});
字面量方式创建原型如下:
function Person() {
}
Person.prototype = {
name : "nicholas",
age : 29,
job : "software",
sayName : function () {
alert(this.name);
}
}
var person1 = new Person();

4.组合构造函数和原型模式(最常见,构造函数用于定义实例属性,原型模式用于定义方法和共享属性,支持向构造函数传递参数)
function Person(name, age, job) {
this.name = name;
this.age = age;
this.job = job;
}
Person.prototype.sayName = function () {
alert(this.name);
}
var person1 = new Person("greg", 30, "doctor");
字面量方式创建组合构造函数原型模式
function Person(name, age, job) {
this.name = name;
this.age = age;
this.job = job;
this.friends = ["shery", "court"]
}
Person.prototype = {
constructor : Person,
sayName = function(){
alert(this.name);
}
}
var person1 = new Person("nicholas", 29, "software");
var person2 = new Person("greg", 30, "doctor")
5.动态原型模式(把所有信息都封装在构造函数中,可以通过检查某个应该存在的方法是否有效来动态决定是否要初始化原型。注意:使用动态原型模式时,不能使用对象字面量重写原型,如果已经创建量实例的情况下重写原型,那么就会切断现有实例与新原型之前的联系)
function Person(name, age, job) {
this.name = name;
this.age = age;
this.job = job;
if(typeof this.sayName != "function"){
Person.prototype.sayName = function () {
alert(this.name);
}
}
}
var person1 = new Person("nicholas", 29, "software");
6.寄生构造函数
function SpecialArray(){
var values = new Array();
values.push.apply(values, arguments);
values.toPipedString = function () {
return this.join('|');
}
return values;
}
var colors = new SpecialArray("red", "blue", "green");
alert(colors.toPipedString()); // "red|blue|green"
7.稳妥构造函数

function Person(name, age, job) {
var o = new Object();
o.sayName = function () {
alert(name);
}
return o;
}

继承

1.借用构造函数(经典继承) (传递参数)
function SuperType(name) {
this.name = name;
}
function SubType() {
SuperType.call(this,"nicholas");
this.age = 29;
}
var instance = new SubType();
alert(instance.name);
alert(instance.age);

2.组合继承(伪经典继承)最常用的继承模式
function SuperType(name) {
this.name = name;
this.colors = ["red", "blue", "green"];
}
SuperType.prototype.sayName = function () {
alert(this.name);
};
function SubType(name, age) {
SuperType.call(this, name);
this.age = age;
}
SubType.prototype = new SuperType();
SubType.prototype.sayAge = function () {
alert(this.age);
}
var instance1 = new SubType("nicholas",29);
instance1.colors.push("black");
alert(instance1.colors);
instance1.sayName();
instance1.sayAge();

var instance2 = new SubType("greg", 28);
alert(instance2.colors);
instance2.sayName();
instance2.sayAge();

3.原型式继承
function object(o) {
function F(){}
F.prototype = o;
return new F();
}
var person = {
name:"nicholas",
friends:["sheny", "hony"]
}
var anotherperson = object(person);
anotherperson.name = "hoho";
anotherperson.friends.push("bob");

var yetanotherperson = object(person);
yetanotherperson.name = "fandy";
yetanotherperson.friends.push("goho");

alert(anotherperson.name);
alert(yetanotherperson.name);
alert(anotherperson.friends);
alert(yetanotherperson.friends);

或者object.create()

4.寄生式继承
function createAnother(original) {
var clone = object(original);
clone.sayHi = function () {
alert('hi');
}
return clone;
}
var person = {
name: "nicholas",
friends:["sheny", "hony"]
}
var anotherperson = createAnother(person);
anotherperson.sayHi();

5.寄生组合式继承
function inheritPrototype(subType, superType) {
var prototype = object(superType.prototype);
prototype.constructor = subType;
subType.prototype = prototype;
}
function SuperType(name) {
this.name = name;
this.colors = ["red", "blue", "green"];
}
SuperType.prototype.sayName = function () {
alert(this.name);
};
function SubType(name, age) {
SuperType.call(this, name);
this.age = age;
}
inheritPrototype(SubType, SuperType);
SubType.prototype.sayAge = function () {
alert(this.age);
}

第八章 BOM

top对象始终指向最外围框架,也就是整个浏览器窗口
parent对象表示包含当前框架的框架,而self对象则回指window
(1)window对象
窗口大小
innerWidth,innerHeight,outerWidth,outerHeight
clientWidth, clientHeight
resizeTo()接收浏览器窗口的新宽度和新高度
resizeBy()接收新窗口和原窗口的宽度和高度之差
打开窗口 window.open()
top.close()不经用户允许下关闭自己
间歇调用和超时调用
setTimeout() clearTimeout()
setInterval() clearInterval()
系统对话框
alert() comfirm() prompt()
window.print() window.find()
(2)location对象
window.location = document.location
location对象的属性如下:
hash "#contents"
host "www.baidu.com:80"
hostname "www.baidu.com"
href "http:/www.baidu.com"
pathname "/xxx/" 返回目录和文件名
port "8080"
protocol "http:"
search "?q=javascript" 返回url查询字符串,字符串从?开头
decodeURIComponent()
位置操作
location.assign("http://www.baidu.com") 相当于 window.location="www.baidu.com" 相当于 location.href = "www.baidu.com"(常用)用户可以点返回 回到前一页
location.replace("www.baidu.com") 用户不能回到前一页
location.reload() 重新加载(有可能从缓存中重新加载)
location.reload(true) 重新加载(从服务器重新加载)
(3)navigator对象(识别客户端浏览器的标准)
(4)screen对象(表明客户端的能力,包括浏览器外部的显示信息,像素,宽,高等)
Android 设备则会相应调用 screen.width screen.height 的值
(5)history对象 (上网的历史记录)
history.go() 接收一个参数,负数后退 正数前进
history.go(-1) history.go(2) history.go("baidu.com")跳转到最近的百度页
history.back()
history.forward()
history.length 等于0代表打开窗口的第一个页面
第10章 DOM
将NodeList对象转换成数组
var arrayOfNodes = Array.prototype.slice.call(someNode.childNodes,0)
hasChildNodes()
操作节点
末尾添加节点 appendChild()接收一个参数:要添加的节点
插入到节点前面insertBefore()接收两个参数:要插入的节点和作为参照的节点
替换节点 replaceChild()接收两个参数:要替换节点和作为参照的节点
删除节点removeChild()接收一个参数:要删除的节点
创建节点副本CloneNode()接收一个参数,true深复制 。false浅复制
处理文档中到文本节点  normalize()
网页请求有关的属性
document.URL 取得完整URL
document.domain 取得域名
document.referrer 取得来源页面的URL
查找元素
getElementByTagName()
getElementById()
namedItem()
getElementByName()
hasFeature()
文档写入
write() writeln() open() close()
Element类型
Element节点特性
nodeType
nodeName (等于tagName,返回大写标签名称)
nodeValue
parentNode
1.HTML元素特性
id title lang dir(语言的方向) className
2.取得HTML元素特性的方法,这三个方法可以针对任何特性使用(包括自定义特性)
getAttribute()
3.setAttribute() 方法接收两个参数,要设置的特性名和值(如果属性不存在则创建并设置相应的值)
因为所有特性都是属性,所以直接给属性赋值也可以设置特性的值 如:div.id = "someotherid"
removeAttribute()
getAttribute("class") 传递给函数的特性名与实际的特性名相同
4.attributes 属性(不常用) element.attributes.如下方法
getNameItem(name)
removeNameItem(name)
setNameItem(node)
item(pos)
还可以用来遍历元素特性
5.创建元素
document.creatElement()
6.元素的子节点 element.childNodes
Text类型
文本节点方法
appendData(text)
deleteData(offset, count)
insertData(offset, text)
replaceData(offset, count, text)
splitText(offset)从指定位置将文本分成两个节点
substringData(offset, count) 提取从offset指定的位置到offset+count为止处的字符串
文本节点的长度 nodeValue.length data.length
创建新节点 document.createTextNode()方法接受一个参数-要插入节点的文本
normalize()将文本节点合并成一个节点
splitText() 分割文本节点 接受一个参数从第几个字符开始分割
Comment类型
CDATASection类型
DocumentType类型
DocumentFragment类型(文档片段)
Attr类型
第11章 DOM扩展
HTML5
DOM选择符API
querySelector()
querySelectorAll()
matchesSelector()
getElementByClassName()
className属性
classList属性的方法有 add(value) contains(value) remove(value) toggle(value)
例如:div.classList.add('current') 增加current类
焦点管理
focus()
确定文档是否获得了焦点 document.hasFocus()
readyState属性(值 loading complete)
自定义属性data-
插入标记 innerHTML
outerHTML属性 --子树完全替换调用元素
insertAdjacentHTML() 接受两个参数插入位置(beforebegin, afterbegin, beforeend, afterend)和要插入的HTML文本
scrollIntoView()滚动浏览器窗口到某个容器元素(所有浏览器都支持) 例如:document.forms[0].scrollIntoView();
children属性 element.children.length; element.children[0]
contains() 方法接收一个参数,即要检测的后代节点
compareDocumentPosition()确定节点间的关系
innerText , outerText , textContent 属性
滚动
scrollIntoViewIfNeeded(alignCenter) 只有当前元素在视口中不可见的情况下才滚动浏览器窗口或容器元素
scrollByLines(lineCount)元素滚动指定行高
scrollByPage(pageCount)元素滚动指定页面高度
style属性
var myDiv = document.getElementById("myDiv")
myDiv.style.backgroundColor = "red"
myDiv.style.width = "100px"
myDiv.style.height = "200px"
myDiv.style.border = "1px solid black"
第12章 DOM2 和DOM3
getComputedStyle()
document.styleSheets集合访问样式表
偏移量
offsetHeight offsetWidth offsetLeft offsetTop
客户区大小
clientWidth 元素内容区宽度加上左右内边距宽度
clientHeight 元素内容区高度加上上下内边距高度
滚动大小
scrollHeight 没有滚动条的情况下,元素内容的总高度
scrollWidth 没有滚动条的情况下,元素内容的总宽度
scrollLeft 被隐藏在内容区左侧的像素数
scrollTop 被隐藏在内容区上方的像素数
第13章 事件
event属性
添加和删除事件处理程序
addEventListener()
removeEventListener()
var btn = document.getElementById("myBtn");
btn.addEventListener("click", function(){
alert(this.id);
}, false);
IE事件处理程序
attachEvent()
detachEvent()
var btn = document.getElementById("myBtn");
btn.attachEvent("onclick", function(){
alert(this.id);
});

DOM中的event对象的属性和方法
currentTarget
eventphase
preventDefault()
stopImmediatePropagation()
stopPropagation()
target
type
IE中的事件对象
cancelBubble
returnValue
srcElement
type
事件类型
UI事件
load unload abort error select resize scroll(document.body.scrollTop . document.body.scrollLeft)
焦点事件
blur focus focusin focusout
鼠标事件
click dbclick mousedown mouseenter mouseleave mousemove mouseout mouseover mouseup
客户坐标位置
clientX clientY
页面坐标位置
pageX pageY
页面没有滚动的情况下 clientX = pageX clientY=pageY
屏幕坐标位置screenX screenY
IE altLeft ctrlLeft offsetX offsetY shiftLeft
鼠标滚轮事件
mousewheel
wheelDelta 向前滚动滚轮 wheelDelta是120的倍数,向后滚动滚轮 wheelDelta是-120的倍数
火狐 DOMMouseScroll 滚轮信息保存在detail属性中
文本事件
textInput 在文本插入文本框之前会触发textInput事件
键盘事件
keydown 任意键 keypress字符键 keyup释放按键
发生keydown和keyup事件时,event对象的keyCode属性中会包含一个代码,与键盘上一个特定键对应(如enter的keyCode为13)
字符编码,charCode属性,只有在发生keypress事件时才包含值,取得了字符编码之后,就可以使用String.fromCharCode()将其转换成实际字符
event属性 inputMethod() 表示把文本输入到文本框中的方式(只有IE支持)
复合事件DOM3新添加的一类事件
compositionstart compositionupdate compositionend
变动事件DOM2(mutation事件)
DOMSubtreeModified DOMNodeInserted DOMNodeRemoved DOMNodeInsertedIntoDocument DOMNodeRemoveFromDocument DOMAttrModified DOMCharacterDataModified
HTML5事件 p388
contextmenu事件(该事件是冒泡的,取消默认行为用event.preventDefalut(),IE用event.returnValue)
beforeunload事件 (页面卸载前阻止这一操作,让用户选择是否要关闭页面)
DOMContentLoaded事件(形成完整的DOM树后触发)
readystatechange事件(支持该事件的每一个对象都有一个readyState属性)IE Firfox Opera
readyState属性包含如下5个值:
uninitialized loading loaded interactive complete
pageshow和pagehide事件(浏览器按前进后退加快页面转换速度)
hashchange事件(URL参数列表发生变化时通知开发人员(#后面的所有字符串))
设备事件
orientationchange(设备由横行查看模式切换为纵向查看模式)window.orientation属性 (iso设备才支持)
MozOrientation事件(火狐)
deviceorientation事件 (safari chrome Android版WebKit)
触摸和手势事件
触摸事件
touchstart touchmove touchend touchcancel (这些事件都会冒泡,也都可以取消)
每个触摸事件的event对象都提供了鼠标事件中常见的属性:
bubbles ,cancelable, view,clientX,clientY,screenX,screenY,detail,altKey,ctrlKey,metaKey
触摸事件还包含下列三个用于跟踪触摸的属性:touches,targetTouches,changeTouches
每个Touch对象包含下列属性:clientX, clientY, identifier(标识触摸的唯一ID), pageX,pageY,screenX,screenY,target(触摸的DOM节点目标)
手势事件(ios)手势事件包含两个额外的属性 rotation和scale
gesturestart 一个手指按在屏幕上,而另一个手指又触摸屏幕
gesturechage 当触摸屏幕的任何一个手指的位置发生变化时触发
gestureend 当任何一个手指从屏幕上面移开时触发
内存和性能
事件委托(利用了事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件)
最适合采用事件委托技术的事件包括 click,mousedown,mouseup,keydown,keyup,keypress
移除事件处理程序
模拟事件
DOM中的事件模拟,createEvent()方法接收一个参数,即表示要创建的事件类型的字符串:
UIEvents, MouseEvents, MutationEvents, HTMLEvents
触发事件 dispatchEvent() 调用此方法需要传人一个参数,即表示要触发事件的event对象
模拟鼠标事件
为createEvent()传人字符串"MouseEvents",返回的对象有一个名为initMouseEvent()方法,这个方法接收15个参数如下:
type (字符串)表示要触发的事件类型,如:"click"
bubbles(布尔值) 表示事件是否可以取消
cancelable(布尔值)表示事件是否可以取消
view 与事件关联的视图
detail(整数)与事件相关的详细信息
screenX(整数)事件相对于屏幕的X坐标
screenY(整数)事件相对于屏幕的Y坐标
clientX(整数)事件相对于视口的X坐标
clientY(整数)事件相对于视口的Y坐标
ctrlKey(布尔值)表示是否按下了Ctrl键,默认值为false
altKey(布尔值)表示是否按下了Alt键,默认值为false
shiftKey(布尔值)表示是否按下了Shift键,默认值为false
metaKey(布尔值)表示是否按下了Meta键,默认值为false
botton(整数) 表示按下了哪一个鼠标键,默认为0
relatedTarget(对象)表示与事件相关对象,这个参数只在模拟mouseover或mouseout时使用
列子
var btn = document.getElementById("myBtn");
var event = document.createEvent("MouseEvents");
event.initMouseEvent("click", true, true, document.defaultView, 0, 0, 0, 0, 0, false, false, false, false,0 ,null);
btn.dispatchEvent(event);
模拟键盘事件
DOM3为createEvent()传入"keyboardEvent",返回方法initKeyEvent(),方法接收如下参数
type
bubbles
cancelable
view
key(布尔值) 表示按下的键的键码
location(整数)表示按下了哪里的键 ,0表示主键盘,1表示左,2表示右,3表示数字键盘,4表示移动设备(虚拟键盘),5表示手柄
modifiers(字符串)空格分隔的修改键列表,如:"Shift"
repeat()整数,在一行中按了这个键多少次
event.initKeyboardEvent("keydown", true, true, document.defaultView, "a", 0, "Shift", 0);
模拟变动事件
createEvent("MutationEvents"),返回方法initMutationEvent()
模拟HTML事件
createEvent("HTMLEvents"),返回方法initCEvent()
自定义DOM事件
createEvent("CustomEvents"),返回方法initCustemEvent()
IE中的事件模拟
var btn = document.getElementById("myBtn");
var event = document.createEventObject()
btn.fireEvent("onclick", event)
第14章 表单脚本
HTMLFormElement属性和方法
acceptCharset
action
elements
enctype
length
method
name
reset()
submit()
target
document.forms 取得页面中所有表单
form.submit() 提交表单
form.elements 表单中所有元素的集合
共有的表单字段属性
除了<fieldset>元素外,所有表单都拥有相同的一组属性
disabled form name readOnly tabIndex type value
共有表单字段方法
focus() blur()
共有表单字段事件
blur
change
fucus
文本框脚本
size 指定文本框中能够显示的字符数
value 设置文本框的初始值
maxlength 指定文本框可以接受的最大字符数
<textarea> 使用rows和cols设定文本框的行和列,不能在HTML给它指定最大字符数
选择文本
select()
选择事件select
取得选择的文本
selectionStart selectEnd
过滤输入
屏蔽字符
操作剪贴板
beforecopy
copy
cut
beforepaste
paste
访问剪贴板上的数据可以用clipboardData对象,对象有三个方法
getData() setData() clearData()
自动切换焦点
HTML5约束验证API
required,提交表单时不能空着,属性适用于input textarea select
其他输入类型
HTLML5为input的type元素增加的值 email url number range datetime datetime-local date month week
数值输入类型的输入元素可以指定 min max step 属性
输入模式 pattern属性(属性的值时一个正则表达式,用于匹配文本框中的值)
检测有效性 checkValidity()检测表单中某个字段是否有效
禁用验证 novaliditate属性
选择框脚本属性和方法
add(newOption, relOption)
multiple
options
remove(index)
selectedIndex
size
<option>元素的HTMLOptionElement对象的属性
index
label
selected
text
value
var selectbox = document.forms[0].elements['location']
var text = selectbox.options[0].text;
var value = selectbox.options[0].value;
选择选项 selectedIndex
添加选项 appendChild() add()
移除选项
removeChild() selectbox.removeChild(selectbox.options[0]);
remove() selectbox.remove(0);
选项设置为null selectbox.options[0] = null;
表单序列化
富文本编辑(该功能通过包含空HTML文档的iframe元素来实现) designMode属性 contenteditable属性
操作富文本 document.execCommand() P439
富文本选区
表单与富文本
第16章 HTML5脚本编程
16.1跨文档消息传递
传送 postMessage()
接收事件 onmessage
16.2 原生拖放
16.2.1 拖放事件
在被拖动的元素上触发
(1)dragstart
(2)drag
(3)dragend
在放置的目标上触发
(1)dragenter
(2)dragover
(3)dragleave 或drop
16.2.2自定义放置目标
16.2.3 dataTransfer对象 setData() getData()
event.dataTransfer.setData('text', 'some text');
event.dataTransfer.getData('text')
16.2.4 transfer 对象的两个属性 dropEffect effectAllowed 通过它来确定被拖放元素以及作为放置目标元素能接受什么操作
16.2.5 可拖动
属性 draggable
16.2.6 其它成员
addElement(element)
clearData(format)
setDragImage(element, x, y)
types
16.3媒体元素
<video> <audio> <source>
16.3.1 属性 p487
16.3.2 事件
16.3.3 自定义媒体播放器
16.3.4 检测解码器的支持情况
16.3.5 Audio 类型
16.4 历史状态管理
pushState() 创建新的历史状态
replaceState() 不会在历史状态中创建新状态,只会重写当前状态
事件 popstate

转载于:https://juejin.im/post/5c91eac66fb9a070f1257992

javascript 高级程序设计(第三版)读后归纳相关推荐

  1. JavaScript高级程序设计第三版.CHM【带实例】

    从驱动全球商业.贸易及管理领域不计其数的复杂应用程序的角度来看,说 JavaScript 已经成为当今世界上最流行的编程语言一点儿都不为过. JavaScript 是一种非常松散的面向对象语言,也是 ...

  2. javascript高级程序设计 第三版

    网盘地址 提取码:vh81 笔记 第二章 2.1script标签 <script>元素属性:async.charset.defer.language.src.type async和defe ...

  3. JavaScript高级程序设计第三版 第3章 基本概念

    第3章 基本概念 3.1 语法 3.1.1 区分大小写 3.1.2 标识符 3.1.3 注释 3.1.4 严格模式 3.1.5 语句 3.2 关键字和保留字 3.3 变量 3.4 数据类型 3.4.1 ...

  4. 10.1.2 Document类型【JavaScript高级程序设计第三版】

    JavaScript 通过Document 类型表示文档.在浏览器中,document 对象是HTMLDocument(继承自Document 类型)的一个实例,表示整个HTML 页面.而且,docu ...

  5. 13.4.3 鼠标与滚轮事件【JavaScript高级程序设计第三版】

    鼠标事件是Web 开发中最常用的一类事件,毕竟鼠标还是最主要的定位设备.DOM3 级事件中定义了9 个鼠标事件,简介如下. click:在用户单击主鼠标按钮(一般是左边的按钮)或者按下回车键时触发.这 ...

  6. DOM2和DOM3——JavaScript高级程序设计第三版第12章知识总结

    DOM2和DOM3

  7. JavaScript高级程序设计第四版学习--第二十四章

    title: JavaScript高级程序设计第四版学习–第二十四章 date: 2021-5-31 10:46:01 author: Xilong88 tags: JavaScript 本章内容: ...

  8. Js高级程序设计第三版学习(十二章)

                                  Js高级程序设计第三版学习(十二章) 第十二章 DOM2和DOM3   1.样式: 访问样式属性 任何支持style特性的HTML元素都有一 ...

  9. JavaScript高级程序设计 第4版----String

    JavaScript高级程序设计 第4版----String 文章目录 JavaScript高级程序设计 第4版----String 1.JavaScript 字符 2.字符串操作方法 1.conca ...

  10. JavaScript高级程序设计[第3版]

    JavaScript高级程序设计[第3版] package xyz.huning.toolkit.pdf;import java.io.FileOutputStream; import java.io ...

最新文章

  1. android window 大小,android popupWindow 中宽度莫名很大,求帮助?
  2. bigqury 认证
  3. iptables命令结构之命令
  4. [置顶]       编写自己的JQUERY插件
  5. 介绍一下 information_schema 库
  6. 【NOIP2016】换教室
  7. julia有没有希望超越python_未来5-10年,Julia会替代Python成为量化投资热门语言吗?...
  8. ajax连接mysql数据库查询数据_ajax动态查询数据库数据并显示在前台的方法
  9. MPLS virtual private network Internet接入
  10. APACHE 在windows下的配置
  11. Springboot图片上传 百度ocr文字识别提取
  12. https请求,报错Could not establish trust relationship for the SSL/TLS secure channel
  13. 为什么我坚定看好分布式存储
  14. 论文笔记——News Recommendation with Topic-Enriched Knowledge Graphs
  15. ivms虚拟服务器,ivms监控服务器地址
  16. spring 启动日志报 DEBUG BeanNameUrlHandlerMapping:86 - Rejected bean name 'org.springframework.web.servl
  17. 【转载】HTML5新特性浅谈
  18. 布隆过滤器误判怎么办为什么会_五分钟小知识:布隆过滤器原理和应用分析
  19. 图说卡尔曼滤波(正在进行时)
  20. Java限流策略与算法

热门文章

  1. 我的sulley安装过程
  2. Sulley vmcontrol.py 使用注意
  3. Java调用热敏打印机
  4. 易道云控数字引擎下的企业协同办公
  5. 蓝桥杯:真题 回文数字
  6. ubuntu 20.04 安装谷歌输入法
  7. python3.7通过itchat方式登录微信给好友发送天气信息
  8. 框架集frames笔记
  9. 怎么将计算机的触摸鼠标锁定,戴尔笔记本触摸鼠标怎么锁定
  10. 最小二乘法和岭回归区别