WEB前端考试题
考试时间:1小时30分钟
每题3分,共40题,共计120分
JavaScript部分
1. var arr1 = [10, 20];
arr1.push(30,40);
arr1.pop();
arr1.push([50,60]);
arr1.pop();
console.log(arr1.toString( A ));
A.10,20,30 B.10,20 C. 10,20,30,50 D. 10
//push()在尾加,pop()尾删,注意[50,60]是一个数组
2. var x = “10”;
function f1( x ){ x = x+2; return x; }
console.log(x);
x = f1(x);
console.log(x);执行结果为( A );
A.10,102 B.10,10 C.undefined,10 D.10,12
//字符串拼接
3. var i = 0; var sum = 0;
do{ i++;
if( i%2 === 0){
continue;
}
if( i%5 === 0){
break;
}
sum += i;
}
while( i<10 );
console.log( ‘sum=’ + sum )则运行结果应该是哪样( B )?
A.sum=0 B.sum=4 C.sum=Infinity D.死循环
//continue如果条件成立只跳过本次循环,后边循环继续执行
//break如果条件成立跳出整个循环
4. var str = “1 < 2”;
console.log(str);
console.log(eval(str)); ( A )
A.1 < 2 和 true B. true 和 true
C. 先输出1 < 2,然后程序错误 D. 以上均不对
//eval()函数可计算某个字符串,并执行其中的JavaScript 代码
5.查看如下代码:
var setObj=function(o){
o.name=”mary”;
}
var p={ name:”john”, age:24};
setObj(p);
console.log(p.name);
console.log(p.age); 上述代码运行后,输出结果为( A )。
A.输出 mary 和 24 B. 输出 mary 和 undefined C. 输出 john 和 undefined D. 输出 mary 和 0
//属性值后者覆盖前者
6. var datas = [10,20,30,40,50];
var arr1 = datas.splice(3,2,60,70);
arr1.concat(80);
console.log(arr1.toString()); 执行后的结果是( D )。
A. 10,20,30,60,70,80 B. 10,20,30,40,60,70,80
C. 40,50,80 D. 40,50
//splice()方法向/从数组中添加/删除项目,然后返回被删除的项目。
//arr1数组接收的值为[40,50]
//concat()方法用于连接两个或多个数组,需要一个变量接收连接的新数组
//原数组不变还是[40,50]
7..查看如下代码: var arr = [ [ 11, 12, 13 ], [ 21 ], [ 31, 32] ];
console.log( arr[1][1] );
console.log( arr[2][1] ); 执行后的结果是( A )。
A. undefined 和 32 B. 21 和 31
C. 11 和 21 D. 程序错误
//二维数组
8.查看如下代码:
var x = 10;
function f1( num ){
return num++;
}
var y = f1( x );
console.log(x);
console.log(y); 执行后的结果是( B )。
A. 10 和 11 B. 10 和 10 C. 11 和 10 D. 11 和 11
//num++和++num的区别
9.查看如下代码:
function func1(num){
if(num < 0)
console.log(“负数”);
else if(num === 0)
console.log(“零”);
else if(num > 0)
console.log(“正数”);
else
console.log(“非数字”);
}
func1(“-1”);
func1(“0”);
执行后的结果是( D )。
A.“非数字”和“非数字”
B.“负数”和“零”
C.“非数字”和“零”
D.“负数”和“非数字”
//‘===’全等 不会自动转换‘0’的类型
10.(多选题)下列哪些选项中的ECMAScript对象不能实例化(即不能使用new关键字创建新的实例)( BD )。
A.Error
B.Math
C.Object
D.Global
11.(单选题)查看如下代码:
function f1( ){
console.log(x);
var x = 10;
++x;
console.log(x);
}
f1();
执行后的结果是( C )。
A.程序错误
B.undefined 和 10
C.undefined 和 11
D.10 和 11
//声明提前,只定义未赋值undefined
12.(单选题)假设有数组对象:
var arr = [2018,5,20];
下列对于此数组的操作及描述中,错误的是( D )。
A.var str = arr.join(‘-‘);
返回值str是一个形如 2018-5-20 的字符串。
B.var newArr = arr.concat([23,53,45]);
返回值newArr是一个形如 [2018,5,20,23,53,45]的新数组。
C.var subArr = arr.slice(1) ;
返回值subArr是一个形如[5,20]的新数组。
D.arr.sort();
进行排序后,数组arr的内容变为[5,20,2018]。
//从每个数的第一个开始比较,结果为[20,2018,5]
13.(单选题)下列正则表达式中,哪项可以匹配首位是小写字母或数字而其它位数是小写字母的,一共最少两位的字符串( B )
A. /^\w{2,}$/
B. /^[a-z0-9][a-z]+$/
C. /^[a-z0-9][a-z]*$/
D. /^[a-z0-9]\d+$/
14.(多选题)下列说法中错误的是( CD )。
A. parseInt(‘123.45a’);返回值为123
B. parseFloat(‘123.45a’); 返回值为123.45
C. Number(‘123.45a’);返回值为123.45
D. new Number(‘123.45a’);创建的Number对象的值为123.45
//非数字转number类型为NaN
15.(多选题)有如下JS代码: var empAge = 20; var empName; 则下列选项中哪些不会发生执行错误( AD)。
A. if( empAge > 20 && empName.length > 0 ) console.log();
B. if( empAge >= 20 && empName.length > 0 ) console.log();
C. if( empAge > 20 || empName.length > 0 ) console.log();
D. if( empAge >= 20 || empName.length > 0 ) console.log();
//逻辑短路 &&一假则假 || 一真则真
16.(单选题)查看如下代码:
function A() {
this.name = “a”;
this.introduce = function () { console.log(“My name is ” + this.name) };
}
function B() {
this.name = “b”;
}
var a1 = new A();
var b1 = new B();
a1.introduce.call(b1);
上述代码运行后,输出结果为( B )。
A.输出 My name is a
B.输出 My name is b
C.输出 My name is undefined
D.程序错误
//call()调用一个对象的一个方法,以另一个对象替换当前对象
17.(单选题)查看如下代码:
var arr1 = [ [ 11,34 ], [12, 45,9],[81,6] ];
var str = arr1.toString();
var arr2 = ___;
arr2.sort(function(a,b){return a-b;});
console.log( );
上述代码需要实现的功能是:输出 arr1 中的最大数值。为实现此功能,可以填入横线处的代码是( D )。
A.str.split() 和 arr2[arr2.length-1]
B.str.split(“,”) 和 arr2[arr2.length]
C.str.split() 和 arr2[arr2.length]
D.str.split(“,”) 和 arr2[arr2.length-1]
18.(单选题)查看如下代码:
function func1(n){
var arr = [1,1];
for(var i=0;i
<div style="float:left;"></div>
<div style="float:right;"></div>
<div style="clear:both;"></div>
此代码在页面上的显示效果为( A )。
A.第一行上显示两个<div>
,分别显示在左右两侧,第二行上显示一个 <div>
B.第一行上显示两个 <div>
,第二行上没有 <div>
C.第一行上显示三个<div>
D.第一行上显示一个<div>
,第二行上显示两个 <div>
,分别显示在左右两侧
19..(多选题)有 CSS样式代码定义如下:
h1{margin:0px;padding:0px;}
div {background-color:#eee;}
div>p {
width:100px;
height:100px;
background-color:gray;
}
同时,有 html 代码如下所示:
<body>
<h1 style="border:1px solid red;">aa</h1>
<div style="height:200px;">
<p style="margin-top:20px;"></p>
</div>
</body>
关于上述代码在页面上的显示效果,下列说法中,正确的是( BC )。
A.段落 <p>
距离 <div>
之间,有 20px 的上外边距
B.段落 <p>
和 <div>
之间,没有上外边距
C.<div>
距离<h1>
之间,有 20px 的上外边距
D.<div>
和 <h1>
之间,没有上外边距
//div和p标签没有设浮动,p的margin-top:20px;会设置在div上
20.(多选题)对于 <span>
元素,下列样式代码中,无效的是( AD )。
A.margin:10px auto; B.padding:10px;
C.margin-left:20px; D.margin-top:20px;
节点对象: Node
三大属性:
1、nodeType: 节点的类型document
element
attribute
text
问题: 只能区分节点类型,不能进一步区分元素类型2、nodeName: 节点的名称
document #document
element 标签名 今后只要区分元素,就nodeName
强调: 所有元素的节点名都是全大写!
attribute 属性名
text #textnodeValue: 节点值
document null
element null
attribute 属性值 都用.value
文本 文本内容