出自:国家开放大学JavaScript程序设计

1. 如下代码运行的结果是( )。
<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 8 B. 6 12 C. 4 4 D. 6 6



2. 如下代码运行的结果是( )。
<html>
<body>
<script type="Text/JavaScript">
  var str = .abcabcabcabcabcabda.;
  var arr = [];
  var n = 0;
  while(str.indexOf(.ab.,n) != -1 && n < str.length) {
   arr.push(str.indexOf(.ab., n));
   n = str.indexOf(.ab., n) + 2;
  }
  console.log(arr);
</script>
</body>
</html>
A.[1, 4, 7, 10, 13, 16] B.[3, 6, 9, 12, 15]
C.[0, 3, 6, 9, 12, 15] D.[0, 3, 6, 9, 12



3. 分析下段代码输出结果是( )。
<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 += arr[i];
}
console.log(s);
</script>
</body>
</html>
A.20 B.18 C.14 D.12

4. 如下代码运行的结果是( )。
<html>
<body>
<script type="Text/JavaScript">
var attr = [2,34,2,5,6,5];
var newAtrr = [];
var flag = true;
for(var i = 0;i< attr.length;i++){
flag = true;
for(var j = 0;j < newAtrr.length;j++){
if(newAtrr[j] == attr[i]){
flag = false;
}
};
if(flag){
newAtrr.push(attr[i])
}
}
console.log(newAtrr);
</script>
</body>
</html>
A.[2,34,5,6] B.[34,6] C.[2,5] D.[ 2,34,2,5,6,5]


5. 分析下段代码输出结果是( )。
<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.12 B.6 C.10 D.8


6. 如下代码运行的结果是( )。
<html>
<body>
<script type="Text/JavaScript">
var fullname = .John Doe.;
var obj = {
fullname: .Colin Ihrig.,
prop: {
fullname: .Aurelio De Rosa.,
getFullname: function() {
return this.fullname;
}
}
};
console.log(obj.prop.getFullname());
var test = obj.prop.getFullname;
console.log(test());
</script>
</body>
</html>
A. Aurelio De Rosa John Doe B. Colin Ihrig Aurelio De Rosa
C. John Doe Colin Ihrig D. Aurelio De Rosa Colin Ihrig
JavaScript既可以用于Web客户端应用,也可以用于web服务器端应用。
用var定义一个变量后,如果没有赋予任何值,那么它的值是空值,即null。
for循环中三个表达式中至少要存在一个,而且两个分号是必不可少的。
内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数和声明的其他内部函数。
JavaScript的核心语言对象包括字符串对象、数学对象、日期对象、数组对象。
向数组的最后位置加一个新元素,可以用 pop 方法。
在正则表达式中“\w”匹配任何非单词字符。
Document对象可用于检索浏览器窗口中的HTML文挡的信息 。
改变浏览器当前浏览的网页可以通过设置window.location来实现。
Ajax并不是全新的技术,而是整合了几种现有的技术:JavaScrip、XML和CSS。
在HTML文档中通过使用<script>标签可以引入JavaScript程序。 
在JavaScript中,两个整数进行除(/)运算,其结果也为整数。 
在JavaScript中,可使用Function()定义函数。Function()可以接受任意多个字符串参数。
在JavaScript中处理异常时,如果添加了 finally 语句,则 catch 语句可以省略。
在JavaScript中,当使用new运算符创建一个对象变量后,一定要使用delete运算符把创建的对象变量撤销。
substring() 方法一共有两个参数,省略第二个参数表示从参数开始位置截取到字符串结束。
在正则表达式中“\D”匹配一个非数字字符。
在HTML文档中,每个标签都可以有一个name属性,name属性的值不是唯一的。
setTimeout()方法第一个参数可以是用引号括起来的一段代码,也可以是一个函数名。
Ajax不是一种新的编程语言,而是一种用于创建更好更快、以及交互性更强的Web应用程序的技术。
Ajax使用 XMLHttpRequest 进行异步数据查询。
sessionStorage 保存的数据在关闭页面后即被清空。
Document对象的location属性包含有关当前URL的信息。
在正则表达式中+表示匹配0到多个值。

substr用字符位置和长度来指定子串。
定义一个构造器,相当于定义一个类,在函数内引用的变量或者方法都会成为类的成员。
代码执行期间可能会发生的异常有多种类型,每种异常都有对应的错误类型。JavaScript共定义了9 种错误类型。
在定义函数的时候,即使不指定参数列表,仍然可以通过arguments引用到所获得的参数。
在使用var x=1声明变量x之后,赋值语句x="今天天气真好"将出错。
在JavaScript中可以用十六进制形式来表示浮点数常量。
在调用外部的JavaScript文件时,下面哪种写法是正确的( )。
A.<script file="a.js"></script> B.<script src="a.js"></script>
C.<script onclick="a.js"></script> D. <script src="*.jsp"></script>
下列的( )表达式将返回false。
A. !(3<=1) B. (4>=4)&&(5<=2)
C. ("a"=="a")&&( "c"!= "d") D. (2<3)||(3<2)
表达式"123abe"-"123"的计算结果是( )。 
A. "abc"    B. 0    C. "123abc123"    D. NaN 
javascript脚本的类型转换说法正确的是( )。
A. parseInt("66.6s")的返回值是7
B. parseInt("66.6s")的返回值是NaN
C. parseFloat("66ss36.8id")的返回值是36
D. parseFloat("66ss36.8id")的返回值是66
下列关于switch语句的描述中,( )是正确的。
A. switch语句中default子句是可以省略的
B. switch语句中case子句的语句序列中必须包含break语句
C. switch语句中case子句后面的表达式可以是含有变量的整型表达式
D. switch语句中子句的个数不能过多
循环语句“for(var i=0,j=10; i=j=10; i++, j--);”的循环次数是( )。
A. 0 B. 1 C. 10 D. 无限
创建字符串对象有哪种方法( )。
A.使用new运算符创建String对象和直接将字符串赋给变量
B.使用new运算符创建Array对象和直接将字符串赋给变量
C.使用new运算符创建Number对象和直接将字符串赋给变量
D.使用new运算符创建Date对象和直接将字符串赋给变量
如何把 7.25 四舍五入为最接近的整数( )。
A. round(7.25)
B. rnd(7.25)
C. Math.rnd(7.25)
D. Math.round(7.25)
以下( )语句不能创建数组。
A. var myarray = new Array() ; B. var myarray = new Array(5);
C. var myarray=new Array(2,3); D. var myarray =new Array[10];
下列选项中可以正确的匹配一个正整数的是( )。
A. ^[1-9]\d*$ B. ^[1-9]+$
C. ^[0-9]\d*$ D. ^[1-9]\d+$
关于HTML DOM下列说法不正确的是( )。
A.整个文档是一个文档节点
B.每个HTML标记是一个元素节点
C.包含在HTML元素中的文本不是节点
D.每一个HTML属性是一个属性节点
以下关于JavaScript中事件的描述中,不正确的是( )。
A. click——鼠标单击事件
B. focus——获取焦点事件
C. mouseOver——鼠标指针移动到事件源对象上时触发的事件
D. change——选择字段时触发的事件
在JavaScript中,下列关于window对象方法的说法错误的是( )。
A. window对象包括location对象、history对象和docuement对象
B. window.onload( )方法中的代码会在一个该页面加载完成后执行
C. window.open( )方法用于在当前浏览器窗口加载指定的URL文档
D. window.close( )方法用于关闭浏览器窗口
XMLHttpRequest对象的readyState的值为4时表示( )。
A. 服务器连接已建立 B. 请求已接收
C. 请求处理中 D. 请求已完成,且响应已就绪
有以下HTML代码片段,( )可以将表格的每一行的背景设为红色。
<table>
<tr><td>第一行
JavaScript特点不包括( )。
A.解释性 B.用于客户端 C.基于对象 D.静态的
下列标识符定义合法的是( )。
A. w@s B. a-b C. 2s D. $a
写 "Hello World" 的正确 Javascript 语法是( )。
A. ("Hello World")
B. "Hello World"
C. response.write("Hello World")
D. document.write("Hello World")
下列选项中哪一个可以作为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)