Javascript 的一点复习

今天看了些javascript(js)的东西,几天不写代码竟有些忘记,所以只当是复习罢了.

1.js中的引入可以通过<script>或者包含.js文件引入.当然还可以通过 javascript: 来引入.其中最后一中是js中的URL。所以在web中能够引入URL的地方也可以引入 javascript: .包括浏览器的地址栏.这个语句的执行结果作为

返回值写入当前的文档.可以通过void 0来解决,使其无返回值.

2. 涉及到用户的交互问题.所以就有js动态生成元素和动态寻找元素的时候.但是有时候却会发生当js执行时他所引用的DOM元素还没有生成.所以我们有时要判断元素是否为null. js的定义尽量放在头部,调用尽量放在所用到的元素被

html parser分析之后.这样能够减少对象不存在的问题. onload放生在整个页面已经被parser执行之后执行,所以有时候也是一个不错的地方.如果说页面上有frameset的话,而你的某一个frame的代码引用到或者有一定的依赖关系,那么我们不能保证哪个frame会被先加载完成.或则说那个onload线被执行.但是他们的top window的onload会被最后执行时可以确定的.

3.onload常发生在一个页面跳转到另一个页面的情况.而onunload放生在一个页面跳转之前.

4.我们平时在一个DOM中定一个全局变量当被加载后我们可以通过当前dom所在的window对象的相应的属性来引用.也即它变成了window的一个属性.如果有多个frame或iframe的话,每一个都有一个window对象.他们之间可以通过dom的层次来互相作用.如果引用兄弟或者父窗口可以通过parent.frame[n]来解决.也可以是top.不过top指的是Window--最上层的window对象.很多frames都可以寄居在一个Window中.

5.某些提示box可以通过alert(),confirm(),prompt()来实现.但是如果在程序的执行过程中出现有可能会导致程序的执行暂停,所以在页面的加载过程中应该想是否要这样做.alert()一般不会阻止页面的继续加载.

6.setTimeout()会在一个指定的时间片到期后执行给定的代码.但是不会循环执行.所以你需要在你的代码里面在显示调用setTimeout()来实现定时循环执行机制.setInterval()功能类似,可以作为setTimeout的替代品.不同地方是不需要再你的代码中再显示调用它.

7.window.onerror ,当页面出错时会执行这个函数(如果错误没有被catch的话),所以可以通过这个给用户更好的提示以及把相应的错误信息发到server进行统计来改进程序.

8.当我么想要打开一个窗口时可以通过open()方法.但是应该明确指明window.open().因为变量的寻找遵循范围链的原则.而document也有open().所以我们最好明确指明哪个是我们想要的. window.open()可以通过参数指明你想要的窗口的类型.可以通过window.close()来关闭窗口,因为每个窗口都回又一个window,但是这个window对象并不一定会被GC.例如有其他frame的引用时.但是尽量不用这个对象的属性.可以通过window.closed来判断一个窗口是否已经被关闭.

9.window的location对象对于当前window所引用的资源含有很多部分的属性来描述各个部分.document的location是一个字符串,和document的URL功能一样,不过前者已经不是W3C推荐的啦.我们想要加载一个页面

页面可以通过window.location的两个方法reload()(重新加载此页面)和replace(URL)来进行.replace之后的web不可以通过BackButton返回,与直接向window的location的属性直接赋值不同(可以通过BackButton返回引用页)

10.window.history对象可以实现浏览当前窗口的历史页面.但是因为安全的缘故.你不能改变它的内容,不过可以通过back()和forward()来跳转到历史页面,也可以通过go().只不过它可以通过提供一个Integer来指明跳转的页数.

11.基于DOM的层次,我们可以有多个frames,所以可以通过parent.frame[i]来引用某一个frame.但是这个程序的可读性带来了一点问题.所以你个通过在创建frame时指定name,这样就可以通过parent.name来引用了.这个规则同样适用于DOM的其他的基本数组类型的属性,比如说Form和Imag等.

12.如果在一个frame里面定义了一个func,但是在另一个frame里面进行调用,那么此func的执行环境还是他被定义的页面而不是被调用的frame的执行环境.

13.如果一个页面还没有加载完成时执行document.write()会把内容写到执行之后parser的html中.但是如果说已经把页面加载完了,那么write()会把内容覆盖当前的document.这种问题常见于在事件处理代码中.所以尽量不要在相应时间中这样写.当通过document.open()打开一个document,然后写入内容.最后如果没有内容可写了,我们应该通过document.close()关闭它.这有点像buffer.如果没有关闭并且再向此document写的话会附加在其后.如果close()掉的话则会把当前的内容覆盖掉,而写入最后写的内容.

14.对于document 的bgColor,fgColor等颜色尽量通过html code来设置并且不要再在其他地方修改.

15.我们可以通过img的事件处理来实现动态变换图片.但是为了让用户有更好的体验,我们最好能让最初没有显示的图片先被加载到浏览器里面,这可以通过体检创建Image()对象并且把相应的href指明相应的资源来实现.

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值