Javascript几个神奇的点
window对象的使用
1.setInterval()和setTimeout()的区别
刚开始的时候觉得这两个是一样的,后来看了书偶然间才发觉原来也是有区别的:setInterval()是在执行一件事情的时候就开始计时了,而setTimeout是在事件完成之后才开始计时的,这样的话setInterval()在执行事件的时间超出它间隔的时间时就会容易出现混乱的局面吧,导致事件同时发生的情况,这样看来我觉得还是setTimeout会比较靠谱一些吧
setInterval(function,interval[,arg1,arg2,......argn])
setInterval(object,methodName,interval[,arg1,arg2,.....argn])setTimeout (表达式,延时时间)
setTimeout(表达式,交互时间)
2.showModalDialog()和window.open()和location.assign()的区别
初次认识的时候觉得很神奇啊,这三个函数都是可以出现一个新的网页的,但是呢,使用showModalDialog()是打开一个新窗口类型的对话框,并且这个对话框是可以来加载网页的,另外,这个对话框仍是允许用户操作它的窗口。使用方法如下
vReturnValue = window.showModalDialog(sURL[,vAruguments]
window.showModalDialog("myDialog.html");
window.open()是在原网页的基础上重新打开一个网页,并返回对窗口的引用,与window.close()相对应,在加载文档的时候也可以用window.stop()来停止加载文档。使用方法跟showModalDIalog十分相似,或者说就是直接在括号内输入URL即可。
location.assign()也是差不多,就是重新加载网页,在原网页的界面内跳转到另一个界面。
这三个方法我觉得最大的区别应该就是交互与网页出现形式的不同吧。
3.history的对象和属性
在一般的浏览器的左上角都会有前进后退的箭头让我们选择,而这些属性就是包含在window.history()中的:
(1) back()方法,表示后退,语法格式如下:
history.back([num])
参数num表示后退的步数,不写的话则默认为是后退一步;
(2) forward()方法,前进的意思,无参数
history.forward();
(3) go()方法,可以跳转到一个特定的地址
history.go([location]);参数location既可以是一个整数也可以是一个URL字符串,如果是一个整数,则表示相对于浏览的前进(正数)或者后退(负数),若是一个字符串,则表示历史列表的某个URL。当location为0的时候也可以理解为刷新本页面,即为location.reload();
4.为什么定义的字符串可以一整个改变却不能逐个改变其内部元素?
var mychar="string" ; mychar[2]="a";
document.write(mychar[2]);
为什么这样输出的结果还是"r“呢?
回答:mychar是基本类型,mychar.length会让javascript自动的创建一个对象,即 var str=new String("String");然后再调用其方法和属性,但该对象执行后马上被销毁,当再次需要时才会重新创建,因此,改变的mychar[2]对象在执行完成之后就会被销毁,当然不能保存下来啦~