javascript学习笔记6-9章
1、 break语句使得代码的执行完全从switch语句中跳出来,并继续执行switch语句结束花括号之后的代码。
2、 for…in循环遍历的一个对象的所有属性,并返回属性自身的名称。
3、 for each…in循环是新推出的,因此internet Exeplorer 8及早期版本不支持,但Firefox2.0及后来版本都支持它。for…in结构返回属性,for each…in循环返回属性值。
4、 prompt()函数来获取用户输入。
5、 匿名函数经常被用于面向对象的javascript并且被用作事件句柄。
6、 在javascript中,嵌套函数可以访问外部函数的变量,闭包指的是在函数正常运行环境外还存在变量。闭包是意外创建的,如果他们没有得到正确的处理,将在IE中一起内存泄露问题。闭包可用来模拟对象中的私有方法,并且还具有其他用途,比如事件句柄,闭包是javascript最强大、最先进的概念之一。可以在http://msdn.microsoft.com/en-us/scriptjunkie/ff696765.aspx .
7、 不要使用confirm()函数代替web表单获取用户输入,web表单对于导航更适合,并且能使访问者更愉悦。
8、 编程范式描述解决所遇问题的方法。有超过25中不同的编程范式。如:函数式编程、事件驱动编程、面向组件的编程、和结构化的编程。
9、 this关键字指的是当前函数或属性归属的对象。在对象环境中,关键字this指的是调用对象,在函数调用中,关键字this可用来设置对象属性。
10、 构造模式很有用但是会导致每次实例化对象时都会创建相同方法的多个实例。一个更好更高级的创建多个对乡的方法是使用原型模式。关于原型模式的更多信息,参见:http://msdn.microsoft.com/en-us/magazine/cc163419.aspx.???????
11、javascript中创建对象的两种方法:var star =new Object;或var star={};
12、查找属性是否存在:“属性“ in 对象名 或 !==;
13、数组的方法:concat()、join()
14、join()方法将数组中的所有元素转换为一个连接的字符串。concat()虽然连接但是不执行任何类型的转换。Join()方法还允许我们指定连接分隔符。Join()方法是一种不需要创建完整for循环结构查看数组内容的快速方法。
15、使用push和pop添加和删除元素 concat()返回新连接的数组,而push()和pop()分别添加和删除元素。push()方法返回新数组的长度,pop()返回被删除的元素。方法push()和pop()在数组的末尾操作。
16、使用shift()和unshift()添加和删除元素 push()和pop()方法在数组的末尾操作,shift()和unshift()方法的功能与push()和pop()相同,只不过前者在数组的开始处操作。
17、使用slice返回数组的一部分 如果想返回数组的特定部分,slice()函数非常有用,但是必须十分小心,因为除非数组做一个副本,否则slice()会修改原始数组。
18、不能使用sort()方法位数字排序。
19、遍历数组最好使用跨浏览器的for方法。
20、数组对象的一些选择方法
方法 |
说明 |
相对ECMA-262第五版较新 |
reverse() |
反转元素的顺序 |
否 |
map() |
对每个数组项执行函数并返回一个数组 |
是 |
indexOf() |
返回参数出现的第一处索引值 |
是 |
lastIndexOf |
返回参数在数组中的最后一个索引值 |
是 |
every() |
只要函数返回true,则对每个数组项执行函数 |
是 |
filter() |
对每个数组项执行函数并返回一个数组,数组中只包含能使函数返回true的那些项 |
是 |
some() |
只要函数返回false,则对每个数组项执行函数 |
是 |
splice() |
在一个数组中插入或删除元素返回一个包含被删项的数组 |
否 |
21、encodeURI()方法接受包含不被给定URI方案允许的字符的URI(统一资源标示符)并且对他们编码以便他们根据标准可以使用。
22、encodeURI()和encodeURIComponent()方法都有相应的解码方法,分别是decodeURI()和decodeURIComponent()
23、eval()方法是javascript中可使用的最强大也最危险的方法之一。?????????
24、浏览器对象模型创建了对象的树型层级,其中的很多层级为javascript程序员提供了属性和方法。浏览器本身用一个名为window的对象表示,window对象的子对象有:document、frames、history、location、navigator、screen、self/window/parent.
25、window对象是一个全局对象,window对象的直接后代不需要window前缀,不过当处理window对象的直接后代以外的对象时,则需要在他们面前加上window对象的名字。
26、window对象的一些属性
属性 |
说明 |
closed |
窗口关闭时设置为true |
defaultStatus |
用来设置出现在浏览器状态栏中的默认文本 |
name |
窗口第一次打开时所设置的窗口名字 |
opener |
引用创建这个窗口的窗口 |
parent |
常常和帧一起使用,指创建特定窗口的窗口,或者该帧的上一级窗口 |
status |
常常用来设置当访问者悬停在链接这样的元素上的时侯状态栏中的文本 |
top |
最高或最顶层的父窗口 |
27、window对象的一些方法
方法 |
说明 |
addEventListener() |
跨浏览器(除ie之外)事件处理程序方法。 |
attachEvent() |
addEventListener()的ie版本。 |
blur() |
把键盘输入的焦点从浏览器窗口移开 |
focus() |
把键盘输入的焦点移动到浏览器窗口 |
close() |
关闭浏览器窗口 |
detachEvent() |
removeEventListener()的ie版本 |
removeEventListener() |
跨浏览器除ie之外的事件处理程序删除方法 |
open() |
打开一个窗口 |
print() |
导致调用浏览器的打印函数,其行为就像有人点击了浏览器的print按钮 |
28、window窗口移动和调整窗口大小的方法
方法 |
说明 |
moveBy() |
用来把窗口移动到一个相对位置 |
moveTO() |
用来把窗口移动到一个特定位置 |
resizeBy() |
用来按一相对量改变窗口大小 |
resizeTo() |
用来把窗口大小改变到一个特定大小 |
29、availHeight/availWidth属性返回屏幕的可用高度和宽度,即减去了其他像Window任务栏这样的控件所使用的空间。helight/width属性返回总的高度和宽度。
30、调用reload()方法。尽量在脚本内重载页面,而不要通过事件触发的函数调用,后者很可能会导致一个循环条件。