国家开放大学《JavaScript程序设计》复习指导参考答案.docx
国家开放大学JavaScript程序设计复习指导参考答案第一章一、判断题1.JavaScript是Microsoft公司设计的脚本语言。(×)2.JavaScript既可以用于Web客户端应用,也可以用于web服务器端应用。()3.在HTML文档中通过使用<script>标签可以引入JavaScript程序。()<script type="text/javascript">/ </script>4.编写JavaScript程序的唯一工具是纯文本编辑器。(×)5.在JavaScript中可以用十六进制形式来表示浮点数常量。(×)6.空字符串("")也是字符串常量。()7.在JavaScript中,使用单引号(')标记字符常量,而是用双引号(")标记字符串常量。(×)8.在定义JavaScript变量中,一定要指出变量名和值。(×)9.用var定义一个变量后,如果没有赋予任何值,那么它的值是空值,即null。(×)10.JavaScript规定在使用中任何变量之前必须先使用var声明它。(×)11.在使用varx=1声明变量x之后,赋值语句x="今天天气真好"将出错。(×)12.JavaScript表达式的类型只取决于运算符,与操作数无关。(×)13.在JavaScript中,两个整数进行除(/)运算,其结果也为整数。(×)14.如果有定义vara=true,b;那么a|b的结果为true。()15.alert( "12" >= "9" ) 的运行的结果是false。()二、单项选择题16.JavaScript特点不包括( )。A.解释性B.用于客户端C.基于对象D.静态的17.对于ECMAScript的描述中,以下说法错误的是( )。A.它是一个重要的标准,并不是JavaScript唯一的部分B.是一种开放的,国际上广为接受的,标准的脚本言规范C.它主要描述了语法、变量、数据类型、运算符、逻辑控制语句等D.ECMAScript遵循了JavaScript标准18.在调用外部的JavaScript文件时,下面哪种写法是正确的( )。A.<script file="a.js"></script>B.<script src="a.js"></script>C.<script onclick="a.js"></script>D.<script src="*.jsp"></script>19.我们可以在下列哪个 HTML 元素中放置 Javascript 代码( )。A.<script><script type="text/javascript"></script>B.<javascript>C.<js>D.<scripting>20.下面的系统函数中哪个可以判断是否是非数字的函数( )。A.isNaN( )B.parseInt( )C.parseFloat( )D.function( )21.以下哪个单词不属于JavaScript保留字( )。A.whileB.parentC.classD.void22.下列标识符定义合法的是( )。A.wsB.a-bC.2sD.$a23.下列的( )表达式将返回false。A.!(3<=1) B.(4>=4)&&(5<=2) C.(“a”=”a”)&&(“c”!=”d”)D.(2<3)|(3<2)24.结果为true的表达式是( )。A.null instanceof ObjectB.null = undefinedC.null = undefinedD.NaN = NaN25.以下哪个常量值最大( )。A.80B.0X65C.095D.011526.下面四个变量声明语句中,哪一个变量的命名是正确的( )。A.vardefaultB.varmy_bouseC.varmydogD.var2cats27.下面哪一个语句定义了一个名为pageNumber的变量并将它的值赋为240( )。A.varPageNumber=240B.pagenumber=240C.varpageNumber=240D.varintnamedpageNumber=24028.下面哪一个字符串变量定义语句是不正确的( )。A.varmytext="Hereissometext!"B.varmytext='Hereissometext!'C.varmytext='Hereissometext!"D.varmytext="Hereisnsometext!"29.下面哪一个不是JavaScript运算符( )。A.=B.=C.&&D.$#30.表达式123%7的计算结果是( )。A.2 B.3 C.4 D.531.表达式"123abe"-"123"的计算结果是( )。A."abc"B.0C."123abc123"D.NaN32.赋值运算符的作用是什么( )。A.给一个变量赋新值B.给一个变量赋予一个新名C.执行比较运算D.没有任何用处33.比较运算符的作用是什么( )。A.执行数学计算B.处理二进制位,目前还不重要C.比较两个值或表达式,返回真或假D.只比较数字,不比较字符串34.下列各种运算符中,( )优先级最高。A.+B.&&C.=D.*=35.在JavaScript中,要定义一个全局变最x,可以( )。A.使用关键字public在函数中定义B.使用关键字public在任何函数之外定义C.使用关链字var在函教中定义D.使用关键宇var在任何函数之外定义36.在JavaScript中,要定义一个局部变量x,可以( )。A.使用关键字private在函数中定义B.使用关键字private在任何函数之外定义C.使用关键字var在函数中定义D.使用关键字var在任何函数之外定义37.在Javascript中,需要声明一个整数类型的变量num,以下哪个语句能实现上述要求( )。A.int num;B.number num;C.var num;D.Integer num;38.以下 ECMAScript 变量命名格式正确的是( )。A._125dollorB.1207A C.-dollorD.this39.下面的等式成立的是( )。A.parseInt(12.5) = parseFloat(12.5)B.Number('') = parseFloat('')C.isNaN('abc') = NaND.typeof NaN = 'number'40.javascript脚本的类型转换说法正确的是( )。A.parseInt("66.6s")的返回值是7B.parseInt("66.6s")的返回值是NaNC.parseFloat("66ss36.8id")的返回值是36D.parseFloat("66ss36.8id")的返回值是6641.下面的描述中不正确的是( )。A.'=' 在比较过程中,不但会比较两边的值,还会比较两边的数据类型B.NaN = NaN 的结果是 trueC.isNaN,判断传入的参数是否为数字,为数字返回true,否则返回falseD.字符串的 length 只可以获取,不可以设置42.请选择结果为真的选项( )。A.null = undefinedB.null = undefinedC.undefined = falseD.NaN = NaN43.写 "Hello World" 的正确 Javascript 语法是( )。A.("Hello World")B."Hello World"C.response.write("Hello World")D.document.write("Hello World")44.在HTML中,以下代码( )可以正确显示如图所示的对话框。A.<script type="text/javascript">confirm(欢迎学习.NET");</script>B.<script type="text/javascript">alert("欢迎学习.NET");</script>C.<script type="text/javascript">document.write("欢迎学习.NET");</script>D.<script type="text/javascript">document.open("欢迎学习.NET");</script>45.window的哪个方法可以显示输入对话框( )。A.confirm()B.alert()C.prompt()D.open()46.如何在警告框中写入 "Hello World"( )。A.alertBox="Hello World"B.msgBox("Hello World")C.alert("Hello World")D.alertBox("Hello World")47.下面四个JavaScript语句中,哪一个是合法的( )。A.document.write("Johnsaid,''Hi!"")B.document.write("Johnsaid,''Hi!"')C.document.write("Johnsaid,''Hi!")D.document.write("Johnsaid,''Hi!"")三、多项选择题48.如何在 JavaScript 中添加注释( )。A.' This is a commentB.<!-This is a comment->C./This is a commentD./*This is a comment*/49.Javascript的基本组成包括以下( )选项。A.DOMB.BOMC.ECMAScriptD.jQuery50.在JavaScript语法中,下列说法正确的是( )。A.parseInt(43.12)返回值为43B.parseInt('abc43.12')返回值为NaNC.parseFloat('45.13abc')=parseInt(43.12) 返回trueD.isNaN(parseFloat('45.13abc')返回true51.以下是js变量命名规范的是( )。A.由字母、下划线、美元符号或数字组合而成B.不区分大小写C.不能以关键字或保留字命名D.第一个字符必须是一个字母、下划线(_)或一个美元符号($)52.关于Number函数转换规则,下面的说法正确的是( )。A.如果是Boolean值,true返回1,false返回0B.如果是null值,返回undifinedC.如果是undefined,返回NaND.如果是数值,返回原值53.在不指定特殊属性的情况下,( )标签可以手动输入文本。A.<TEXTAREA></TEXTAREA>B.<INPUT type=”text”/>C.<INPUT type=”hidden”/>D.<DIV></DIV>54.以下哪些是JavaScript的全局函数( )。A.escapeB.parseFloatC.evalD.setTimeoutE.alert四、阅读程序题55.分析下段代码输出结果是( )。<html><body><script type="Text/JavaScript">x="a"y="b"z=false;function testOne() var x="c" var y="d" z=true; console.log(x); console.log(y); console.log(z);function testTwo() console.log(x); console.log(y); console.log(z);testOne();testTwo();</script></body></html>A.c d true a b trueB.c d true c d trueC.c d fasle a b trueD.a b true c d true第二章一、判断题1.switch之后括号内的表达式其结果可以是整数或字符串。()2.在switch结构中,default语句都要放在最后。(×)3.for循环中三个表达式中至少要存在一个,而且两个分号是必不可少的。(×)4.JavaScript的window对象有一个特别的属性onerror。()5.代码执行期间可能会发生的异常有多种类型,每种异常都有对应的错误类型。JavaScript共定义了下列9种错误类型。(×)6.在JavaScript中处理异常时,如果添加了 finally 语句,则 catch 语句可以省略。()7.函数内未定义直接赋值的变量,系统会把它声明为全局变量。()8.在JavaScript中,可使用Function()定义函数。Function()可以接受任意多个字符串参数。()9.在JavaScript中,对函数类型、对象类型变量的参数传递都是引用传递。()10.异常是程序中出现的错误。(×)11.在定义函数的时候,即使不指定参数列表,仍然可以通过arguments引用到所获得的参数。()12.内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数和声明的其他内部函数。()二、单项选择题13.下列JS的判断语句中( )是正确的。A.if(i=0)B.if(i=0)C.if i=0 thenD.if i=0 then14.以下代码运行的结果是输出( )。var a=10, b = 10; (function() var a=10, b=20 )(); console.log(b);A.10B.20C.报错D.undefined15.下列关于switch语句的描述中,( )是正确的。A.switch语句中default子句是可以省略的B.switch语句中case子句的语句序列中必须包含break语句C.switch语句中case子句后面的表达式可以是含有变量的整型表达式D.switch语句中子句的个数不能过多16.在条件和循环语句中,使用( )来标记语句组。A.圆括号()B.方括号C.花括号D.大于号和小于号<17.下列选项中( )可以作为for循环的有效的第一行。A.for(x=1; x<6; x+=1)B.for(x=1; x<6; x+=1)C.for(x=1;x=6; x+=1)D.for(x+=1; x<6; x=1)18.循环语句“for(var i=0,j=10; i=j=10; i+, j-);”的循环次数是( )。A.0B.1C.10D.无限19.语句“var i; while(i=0) i-;”中while的循环次数是( )。A.0B.1C.10D.无限20.下述关于循环语句的描述中,( )是错误的。A.循环体内可以包含有循环语句B.循环体内必须同时出现break语句和continue语句C.循环体内可以出现条件语句D.循环体可以是空语句,即循环体中只出现一个分号21.下述break语句的描述中,( )是不正确的。A.break语句用于循环体内,它将退出该重循环B.break语句用于switch语句,它表示退出该switch语句C.break语句用于if语句,它表示退出该if语句D.break语句在一个循环体内可使用多次22.有语句“var x=0; while(_) x+=2;”,要使while循环体执行10次,空白处的循环判定式应写为( )。A.x10B.x=10C.x<20D.x<=2023.如何编写当 i 等于 5 时执行一些语句的条件语句( )。A.if (i=5)B.if i=5 thenC.if i=5D.if i=5 then24.JavaScript中的错误可以分为语法错误和( )。A.运行错误B.不正常错误C.形式错误D.系统错误25.有关JS中的异常处理,错误的结论是( )。A.语法错误一般简称为错误(Error);而运行错误一般也叫做异常(Exception)B.JavaScript异常处理机制主要是通过try/catch/finally三子句联合实现的C.throw语句允许抛出自定义错误D.try、catch和finally三个子句必须联合使用26.在JavaScript函数的定义格式中,下面各组成部分中,( )是可以省略的。A.函数名B.指明函效的一对圆括写()C.函数体D.函数参效27.如果有函数定义function f(x,y),那么以下正确的函数调用是( )。A.f 1 ,2B.f(1)C.f(1,2)D.f(,2)28.在JavaScript中,定义函数时可以使用( )个参数。A.0B.1C.2D.任意29.关于函数,以下说法错误的是( )。A.函数类似于方法,是执行特定任务的语句块B.可以直接使用函数名称来调用函数C.函数可以提高代码的重用率D.函数不能有返回值30.如果函数无明确的返回值,或调用了没有参数的return语句,那么它真正返回的值是( )。A.nullB.-1C.0D.undefined三、多项选择题31.在HTML页面中,定义了如下所示的JavaScript函数,则正确调用该函数的HTML代码是( )。function compute(op) alert(op);A.<input name=”a” type=”button” onclick=”compute(this.value)” value=”+”>B.<input name=”b” type=”button” onclick=”compute(-)” value=”-”>C.<input name=”c” type=”button” onclick=”compute(“*”)” value=”*”>D.<input name=”d” type=”button” onclick=”compute(/ )” value=”/”>32.以下( )代码段能正确创建函数show。A.function show(text) alert(text); B.var showFun = function show(text) alert(text); C.var showFun = function(text) alert(text); D.var showFun = new function("text" , "alert(text)");33.JavaScript函数的定义会包括一个称为形参的标识符列表,这些参数在函数体中像局部变量一样工作。有关arguments说明正确的是( )。A.arguments表示当前执行的函数的参数和调研它的函数的对象B.经常使用arguments的属性length来获取传递给函数的参数个数C.arguments仅在开始执行函数时使用D.arguments是一个标准数组四、阅读程序题34.如下代码运行的结果是( )。<html><body><script type="Text/JavaScript"> function f(y) var x=y*y; return x; alert("aas"); for(x=0;x< 5;x+) y=f(x); document.write(" "+y); </script> </body></html>A.0 1 2 3 4B.0 1 4 9 16C.0 1 4 9 16 25D.以上答案都不对35.如下代码运行的结果是( )。<html><body><script type="Text/JavaScript">function test() var value = 2; return function (param) value *= param; alert(value) value = 3;var a = test();a(2);a(2);</script> </body></html>A.4 8B.6 12C.4 4D.6 636.分析下段代码输出结果是( )。<html><body><script type="Text/JavaScript">function a() var p = 0; var innerA = function () console.log(p); p=1; innerA(); p+; innerA();a();</script> </body></html>A.0 0B.0 1C.1 2D.1 037.分析下段代码输出结果是( )。<html><body><script type="Text/JavaScript">var arr = 2,3,4,5,6;var s =0;for(var i=0;i < arr.length;i+) if(i%2=0)s += arri; console.log(s);</script> </body></html>A.20B.18C.14D.1238.分析下段代码输出结果是( )。<html><body><script type="text/javascript"> var sum=0; for(var i=1;i<4;i+) for(var j=1;j<4;j+) for(var k=1;k<4;k+) if(i!=k&&k!=j&&i!=j) sum+; console.log(sum);</script></body></html>A.12B.6C.10D.839.分析下段代码,运行时输入2019,8,13,输出结果是( )。<html><body><script type="text/javascript"> var y=parseInt(prompt("year"); var m=parseInt(prompt("month"); var d=parseInt(prompt("day"); var day=0; var m1=m3=m7=m8=m10=m12=31; var m4=m5=m6=m9=m11=30; switch(m) case 1:day=0;break; case 2:day=31;break; case 3:day=59;break; case 4:day=90;break; case 5:day=120;break; case 6:day=151;break; case 7:day=181;break; case 8:day=212;break; case 9:day=243;break; case 10:day=273;break; case 11:day=304;break; case 12:day=334;break; day=day+d; if(y%4=0&&y%100!=0)|(y%400=0)&&(m>2) day=day+1; console.log(day)</script></body></html>A.224B.212C.225D.25540.分析下段代码输出结果是( )。<html><body><script type="text/javascript"> () => let x, y; try throw new Error(); catch (x) (x = 1), (y = 2); console.log(x); console.log(x); console.log(y);)();</script></body></html>A.1 undefined 2B.undefined undefined undefinedC.1 1 2D.1 undefined undefined41.分析下段代码输出结果是( )。<html><body><script type="text/javascript"> var a = 1 function fn1() function fn3() var a = 4 fn2() var a = 2 return fn3 function fn2() console.log(a) var fn = fn1() fn() </script></body></html>A.1B.2C.4D.undefined第三章一、判断题1.在JavaScript中,只能使用预定义对象,而不能使用自定义对象。(×)2.在JavaScript中,当使用new运算符创建一个对象变量后,一定要使用delete运算符把创建的对象变量撤销。(×)3.在JavaScript 中,任何对象都是 Object对象类的实例。()4.在JavaScript 中,任何函数都是 Function对象。()5.JavaScript的核心语言对象包括字符串对象、数学对象、日期对象、数组对象。()6.JavaScript的强大功能主要是其提供了众多的内置对象。(×)7.一个对象通常对应于现实世界的一个实体,这个实体封装了一些属性和方法。()8.定义一个构造器,相当于定义一个类,在函数内引用的变量或者方法都会成为类的成员。(×)9.向数组的最后位置加一个新元素,可以用pop方法。(×)10.substr用字符位置和长度来指定子串。()11.substring()方法一共有两个参数,省略第二个参数表示从参数开始位置提、截取到字符串结束。()12.indexOf()方法可返回某个指定的字符串值在字符串中首次出现的位置,如果不存在匹配字符则返回-1。()13.reverse 用于对数组数据的倒序排列。()14.unshift 方法用于向数组删除第一个元素。(×)15.字符串都可以转换成JSON对象。(×)16.JSON语法时JavaScript语法子集。()17.splice(index,len,item)该方法会改变原始数组。()18.通过Math.random() 方法可以获得一个01的随机数字。()19.在正则表达式中+表示匹配0到多个值。(×)20.一个正则表达式就是由普通字符(例如字符a到z)以及元字符组成的文字模式。()21.在正则表达式中“D”匹配一个非数字字符。()22.在正则表达式中“w”匹配匹配任何非单词字符。(×)二、单项选择题23.有关this运算符说法不正确的是( )。A.this运算符总是指向当前的对象B.在JS中,由于JS的动态性,this的指向在运行时才确定C.this关键字在JavaScript中和执行环境,而非声明环境有关D.通过早期绑定可以实现对this的高度复用24.预测以下代码片段的输出结果()。var student = new Object(); student.study = function() window.alert(“开始学习了”); study(); A.输出“开始学习了”B.程序出错。不能在实例化对象之后,再添加方法C.程序出错。study()方法不能直接调用。应该用student来调用D.程序出错。给student.study赋值时,右边的函数必须有名字25.在JavaScript中,通过下面的( )运算符访问对象的属性和方法。A.加运算符(+)B.点运算符(.)C.乘运算符(*)D.不能访问26.对代码“var x=myhouse.kitchen”的哪种说明正确( )。A.将字符串“myhouse.kitchen”赋值给变量xB.将myhouse和kitchen的值相加之和赋给对象xC.假设myhouse对象存在,它将myhouse对象的kitchen属性值赋给变量xD.假设myhouse对象存在,它将kitchen对象的myhouse属性值赋给变量x27.声明一个对象,包含name属性和show()方法,以下代码中正确的是( )。A.var obj = name:"zhangsan",show:function()alert(name);B.var obj = name:"zhangsan",show:"alert(this.name)"C.var obj = name:"zhangsan",show:function()alert(name);D.var obj = name:"zhangsan",show:function()alert(this.name);28.foo对象有att属性,那么获取att属性的值,以下哪个做法是不可以的( )。A.foo.attB.foo("att")C.foo"att"D.foo"a"+"t"+"t"29.创建字符串对象有哪两种方法( )。A.使用new运算符创建String对象和直接将字符串赋给变量B.使用new运算符创建Array对象和直接将字符串赋给变量C.使用new运算符创建Number对象和直接将字符串赋给变量D.使用new运算符创建Date对象和直接将字符串赋给变量30.如何获取变量名叫str字符串的长度( )。A.count(str)B.str.lengthC.strlen(str)D.前面的都不对31.var n = "miao wei ke tang".indexOf("wei",6);n的值为( )。A.-1B.5C.程序报错D.-1032.下面对 substring() 方法描述不正确的是( )。A.一共有两个参数,省略第二个参数表示从参数开始位置提、截取到字符串结束B.提取之前会比较两个参数的大小,并根据大小调整位置C.可以接收负数参数,负数表示从后往前数字符位置D.如果没有设置参数,直接返回整个字符串33.以下String对象的( )方法得到指定位置处的字符。A.indexOf()B.charAt()C.charIsAt()D.indexOfThePosition()34.变量str存放电话号码,格式如:010-82668155,要求前3位是010,紧接一个“-”,后面是8位数字。判断str中存放的电话号码是否是有效的,下列语句中,( )能正确实现以上功能。A.if(str.substr(0,4)!="010-" | str.substr(4).length!=8 | isNaN(parseFloat(str.substr(4) alert("无效的电话号码!");B.if(str.substr(0,4)!="010-" && str.substr(4).length!=8 && isNaN(parseFloat(str.substr(4) alert("无效的电话号码!");C.if(str.substr(0,3)!="010-" | str.substr(3).length!=8 | isNaN(parseFloat(str.substr(3) alert("无效的电话号码!");D.if(str.substr(0,4)!="010-" && str.substr(4).length!=8 && !isNaN(parseFloat