当前位置:文档之家› Javascript的部分对象详解

Javascript的部分对象详解

Javascript的部分对象详解
Javascript的部分对象详解

document 文挡对象- JavaScript脚本语言描述———————————————————————

注:页面上元素name属性和JavaScript引用的名称必须一致包括大小写否则会提示你一个错误信息“引用的元素为空或者不是对象”———————————————————————

对象属性

document.title //设置文档标题等价于HTML的title标签

document.bgColor //设置页面背景色

document.fgColor //设置前景色(文本颜色)

document.linkColor //未点击过的链接颜色

document.alinkColor //激活链接(焦点在此链接上)的颜色

document.vlinkColor //已点击过的链接颜色

document.URL //设置URL属性从而在同一窗口打开另一网页document.fileCreatedDate //文件建立日期,只读属性

document.fileModifiedDate //文件修改日期,只读属性

document.charset //设置字符集简体中文:gb2312

document.fileSize //文件大小,只读属性

document.cookie //设置和读出cookie ———————————————————————

常用对象方法

document.write() //动态向页面写入内容

document.createElement(Tag) //创建一个html标签对象

document.getElementById(ID) //获得指定ID值的对象

document.getElementsByName(Name) //获得指定Name值的对象document.body.appendChild(oTag) ———————————————————————

body-主体子对象

document.body //指定文档主体的开始和结束等价于body>/body> document.body.bgColor //设置或获取对象后面的背景颜色document.body.link //未点击过的链接颜色

document.body.alink //激活链接(焦点在此链接上)的颜色

document.body.vlink //已点击过的链接颜色

document.body.text //文本色

document.body.innerText //设置body>…/body>之间的文本document.body.innerHTML //设置body>…/body>之间的HTML代码document.body.topMargin //页面上边距

document.body.leftMargin //页面左边距

document.body.rightMargin //页面右边距

document.body.bottomMargin //页面下边距

document.body.background //背景图片

document.body.appendChild(oTag) //动态生成一个HTML对象

常用对象事件

document.body.onclick=”func()” //鼠标指针单击对象是触发document.body.onmouseover=”func()” //鼠标指针移到对象时触发

document.body.onmouseout=”func()” //鼠标指针移出对象时触发———————————————————————

document的属性和方法:

document.createElement(tagName) :文档对象上的createElement方法可以创建由tagName指定的元素.如果以串div作为方法参数,就会生成一个div 元素.

document.createTextNode(text) :文档对象的createTextNode方法会创建一个包含静态文本text的文本节点.

document.createAttribute(): 用指定的名字创建新的Attr节点.

document.createComment() :用指定的字符串创建新的Comment节点.

document.getElementById(): 返回文档中具有指定id的Element节点.

document .getElementsByTagName():返回文档中具有指定标记名的所有Element节点.返回为一Element节点数组;

节点的属性和方法:

.appendChild(childNode) :appendChild方法将指定的节点增加到当前元素的子节点列表(作为一个新的子节点).例如,可以增加一个option元素,作为select元素的子节点.

.getAttribute(name) :该方法用来获得元素中name属性的值.

.setAttribute(name,value) :该方法用来设置元素中name属性的值. .insertBefore(newNode,targetNode) :该方法将节点newNode作为当前元素的子节点插到targetNode子节点元素的前面.

.removeAttribute(name) :该方法从元素中删除属性name.

.removeChild(childNode) :该方法从元素中删除子元素childNode.

.replaceChild(newNode,oldNode) :该方法将节点oldNode替换为节点newNode.

.hasChildNodes() :该方法返回一个布尔值,指示元素是否有子元素.

.tagName :元素的标记名称,比如

元素为PHTML文档返回的tagName均为大写;

.getAttributeNode() :以Attr节点的形式返回指定属性的值;

.getElementsByTagName() :返回一个Node数组,包含具有指定标记名的所有Element节点的子孙节点,其顺序为在文档中出现的顺序.

.hasAttribute() :如果该元素具有指定名字的属性,则返回true;

.removeAttributeNode() :从元素的属性列表中删除指定的Attr节点. .setAttributeNode() :把指定的Attr节点添加到该元素的属性列表中..cloneNode(true) :复制当前节点,true表示复制当前节点以及它的所有子孙节点.

Node对象常用属性:

.attributes :如果该节点是一个Element,则以namedNodeMap形式返回该元素的属性.

.childNodes :以Node[]的形式存放当前节点的子节点.如果没有子节点,则返回空数组.

.firstChild :以Node的形式返回当前节点的第一个子节点.如果没有

子节点,则为null.

.lastChild :以Node的形式返回当前节点的最后一个子节点.如果没有子节点,则为null.

.nextSibling :以Node的形式返回当前节点的兄弟下一个节点.如果没有这样的节点,则返回null.

.previousSibling :以Node的形式返回紧挨当前节点,位于它之前的兄弟节点.如果没有这样的节点,则返回null.

.parentNode :以Node的形式返回当前节点的父节点.如果没有父节点,则返回null.

.nodeType :代表节点的类型.

.nodeName :节点的名字,Element节点则代表Element的标记名称. location-位置子对象

document.location.hash // #号后的部分

document.location.host // 域名+端口号//好像返回的是主机名localhost,没有返回端口号

document.location.hostname // 域名

document.location.href // 完整URL

document.location.pathname // 目录部分

document.location.port // 端口号

document.location.protocol // 网络协议(http:)

document.location.search // ?号后的部分

documeny.location.reload() //刷新网页

document.location.reload(URL) //打开新的网页

document.location.assign(URL) //打开新的网页

document.location.replace(URL) //打开新的网页———————————————————————

selection-选区子对象

document.selection

例如:

请选中这里的部分文字。

selection的createRange方法

document.selection.createRange() 根据当前文字选择返回TextRange 对象,或根据控件选择返回ControlRange 对象。

配合execCommand,在HTML 编辑器中很有用,比如:文字加粗、斜体、复

制、粘贴、创建超链接等。

这些好像都是只有在IE下才能实现。。———————————————————————

images集合(页面中的图象)

a)通过集合引用

document.images //对应页面上的img标签

document.images.length //对应页面上img标签的个数document.images[0] //第1个img标签

document.images[i] //第i-1个img标签

b)通过name属性直接引用

img

document.images.oImage //https://www.doczj.com/doc/9312337379.html,属性

c)引用图片的src属性

document.images.oImage.src //https://www.doczj.com/doc/9312337379.html,属性.src d)创建一个图象

var oImage

oImage = new Image()

document.images.oImage.src=”1.jpg”

同时在页面上建立一个img /标签与之对应就可以显示———————————————————————-

forms集合(页面中的表单)

a)通过集合引用

document.forms //对应页面上的form标签

document.forms.length //对应页面上/formform标签的个数document.forms[0] //第1个/formform标签

document.forms[i] //第i-1个/formform标签

document.forms[i].length //第i-1个/formform中的控件数document.forms[i].elements[j] //第i-1个/formform中第j-1个控件b)通过标签name属性直接引用

/formform

document.Myform.myctrl //document.表单名.控件名

c)访问表单的属性

document.forms[i].name //对应form name>属性

document.forms[i].action //对应/formform action>属性document.forms[i].encoding //对应/formform enctype>属性document.forms[i].target //对应/formform target>属性document.forms[i].appendChild(oTag) //动态插入一个控件document.all.oDiv //引用图层oDiv

document.all.oDiv.style.display=”" //图层设置为可视document.all.oDiv.style.display=”none” //图层设置为隐藏document.getElementId(”oDiv”) //通过getElementId引用对象document.getEl ementId(”oDiv”).style=”"

document.getElementId(”oDiv”).display=”none”

/*document.all表示document中所有对象的集合

只有ie支持此属性,因此也用来判断浏览器的种类*/

图层对象的4个属性

document.getElementById(”ID”).innerText //动态输出文本

document.getElementById(”ID”).innerHTML //动态输出HTML

document.getEleme ntById(”ID”).outerText //同innerText

document.getElementById(”ID”).outerHTML //同innerHTML

js-window对象的方法和属性资料收藏

熟练window对象的open、close、alert、confirm、prompt、setTimeout、clearTimeout、setInterval、clearInterval、moveBy、resizeBy、scrollBy方法的使用

掌握window对象的moveTo、resizeTo、scrollTo、print方法的使用

熟练掌握window对象的status、location、name、self、opener属性的使用Window对象是客户端javascript最高层对象之一,只要打开浏览器窗口,不管该窗口中是否有打开的网页,当遇到BODY、FRAMESET或FRAME元素时,都会自动建立window对象的实例。另外,该对象的实例也可由window.open()方法创建。由于window对象是其它大部分对象的共同祖先,在调用window对象的方法和属性时,可以省略window对象的引用。例如:window.document.write()可以简写成:document.write()。在窗口中觖发本窗口对象的任何方法和属性时可以省去窗口的实例名称。例如给当前的myWin 窗口设置status属性时,可以只用status而不用myWin.status。但是,在事件处理中调用location属性、close()方法或open()方法时必须使用实例名称。

6-2-1 window对象的方法

window对象有以下方法:

open

close

alert

confirm

prompt

setTimeout

clearTimeout

setInterval

clearInterval

moveBy

moveTo

resizeBy

resizeTo

scrollBy

scrollTo

find

back

forward

home

stop

print

blur

focus

captureEvent

enableExternalCapture

disableExternalCapture

handleEvent

releaseEvent

routeEvent

scroll

1. open方法

语法格式:

window.open(URL,窗口名称,窗口风格)

功能:打开一个新的窗口,并在窗口中装载指定URL地址的网页。

说明:

open方法用于打开一个新的浏览器窗口,并在新窗口中装入一个指定的URL地址;

open方法在打开一个新的浏览器窗口时,还可以指定窗口的名称(第二个参数);open方法在打开一个新的浏览器窗口时,还可以指定窗口的风格(第三个参数),

窗口风格有以下选项,这些选项可以多选,如果多选,各选项之间用逗号分隔:toolbar:指定窗口是否有标准工具栏。当该选项的值为1或yes时,表示有标准工具栏,当该选项的值为0或no时,表示没有标准工具栏;

location:指定窗口是否有地址工具栏,选项的值及含义与toolbar相同;directories:指定窗口是否有链接工具栏,选项的值及含义与toolbar相同;status:指定窗口是否有状态栏,选项的值及含义与toolbar相同;

menubar:指定窗口是否有菜单,选项的值及含义与toolbar相同;scrollbar:指定当前窗口文档大于窗口时是否有滚动条,选项的值及含义与toolbar相同;

resizable:指定窗口是否可改变大小,选项的值及含义与toolbar相同;width:以像素为单位指定窗口的宽度,已被innerWidth取代;

height:以像素为单位指定窗口的高度,已被innerHeight取代;outerWidth:以像素为单位指定窗口的外部宽度;

outerHeight:以像素为单位指定窗口的外部高度;

left:以像素为单位指定窗口距屏幕左边的位置;

top:以像素为单位指定窗口距屏幕顶端的位置;

alwaysLowered:指定窗口隐藏在所有窗口之后,选项的值及含义与toolbar相

同;

alwaysRaised:指定窗口浮在所有窗口之上,选项的值及含义与toolbar相同;dependent:指定打开的窗口为当前窗口的一个子窗口,并随着父窗口的关闭而关闭,选项的值及含义与toolbar相同;

hotkeys:在没有菜单栏的新窗口中设置安全退出的热键,选项的值及含义与toolbar相同;

innerHeight:设定窗口中文档的像素高度;

innerWidth:设定窗口中文档的像素宽度;

screenX:设定窗口距离屏幕左边界的像素长度;

screenY:设定窗口距离屏幕上边界的像素长度;

titleBar:指明标题栏是否在新窗口中可见,选项的值及含义与toolbar相同;z-look:指明当窗口被激活时,不能浮在其它窗口之上,选项的值及含义与toolbar 相同。

open方法返回的是该窗口的引用。

小技巧:该方法经常用于在打开一个网页时自动打开另一个窗口。

例6-2-1:编制一个小程序,它用于在打开当前窗口时自动打开另一个窗口,要

求该窗没有标准工具栏、地址栏、链接工具栏、菜单栏,但有状态栏,窗口中打

开的网页地址为:https://www.doczj.com/doc/9312337379.html,。

2. close方法

语法格式:

window.close()

功能:close方法用于自动关闭浏览器窗口。

3. alert方法

语法格式:

window.alert(提示字符串)

功能:弹出一个警告框,在警告框内显示提示字符串文本。

4. confirm方法

语法格式:

window.confirm(提示字符串)

功能:显示一个确认框,在确认框内显示提示字符串,当用户单击“确定”按钮时该方法返回true,单击“取消”时返回false。

5. prompt方法

语法格式:

window.prompt(提示字符串,缺省文本)

功能:显示一个输入框,在输入框内显示提示字符串,在输入文本框显示缺省文

本,并等待用户输入,当用户单击“确定”按钮时,返回用户输入的字符串,当

单击“取消”按钮时,返回null值。

6. setTimeout方法

语法格式:

window.setTimeout(代码字符表达式,毫秒数)

功能:定时设置,当到了指定的毫秒数后,自动执行代码字符表达式。

7. clearTimeout方法

语法格式:

window.clearTimeout(定时器)

功能:取消以前的定时设置,其中的参数是用setTimeout设置时的返回值。

8. setInterval方法

语法格式:

window.setInterval(代码字符表达式,毫秒数)

功能:设定一个时间间隔后(第二个参数),反复执行“代码字符表达式”的内容

9. clearInterval方法

语法格式:

window.clearInterval(时间间隔器)

功能:取消setInterval设置的定时。其中的参数是setInterval方法的返回值。

10. moveBy方法

语法格式:

window.moveBy(水平位移量,垂直位移量)

功能:按照给定像素参数移动指定窗口。第一个参数是窗口水平移动的像素,第

二个参数是窗口垂直移动的像素。

11.moveTo方法

语法格式:

window.moveTo(x,y)

功能:将窗口移动到指定的指定坐标(x,y)处。

12. resizeBy方法

语法格式:

window.resizeBy(水平,垂直)

功能:将当前窗口改变指定的大小(x,y),当x、y的值大于0时为扩大,小于0时

为缩小。

13. resizeTo方法

语法格式:

window.resizeTo(水平宽度,垂直宽度)

功能:将当前窗口改变成(x,y)大小,x、y分别为宽度和高度。

14. scrollBy方法

语法格式:

window.scrollBy(水平位移量,垂直位移量)

功能:将窗口中的内容按给定的位移量滚动。参数为正数时,正向滚动,否则反

向滚动。

15. scrollTo方法

语法格式:

window.scrollTo(x,y)

功能:将窗口中的内容滚动到指定位置。

16.find方法

语法格式:

window.find()

功能:当触发该方法时,将弹出一个“find”(查找)对话窗口,并允许用户在触

发find方法的页面中查找一个字符串。

注:该属性在IE5.5及Netscape6.0中都不支持。

17. back方法

语法格式:

window.back()

功能:模拟用户点击浏览器上的“后退”按钮,将页面转到浏览器的上一页。说明:仅当当前页面存在上一页时才能进行该操作。

注:IE5.5不支持该方法,Netscape6.0支持。

18. forward方法

语法格式:

window.forward()

功能:模拟用户点击浏览器上的“前进”按钮,将页面转到浏览器的下一页。说明:仅当当前页面存在下一页时才能进行该操作。

注:IE5.5不支持该方法,Netscape6.0支持。

19. home方法

语法格式:

window.home()

功能:模拟用户点击浏览器上的“主页”按钮,将页面转到指定的页面上。注:IE5.5不支持该方法,Netscape6.0支持。

20. stop方法

语法格式:

window.stop()

功能:模拟用户点击浏览器上的“停止”按钮,终止浏览器的下载操作。

注:IE5.5不支持该方法,Netscape6.0支持。

21. print方法

语法格式:

window.print()

功能:模拟用户点击浏览器上的“打印”按钮,通知浏览器打开打印对话框打印

当前页。

22. blur方法

语法格式:

window.blur()

功能:从窗口中移出焦点。当与focus方法合用时必须小心,因为可能导致焦点

不断移进移出。

23. focus方法

语法格式:

window.focus()

功能:使窗口中得到焦点。当与blur方法合用时必须小心,因为可能导致焦点不

断移进移出。

24. captureEvent方法

语法格式:

window.captureEvent(Event)

window.captureEvent(事件1|事件2|...|事件n)

功能:捕捉指定参数的所有事件。由于能够捕获哪些由本地程序自己处理的事件

,所以程序员可以随意定义函数来处理事件。如果有多个事件需要捕捉,各事件

之间用管道符“|”隔开。可捕捉的事件类型如下:

Event.ABORT

Event.BLUR

Event.CHANGE

Event.CLICK

Event.DBLCLICK

Event.DRAGDROP

Event.ERROR

Event.FOCUS

Event.KEYDOWN

Event.KEYPRESS

Event.KEYUP

Event.LOAD

Event.MOUSEDOWN

Event.MOUSUEMOVE

Event.MOUSEOUT

Event.MOUSEOVER

Event.MOUSEUP

Event.MOVE

Event.RESET

Event.RESIZE

Event.SELECT

Event.SUBMIT

Event.UNLOAD

25. enableExternalCapture事件

语法格式:

window.enableExternalCapture(event)

功能:enableExternalCapture方法用于捕捉通过参数传入的外部事件。

26. disableExternalCapture事件

语法格式:

window.disableExternalCapture()

功能:取消enableExternalCapture方法的设置,终止对外部事件的捕捉。

27. handleEvent事件

语法格式:

window.handleEvent(event)

功能:触发指定事件的事件处理器。

28. releaseEvent事件

语法格式:

window.releaseEvent(event)

window.releaseEvent(事件1|事件2|...|事件n)

功能:释放通过参数传入的已被捕捉的事件,这些事件是由

window.captureEvent方法设置的,可释放的事件与captureEvent相同。

29. routeEvent事件

语法格式:

window.releaseEvent(event)

功能:把被捕捉类型的所有事件转交给标准事件处理方法进行处理,可转交的事

件与captureEvent相同。

30 scroll事件

语法格式:

window.scroll(X坐标,Y坐标)

功能:将窗口移动到指定的坐标位置。

6-2-2 window对象的属性

window对象具有如下属性:

status

statusbar

statusbar.visible

defaultstatus

location locationbar locationbar.visible self

name

closed

frames

frames.length length document history innerHeight innerWidth menubar menubar.visible opener outerHeight outerWidth pageXOffset pageYOffset parent personalbar

personalbar.visible

scrollbar

scrollbar.visible

toolbar

toolbar.visible

top

1. status属性

语法格式:

window.status=字符串

功能:设置或给出浏览器窗口中状态栏的当前显示信息。

小技巧:可以使用该属性设置浏览器窗口状态栏信息。

2. statusbar属性

语法格式:

window.statusbar.属性

功能:statusbar属性本身也是一个对象,用于访问它自已的visible属性从而确定状态栏是否可见。

注:IE5.5浏览器不支持该属性。

3. statusbar.visible属性

语法格式:

window.statusbar.visible

功能:检查状态栏是否可见,如果可见则返回true,反之返回false。

注:IE5.5浏览器不支持该属性。

4. defaultstatus属性

语法格式:

window.defaultstatus[=字符串]

功能:defaultstatus属性值是浏览器窗中状态栏的默认显示信息。

5.location属性

语法格式:

window.location=URL

功能:给出当前窗口的URL信息或指定打开窗口的URL。

6. locationbar属性

语法格式:

window.locationbar.属性

功能:locationbar属性也可以看成是一个子对象,这个属性用来获取它自已的

visible属性来确定位置栏是否可见。

到目前为止,该属性只有一个子属性:visible。

注:IE5.5不支持该属性。

7. locationbar.visible属性

语法格式:

window.locationbar.visible

功能:返回位置栏是否可见,如果可见返回true,反之返回false。

注:IE5.5不支持该属性。

8. self属性

语法格式:

window.self.方法

window.self.属性

功能:该属性包含当前窗口的标志,利用这个属性,可以保证在多个窗口被打开

的情况下,正确调用当前窗口内的函数或属性而不会发生混乱。

9. name属性

语法格式:

https://www.doczj.com/doc/9312337379.html,=名称

功能:返回窗口名称,这个名称是由window.open()方法创建新窗口时给定的。

在javascript1.0版本中,这个属性只能用于读取窗口名称,而到了

javascript1.1版本时,可以用这个属性给一个不是用window.open()方法创建的

窗口指定一个名称。

10. closed属性

语法格式:

window.closed

功能:closed属性用于返回指定窗口的实例是否已经关闭,如果关闭,返回true ,反之返回flase。

11. frames属性

语法格式:

window.frames["框架名称"]

window.frames[数值]

功能:frames属性是一个数组,用来存储文档中每一个由元素创建的子窗口(框

架)实例,其中的下标即可以是次序号也可以是用FRAME元素的NAME属性指定的名

称来得到并使用。

12. frames.length属性

语法格式:

window.frames.length

功能:frames.length属性用于给出文档中子窗口(框架)实例的个数。

13. length属性

语法格式:

window.length

功能:length属性返回一个窗口内的子窗口数目,该属性与

window.frame.length属性的值相同。

14. document属性

语法格式:

window.document.事件

window.document.方法

window.document.属性

功能:window对象的子对象document是javascript的核心对象,在脚本中遇到

BODY元素时创建一个实例。

15. history属性

语法格式:

window.history[数值]

window.history.方法()

window.history.属性

window对象的子对象history是javascript的核心对象之一,该属性包含了一个

已访问过页面的名称和URL的数组。

16. innerHeight属性

语法格式:

window.innerHeight=数值

功能:返回或指定浏览器窗口中文档的像素高度,这个高度不包括任何工具栏和

组成窗口的页面修饰高度。

注:IE5.5不支持该属性。

17. innerWidth属性

语法格式:

window.innerHeight=数值

功能:返回或指定浏览器窗口中文档的像素宽度,这个宽度不包括任何工具栏和

组成窗口的页面修饰宽度。

注:IE5.5不支持该属性。

18. menubar属性

语法格式:

window.menubar.属性

功能:menubar属性也可以看成是一个子对象,这个属性用来获取它自已的

visible属性来确定菜单栏是否可见。

到目前为止,该属性只有一个子属性:visible。

注:IE5.5不支持该属性。

19. menubar.visible属性

语法格式:

window.menubar.visible

功能:menubar.visible属性用于返回菜单栏是否可见,如果可见返回true,反

之返回false。

注:IE5.5不支持该属性。

20. opener属性

语法格式:

window.opener

window.opener.方法

window.opener.属性

功能:opener属性与打开该窗口的父窗口相联系,当访问子窗口中operer属性时

,返回的是父窗口。通过该属性,可以使用父窗口对象中的方法和属性。

21. outerHeight属性

语法格式:

window.outerHeight

功能:outerHeight属性用于访问浏览器窗口的像素高度,该高度包括工具栏和

装饰边的高度。

注:IE5.5不支持该属性。

22. outerWidth属性

语法格式:

window.outerWidth

功能:outerWidth属性用于访问浏览器窗口的像素宽度,该宽度包括工具栏和装

饰边的宽度。

注:IE5.5不支持该属性。

23. pageXOffset属性

语法格式:

window.pageXOffset=数值

功能:指定浏览器窗口中文档左上角在窗口中的当前水平像素位置。在利用moveTo移动之前,可以通过该属性来决定是否需要移动窗口。因为该属性返回了

可见文档相对整个页面的当前位置。

注:IE5.5不支持该属性。

24. pageYOffset属性

语法格式:

window.pageYOffset=数值

功能:指定浏览器窗口中文档左上角在窗口中的当前垂直像素位置。在利用moveTo移动之前,可以通过该属性来决定是否需要移动窗口。因为该属性返回了

可见文档相对整个页面的当前位置。

注:IE5.5不支持该属性。

25. parent属性

语法格式:

window.parent.frames[数值]

window.parent.framesName

功能:访问各个子窗口(多框架)所在的父窗口。

26. personalbar属性

语法格式:

window.personalbar.属性

功能:personalbar属性本身也是一个对象,用于访问其自身的visible属性来确定个人栏是否可见。

JavaScript面向对象简介

JavaScript面向对象简介 JavaScript 的核心是支持面向对象的,同时它也提供了强大灵活的OOP 语言能力。本文从对面向对象编程的介绍开始,带您探索JavaScript 的对象模型,最后描述 JavaScript 当中面向对象编程的一些概念。 复习JavaScript 如果您对JavaScript 的概念(如变量、类型、方法和作用域等)缺乏自信,您可以在重新介绍JavaScript这篇文章里学习这些概念。您也可以查阅这篇JavaScript 1.5 核心指南。 面向对象编程 面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式。它使用先前建立的范例,包括模块化,多态和封装几种技术。今天,许多流行的编程语言(如Java,JavaScript,C#,C+ +,Python,PHP,Ruby 和Objective-C)都支持面向对象编程(OOP)。 面向对象编程可以看作是使用一系列对象相互协作的软件设计,相对于传统观念,一个程序只是一些函数的集合,或简单的计算机指令列表。在OOP中,每个对象能够接收邮件,处理数据和发送消息给其他对象。每个对象都可以被看作是一个独立的小机器有不同的作用和责任。 面向对象程序设计的目的是促进更好的编程灵活性和可维护性,并在大型软件工程中广为流行。凭借其十分注重的模块化,面向对象的代码开发更简单,往后维护更容易理解,使其自身能更直接的分析,编码,理解复杂的情况和过程,比非模块化编程方法省事。1

术语 Namespace 命名空间 允许开发人员在一个专用的名称下捆绑所有功能代码的容器。 Class 类 定义对象的特征。 Object 对象 类的一个实例。 Property 属性 对象的特征,比如颜色。 Method 方法 对象的能力,比如行走。 Constructor 构造函数 实例化时调用的函数。 Inheritance 继承 一个类可以继承另一个类的特征。 Encapsulation 封装 类定义了对象的特征,方法只定义了方法如何执行。 Abstraction 抽象 结合复杂的继承,方法,属性,一个对象能够模拟现实的模型。 Polymorphism 多态 多意为‘许多’,态意为‘形态’。不同类可以定义相同的方法或属性。更多关于面向对象编程的描述,请参照维基百科的面向对象编程。 原型编程

JavaScript复习题

复习题1 一、选择题 1、写“Hello World”的正确javascript语法是 A. ("Hello World") B. "Hello World" C. ("Hello World") D. ("Hello World") 2、JS特性不包括( ) A.解释性 B.用于客户端 C.基于对象 D.面向对象 3、下列JS的判断语句中( )是正确的 (i==0)(i=0) i==0 then i=0 then 4、下列JavaScript的循环语句中( )是正确的 (i<10;i++) (i=0;i<10) i=1 to 10 (i=0;i<=10;i++) 5、下列的哪一个表达式将返回假 A.!(3<=1) B.(4>=4)&&(5<=2) C.(“a”==”a”)&&(“c”!=”d”) D.(2<3)||(3<2) 6、下列选项中,( )不是网页中的事件 7、有语句“var x=0;while(____) x+=2;”,要使while循环体执行10次,空白处的循环判定式应写为: A.x<10 B. x<=10 <20 <=20 8、JS语句 var a1=10; var a2=20; alert(“a1+a2=”+a1+a2) 将显示( )结果 +a2=30 +a2=1020+a2=a1+a2 9、将字串s中的所有字母变为小写字母的方法是( ) 、以下( )表达式产生一个0~7之间(含0,7)的随机整数. . floor()*8) 11、产生当前日期的方法是( ) (); () Date() Now() 12、如果想在网页显示后,动态地改变网页的标题( ) A.是不可能的 B.通过(“新的标题内容”) C. 通过=(“新的标题内容”) D. 通过(“新的标题内容”) 13、某网页中有一个窗体对象,其名称是mainForm,该窗体对象的第一个元素是按钮,其名称是myButton,表述该按钮对象的方法是()

基于对象的JavaScript语言

基于对象的JavaScript语言 一、对象的基本结构 JavaScript中的对象是由属性(properties)和方法(methods)两个基本的元素的构成的。属性是对象在实施其所需要行为的过程中,实现信息的装载单位,从而与变量相关联;方法是指对象能够按照设计者的意图而被执行,从而与特定的函数相联。 二、引用对象的途径 一个对象要真正地被使用,可采用以下几种方式获得: 1、引用JavaScript内部对象;this window 2、由浏览器环境中提供;https://www.doczj.com/doc/9312337379.html, 3、创建新对象。new 这就是说一个对象在被引用之前,这个对象必须存在,否则引用将毫无意义,而出现错误信息。 三、有关对象操作语句 1、For...in语句 格式如下:For(对象属性名in 已知对象名) 说明:该功能是用于对已知对象的所有属性进行操作的循环控制。它是将一个已知对象的所有属性反复置给一个变量;而不是使用计数器来实现的。它的优点是无需知道对象中属性的个数即可进行操作。 2、with语句 使用该语句的意思是:在该语句体内,任何对变量的引用被认为是这个对象的属性,以节省一些代码。with object{ ...} 所有在with语句后的花括号中的语句,都是在后面object对象的作用域的。 3、this关键字 this是对当前的引用,在JavaScript由于对象的引用是多层次,多方位的,往往一个对象的引用又需要对另一个对象的引用,而另一个对象有可能又要引用另一个对象,这样有可能造成混乱,最后自己已不知道现在引用的那一个对象,为此JavaScript提供了一个用于将对象指定当前对象的语句this。 4、New运算符可以创建一个新的对象 格式:

Javascript鼠标触发事件大全

Javascript鼠标事件大全 一般事件 事件浏览器支持描述 onClick IE3|N2|O3 鼠标点击事件,多用在某个对象控制的范围内的鼠标点击 onDblClick IE4|N4|O 鼠标双击事件onMouseDown IE4|N4|O 鼠标上的按钮被按下了onMouseUp IE4|N4|O 鼠标按下后,松开时激发的事件 onMouseOver IE3|N2|O3 当鼠标移动到某对象范围的上方时触发的事件 onMouseMove IE4|N4|O 鼠标移动时触发的事件 onMouseOut IE4|N3|O3 当鼠标离开某对象范围时触发的事件 onKeyPress IE4|N4|O 当键盘上的某个键被按下并且释放时触发的事件.[注意:页面内必须有被聚焦的对象] onKeyDown IE4|N4|O 当键盘上某个按键被按下时触发的事件[注意:页面内必须有被聚焦的对象] onKeyUp IE4|N4|O 当键盘上某个按键被按放开时触发的事件[注意:页面内必须有被聚焦的对象] 页面相关事件 事件浏览器支持描述 onAbort IE4|N3|O 图片在下载时被用户中断 onBeforeUnload IE4|N|O 当前页面的内容将要被改变时触发的事件 onError IE4|N3|O 捕抓当前页面因为某种原因而出现的错误,如脚本错误与外部数据引用的错误 onLoad IE3|N2|O3 页面内空完成传送到浏览器时触发的事件,包括外部文件引入完成 onMove IE|N4|O 浏览器的窗口被移动时触发的事件onResize IE4|N4|O 当浏览器的窗口大小被改变时触发

JavaScript面向对象编程(最终版)

JavaScript面向对象编程 1、引言 JavaScript是一种解释性的,基于对象的脚本语言(an interpreted, object-based scripting language)。JavaScript 基于客户端运行,目前基本上所有的浏览器都支持JavaScript。1995年首次出现时,JavaScript的主要目的还只是处理一些输入的有效性验证,随着互联网的蓬勃发展,JavaScript的应用越来越广泛,特别是近几年AJAX技术(Asynchronous JavaScript and XML)的发展,更使JavaScript的应用达到了一个新的高度。在AJAX技术中,JavaScript是一项关键技术,请求的发送、接收、接收数据后的界面处理都需要使用JavaScript技术,这对JavaScript语言提出了新的需求,本文从JavaScript的基本特点出发,模拟出了面向对象编程的大部分特点,使JavaScript摆脱了以往脚本语言杂乱无章、难以阅读、难以维护的形象,而具有了面向对象特性,极大的方便了JavaScript的开发、维护,提高了软件开发效率。 2、JavaScript的基本特点 JavaScript是解释性的,基于对象的脚本语言。它有下面几个显著特点,这几个特点在后面的面向对象特性模拟中会反复用到,因此这里先详细说明这几个特点。 解释型语言:JavaScript是一种解释性语言,解释性语言相对于编译型语言,编译型语言必须先通过编译才能执行,而解释性语言不需要编 译,直接从上到下解释执行,一边解释一边执行,这就决定了解释性语 言的代码是有先后顺序的,需要执行的代码必须已经解释过。因此, JavaScript需要注意代码的先后顺序。

javascript键盘事件

主要分四个部分 第一部分:浏览器的按键事件 第二部分:兼容浏览器 第三部分:代码实现和优化 第四部分:总结 第一部分:浏览器的按键事件 用js实现键盘记录,要关注浏览器的三种按键事件类型,即keydown,keypress和keyup,它们分别对应onkeydown、onkeypress和onkeyup这三个事件句柄。一个典型的按键会产生所有这三种事件,依次是keydown,keypress,然后是按键释放时候的keyup。 在这3种事件类型中,keydown和keyup比较底层,而keypress比较高级。这里所谓的高级是指,当用户按下shift + 1时,keypress是对这个按键事件进行解析后返回一个可打印的“!”字符,而keydown和keyup只是记录了shift + 1这个事件。[1] 但是keypress只能针对一些可以打印出来的字符有效,而对于功能按键,如F1-F12、Backspace、Enter、Escape、PageUP、PageDown和箭头方向等,就不会产生keypress事件,但是可以产生keydown和keyup事件。然而在FireFox中,功能按键是可以产生keypress 事件的。 传递给keydown、keypress和keyup事件句柄的事件对象有一些通用的属性。如果Alt、Ctrl 或Shift和一个按键一起按下,这通过事件的altKey、ctrlKey和shiftKey属性表示,这些属性在FireFox和IE中是通用的。 第二部分:兼容浏览器 凡是涉及浏览器的js,就都要考虑浏览器兼容的问题。 目前常用的浏览器主要有基于IE和基于Mozilla两大类。Maxthon是基于IE内核的,而FireFox和Opera是基于Mozilla内核的。 2.1 事件的初始化 首先需要了解的是如何初始化该事件,基本语句如下: function keyDown(){} document.onkeydown = keyDown; 当浏览器读到这个语句时,无论按下键盘上的哪个键,都将呼叫KeyDown()函数。 2.2 FireFox和Opera的实现方法 FireFox和Opera等程序实现要比IE麻烦,所以这里先描述一下。 keyDown()函数有一个隐藏的变量--一般的,我们使用字母“e”来表示这个变量。 function keyDown(e) 变量e表示发生击键事件,寻找是哪个键被按下,要使用which这个属性: e.which

如何判断Javascript对象是否为空

如何判断Javascript对象是否存在 Javascript语言的设计不够严谨,很多地方一不小心就会出错。 举例来说,请考虑以下情况。 现在,我们要判断一个全局对象myObj是否存在,如果不存在,就对它进行声明。用自然语言描述的算法如下: if (myObj不存在){ 声明myObj; } 你可能会觉得,写出这段代码很容易。但是实际上,它涉及的语法问题,远比我们想象的复杂。Juriy Zaytsev指出,判断一个Javascript对象是否存在,有超过50种写法。只有对Javascript语言的实现细节非常清楚,才可能分得清它们的区别。 第一种写法 根据直觉,你可能觉得可以这样写: if (!myObj) {

myObj = { }; } 但是,运行这段代码,浏览器会直接抛出ReferenceError错误,导致运行中断。请问错在哪里? 对了,if语句判断myObj是否为空时,这个变量还不存在,所以才会报错。改成下面这样,就能正确运行了。 if (!myObj) { var myObj = { }; } 为什么加了一个var以后,就不报错了?难道这种情况下,if语句做判断时,myObj 就已经存在了吗? 要回答这个问题,就必须知道Javascript解释器的工作方式。Javascript语言是"先解析,后运行",解析时就已经完成了变量声明,所以上面的代码实际等同于:var myObj; if (!myObj) { var myObj = { };

因此,if语句做判断时,myObj确实已经存在了,所以就不报错了。这就是var 命令的"代码提升"(hoisting)作用。Javascript解释器,只"提升"var命令定义的变量,对不使用var命令、直接赋值的变量不起作用,这就是为什么不加var会报错的原因。 第二种写法 除了var命令,还可以有另一种改写,也能得到正确的结果: if (!window.myObj) { myObj = { }; } window是javascript的顶层对象,所有的全局变量都是它的属性。所以,判断myobj是否为空,等同于判断window对象是否有myobj属性,这样就可以避免因为myObj没有定义而出现ReferenceError错误。不过,从代码的规范性考虑,最好还是对第二行加上var: if (!window.myObj) { var myObj = { };

JavaScript试题集

.单选题 1. 我们可以在下列哪个HTML元素中放置javascript代码? A.< script > B.< javascript > C.< js > D.< scripting > ★标准答案:A 2. 预测以下代码片段的输出结果: var str ; alert(typeof str); A.. string ; B.. undefined; C.. object ; D.. String; ★标准答案:B 3. 下列哪个不是Javascript中注释的正确写法:() A.< !-- …… -- > B. *……*/ D. /* …… */ ★标准答案:A 4. 以下哪项不属于Javascript的特征? 是一种脚本语言 是事件驱动的 代码需要编译以后才能执行

是独立于平台的 ★标准答案:C 5. 关于以下两个陈述的描述中,正确的是:() 陈述1:Javascript是弱类型语言 陈述2:Javascript的常用类型包括:int、string、boolean A.陈述1正确,陈述2错误 B.陈述1错误,陈述2正确 C.两个陈述都正确 D.两个陈述都错误 ★标准答案:A 6. 阅读下面的JavaScript代码: < HTML > < BODY > < SCRIPT LANGUAGE="JavaScript" > function f(y) { var x=y*y; return x; } for(x=0;x< 5;x++) { y=f(x); (y); } < /SCRIPT > < /BODY > < /HTML > 输出结果是()。 1 2 3 4 1 4 9 16 1 4 9 16 25 D.以上答案都不对 ★标准答案:B 7. 在Javascript中,需要声明一个整数类型的变量num,以下哪个语句能实现上述要求? num;

JavaScript事件

我的记录(JavaScript事件)JavaScript 事件冒泡简介及应用实例 一、什么是事件冒泡 在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即document对象(有些浏览器是window)。 打个比方说:你在地方法院要上诉一件案子,如果地方没有处理此类案件的法院,地方相关部门会帮你继续往上级法院上诉,比如从市级到省级,直至到中央法院,最终使你的案件得以处理。 二、事件冒泡有什么作用 (1)事件冒泡允许多个操作被集中处理(把事件处理器添加到一个父级元素上,避免把事件处理器添加到多个子级元素上),它还可以让你在对象层的不同级别捕获事件。 【集中处理例子】

eval( )内置函数的用法:计算字符串表达式的值。

javascript试题

在HTML中,表单中的input元素的()属性用于指定表单元素的名称。 A. value B. name C. type D. caption 当表单各项填写完毕,鼠标单击提交按钮时可以触发()事件。 A. onenter B. onsubmit C. onmouseDrag D. onmouseOver 分析下面的JavaScript代码段,输出结果是()。 var a=15.59; document.write(Math.round(a)); A. 15 B. 16 C. 15.5 D. 15.4 要求用JavaScript实现下面的功能:在一个文本框中内容发生改变后,单击页面的其他部分将弹出一个消息框显示文本框中的内容。下面语句正确的是()。 A. B. C. D. 假定今天是2006年4月1日星期六,请问下列JavaScript代码在页面上的输出结果是()。var time=new Date(); document.write(time.getDate()); A. 2006 B. 4 C. 1 D. 6 下面描述正确的是()。 A. switch语句用于重复执行一个语句块的操作 B. switch语句根据表达式的值执行若干语句块之一,如果没有匹配项,则执行默认语句块中的语句 C. switch语句表达式中的值不能与后面case语句中的常量相匹配时将出现运行错误 D. switch语句又叫循环语句 分析如下JavaScript代码,b的值为()。 var a=1.5 ,b; b=parseInt(a); A. 2 B. 0.5 C. 1 D. 1.5 在HTML中,使用JavaScript中的浏览器对象实现在当前窗口打开链接"https://www.doczj.com/doc/9312337379.html,"的javascript语句是()。 A. window.open("https://www.doczj.com/doc/9312337379.html,"); B. document.write("https://www.doczj.com/doc/9312337379.html,"); C. location.replace("https://www.doczj.com/doc/9312337379.html,"); D. location.reload("https://www.doczj.com/doc/9312337379.html,"); 如果今天是2006年5月14日,分析下列JavaScript代码运行后,在网页上显示()。 var now = new Date(); var year = now.getYear(); var month = now.getMonth(); var date = now.getDate(); document.write(year+" "+month+" "+date); A. 2006 05 14 B. 2006 5 14 C. 2006 04 14 D. 2006 4 14 在HTML中有如下代码,运行后页面显示结果为()。

Javascript事件

获取事件对象的全家 事件对象的获取很简单,很久前我们就知道IE中事件对象是作为全局对象( window.event )存在的,Firefox中则是做为句柄( handler )的第一个参数传入内的。所以一行代码就可以搞定 view sourceprint? 1var evt = window.event || arguments[0]; 下面分三种添加事件的方式讨论,你也许会看到以前没有看到过的获取方式。 1,第一种添加事件的方式,直接在html的属性中写JS代码 view sourceprint? 1

Div1 Element
大概这是上世纪90年代的写法,那时候直接把js代码写在网页中很普遍,也许那时候的js并不太重要,只是用来做做验证或一些花哨的效果而已。如何在这种添加事件方式下获取到事件对象?IE中很简单,因为event是作为全局对象的,所以直接使用event即可,如下 view sourceprint? 1
Div1 Element
点击该Div后,IE中会弹出'click'字符的信息框。说明事件对象获取到了,如果在 Opera/Safari/Chrome 中也测试了,会发现效果和IE一样,说明Opera/Safari/Chrome 中也支持IE方式( window.event )获取事件对象。 Firefox中会报错,提示:window.event is undefined,说明Firefox不支持IE方式获取事件对象而是以句柄的第一个参数传入的,文章开头意见提到了。 上面的用window.event 来获取事件对象,其实window可以省略的,就像使用alert而不是window.alert一样。如 view sourceprint? 1
Div1 Element
在IE/Opera/Safari/Chrome 中测试,和刚刚不会有什么区别。在Firefox中再测,会有个惊喜,你会发现居然弹出的是"click"信息框,而不是"undefined"。 两次测试区别仅仅一个用window.event.type,一个用event.type。这个问题下面详细讨论。

JAVASCRIPT面向对象基础总结

javascript面向对象基础 1.使用[]调用对象的属性和方法 functionUser() { this.age=21; this.sex="男?"; } varuser=newUser(); alert(user["age"]); 2.动态添加,修改,删除对象的属性和方法//定义类varuser=newObject(); //添加属性和方法 https://www.doczj.com/doc/9312337379.html,="cary"; user.age=21; user.show=function(){ alert(https://www.doczj.com/doc/9312337379.html,+"年?龄?为?:?"+this.age);} //执行方法 user.show(); //修改属性和方法 https://www.doczj.com/doc/9312337379.html,="James"; user.show=function() { alert(https://www.doczj.com/doc/9312337379.html,+"你?好?"); } //执行方法 user.show(); //删除属性和方法 https://www.doczj.com/doc/9312337379.html,="undefined"; user.show="undefined" //执行方法 user.show(); 3.使用大括号{}语法创建无类型对象varobj={}; varuser= { name:"cary", age:21,

show:function(){ alert(https://www.doczj.com/doc/9312337379.html,+"年?龄?为?:?"+this.age); } } user.show(); varobj={};等价于 varobj=newObject(); 4.Prototype原型对象 每个函数function也是一个对象,对应的类类型为“Function”,每个函数对象都有一个子对象prototype,表示函数的原型,所以当我们new一个类的对象的时候prototype对象的成员都会被实例化为对象的成员。例如: functionclass1() {} class1.prototype.show=function(){ alert("prototyemember"); } varobj=newclass1(); obj.show(); 5.Function函数对象详解 5.1Function和Date,Array,String等一样都属于JavaScript的内部对象,这些对象的构造器是由JavaScript本身所定义的。上面说过函数对象对应的类型是Function,这个和数组的对象是Array一个道理。所以也可以像newArray()一样newFunction()来创建一个函数对象,而函数对象除了使用这种方式还可以使用function关键字来创建。我们之所以不经常使用newFunction()的方式来创建函数是因为一个函数一般会有很多语句,如果我们将这些都传到newFunction()的参数中会显得可读性比较差。varfunctionName=newFunction(p1,p2,...,pn,body)其中p1到pn为参数,body为函数体。 5.2有名函数和无名函数 有名函数:functionfuncName(){}无名函数:varfuncName=function(){}他们之间的唯一区别:就是对于有名函数他可以出现在调用之后再定义,而对于无名函数,他必须是在调用之前就已经定义好。 5.3我们可以利用Function的prototype对象来扩展函数对象,如: Function.prototype.show=function(){ alert("扩展方法"); }

JS对象属性及方法完美总结之最终版

●Date ●属性(1): ●constructor 所建立对象的函数参考 ●prototype 能够为对象加入的属性和方法 ●方法(43): ●getDay() 返回一周中的第几天(0-6) ●getYear() 返回年份.2000年以前为2位,2000(包含)以后为4位 ●getFullYear() 返回完整的4位年份数 ●getMonth() 返回月份数(0-11) ●getDate() 返回日(1-31) ●getHours() 返回小时数(0-23) ●getMinutes() 返回分钟(0-59) ●getSeconds() 返回秒数(0-59) ●getMilliseconds() 返回毫秒(0-999) ●getUTCDay() 依据国际时间来得到现在是星期几(0-6) ●getUTCFullYear() 依据国际时间来得到完整的年份 ●getUTCMonth() 依据国际时间来得到月份(0-11) ●getUTCDate() 依据国际时间来得到日(1-31) ●getUTCHours() 依据国际时间来得到小时(0-23) ●getUTCMinutes() 依据国际时间来返回分钟(0-59) ●getUTCSeconds() 依据国际时间来返回秒(0-59) ●getUTCMilliseconds()依据国际时间来返回毫秒(0-999) ●getTime() 返回从1970年1月1号0:0:0到现在一共花去的毫秒数 ●getTimezoneoffset() 返回时区偏差值,即格林威治平均时间(GMT)与运行脚本的计算机所处时区设置之间相差的 分钟数) ●parse(dateString) 返回在Date字符串中自从1970年1月1日00:00:00以来的毫秒数 ●setYear(yearInt) 设置年份.2位数或4位数 ●setFullYear(yearInt)设置年份.4位数 ●setMonth(monthInt) 设置月份(0-11) ●setDate(dateInt) 设置日(1-31) ●setHours(hourInt) 设置小时数(0-23) ●setMinutes(minInt) 设置分钟数(0-59) ●setSeconds(secInt) 设置秒数(0-59) ●setMilliseconds(milliInt) 设置毫秒(0-999) ●setUTCFullYear(yearInt) 依据国际时间来设置年份 ●setUTCMonth(monthInt) 依据国际时间来设置月(0-11) ●setUTCDate(dateInt) 依据国际时间来设置日(1-31) ●setUTCHours(hourInt) 依据国际时间来设置小时 ●setUTCMinutes(minInt) 依据国际时间来设置分钟 ●setUTCSeconds(secInt) 依据国际时间来设置秒 ●setUTCMilliseconds(milliInt)依据国际时间来设置毫秒 ●setTime(timeInt) 设置从1970年1月1日开始的时间.毫秒数 ●toGMTString() 根据格林威治时间将Date对象的日期(一个数值)转变成一个GMT时间字符串,如:Weds,15 June l997 14:02:02 GMT ●toUTCString() 根据通用时间将一个Date对象的日期转换为一个字符串 ●toLocaleString() 把Date对象的日期(一个数值)转变成一个字符串,使用所在计算机上配置使用的特定日期格 式 ●toSource() 显示对象的源代码

JavaScript试题集7

一. 单选题 1. 我们可以在下列哪个HTML 元素中放置javascript 代码? A.< script > B.< javascript > C.< js > D.< scripting > ★标准答案:A 2. 预测以下代码片段的输出结果: var str ; alert(typeof str); A.. string ; B.. undefined; C.. object ; D.. String; ★标准答案:B 3. 下列哪个不是Javascript 中注释的正确写法:( ) A.< !-- …… -- > B.//…… C./*……*/ D. /* …… */ ★标准答案:A 4. 以下哪项不属于Javascript 的特征? A.Javascript 是一种脚本语言 B.Javascript 是事件驱动的 C.Javascript 代码需要编译以后才能执行 D.Javascript 是独立于平台的 ★标准答案:C 5. 关于以下两个陈述的描述中,正确的是:( ) 陈述1:Javascript 是弱类型语言 陈述2:Javascript 的常用类型包括:int 、string 、boolean A.陈述1正确,陈述2错误 B.陈述1错误,陈述2正确 C.两个陈述都正确 D.两个陈述都错误 ★标准答案:A 6. 阅读下面的JavaScript 代码: < HTML > < BODY > < SCRIPT LANGUAGE="JavaScript" > function f(y) { var x=y*y; return x; } for(x=0;x< 5;x++) { y=f(x); document.writeln(y); } < /SCRIPT > < /BODY > < /HTML > 输出结果是()。 A.0 1 2 3 4 B.0 1 4 9 16 C.0 1 4 9 16 25 D.以上答案都不对 ★标准答案:B 7. 在Javascript 中,需要声明一个整数类型的变量num ,以下 哪个语句能实现上述要求? A.int num;

JavaScript试题集7

1. 我们可以在下列哪个HTML 元素中放置javascript 代码 A.< script > B.< javascript > C.< js > D.< scripting > ★标准答案:A 2. 预测以下代码片段的输出结果: var str ; alert(typeof str); A.. string ; B.. undefined; C.. object ; D.. String; ★标准答案:B 3. 下列哪个不是Javascript 中注释的正确写法:( ) A.< !-- …… -- > B. *……*/ D. /* …… */ 4. 以下哪项不属于Javascript 的特征 是一种脚本语言 是事件驱动的 代码需要编译以后才能执行 是独立于平台的 ★标准答案:C 5. 关于以下两个陈述的描述中,正确的是:( ) 陈述1:Javascript 是弱类型语言 陈述2:Javascript 的常用类型包括:int 、string 、boolean A.陈述1正确,陈述2错误 B.陈述1错误,陈述2正确 C.两个陈述都正确 D.两个陈述都错误 ★标准答案:A 6. 阅读下面的JavaScript 代码: < HTML > < BODY > < SCRIPT LANGUAGE="JavaScript" > function f(y) { var x=y*y; return x; } for(x=0;x< 5;x++) { y=f(x);

} < /SCRIPT > < /BODY > < /HTML > 输出结果是()。 1 2 3 4 1 4 9 16 1 4 9 16 25 D.以上答案都不对 ★标准答案:B 7. 在Javascript 中,需要声明一个整数类型的变量num , 以下哪个语句能实现上述要求 num; num; num; num; ★标准答案:C 8. 关于Javascript 中数组的说法中,不正确的是:() A.数组的长度必须在创建时给定,之后便不能改变 B.由于数组是对象,因此创建数组需要使用new 运算 符 C.数组内元素的类型可以不同 D.数组可以在声明的同时进行初始化 9. 除了一些常规的运算符之外,Javascript 还提供了一些特殊的运算符。下面不属于Javascript 特殊运算符的是:( ) ★标准答案:B 10. 以下关于Javascript 中事件的描述中,不正确的是:() ——鼠标单击事件 ——获取焦点事件 ——鼠标指针移动到事件源对象上时触发的事件 ——选择字段时触发的事件 ★标准答案:D 11. 考察以下程序片段: var n = new Number(3456); alert(2)); 以下选项正确的是:( ) A.输出 34 B.输出 56 C.输出 D.输出 345600 ★标准答案:C

javascript对象和函数

Javascript中的对象、函数和继承 前一段时间在看Extjs的源代码,起初打算从他的Widget开始看起,因为想借鉴一下并应用到自己的代码中,但是看了一段时间发现很难阅读进去,主要因为对他的整体如何组织对象和事件的方式不是很清楚。所以还是耐下性子从最基础的开始看起,什么是Extjs的基础,可以说是他的Ext.extend函数,因为之后的各个wdiget的扩展都用它来实现的。但是起初发现他的内容并不是那么容易就可以看明白的,有的时候觉得自己看明白了,但是再多问自己一个为什么,可能又答不上来了。 这个时候正好碰到一本很不错的讲JS原理书,周爱民的《Javascript语言精粹与编程实践》,如获至宝,赶紧买来阅读。在阅读的过程中又在我面前蹭蹭蹭,出现了几本很不错的js书籍,在这里也向大家推荐一下,一本是有Y ahoo的js大牛Douglas Crockeord(后文称之为老道)所著,由淘宝UED的小马和秦歌翻译的《Javascript语言精粹》,一本是《Javascript 设计模式》。最早我读的这两本书都是英文版的,所以还被第二本书中的一些观点给误导了,但是幸好看到第二本书的译者很负责任,在批注中都已经修正过来了。最后一本,其实不是书,而是《ECMAScript Language Specification》,俗称ECMA-262,有两个值得看的版本,一个是第三版,一个是第五版;现在的大部分js实现都是基于第三版的规范,但是在有些问题上,第五版描述的更加清晰一些。 废话少说,进入正题。 1、Javascript中的对象 JavaScript可以说是一个基于对象的编程语言,为什么说是基于对象而不是面向对象,因为JavaScript自身只实现了封装,而没有实现继承和多态。既然他是基于对象的,那么我们就来说说js中的对象。有人说js中所有的都是对象,这句话不完全正确。正确的一方是他强调了对象在js中的重要性,对象在js中无处不在,包括可以构造对象的函数本身也是对象。但是另一方面,js中也有一些简单的数据类型,包括数字、字符串和布尔值、null值和undefined值,而这些不是对象。那为什么这些类型的值不是对象呢,毕竟他们也有方法。那让我们来看一下,JavaScript中对于对象的定义,有两种定义。 (1)JavaScript中的对象是可变的键控集合(keyed collections)(此定义来自老道的那本书的第三章) (2)JavaScript中的对象是无序(unordered)的属性集合,这些属性可以含有简单的数据类型、对象、函数;保存在一个对象属性中的函数也被称为这个对象的方法。(来自ECMA-262 的4.3.3)(注:这里所说的属性是可以在js脚本中创建和访问的(我们称之为显性属性),不包括系统为对象自动分配的内部属性) 那为什么那个简单的数据类型不是对象呢,主要是因为这些数据类型的值中拥有的方法是不可变的,而一个对象的属性是应当可以被改变的。 2、对象中的原型链[[proto]] JavaScript中的每个对象创建的时候系统都会自动为其分配一个原型属性[[proto]],用来连接到他的原型对象。在JavaScript中就是通过每个对象中的[[proto]]来实现对象的继承关系的。但是对象的[[proto]]属性在JavaScript是不能访问和修改的,他是作为一个内部的属性存在的,而且是在对象被创建的同时由系统自动设定的。 当访问一个对象的某一属性,如果这个属性在此对象中不存在,就在他的[[proto]]所指

相关主题
文本预览
相关文档 最新文档