JavaScript 基础阶段测试题
JavaScript 基础阶段测试题,试试你能得多少分?
一、选择题
1、分析下段代码输出结果是( )
var arr = [2,3,4,5,6];
var sum =0;
for(var i=1;i < arr.length;i++) {
sum +=arr[i] }
console.log(sum);
A.20 B.18 C.14 D.12
2、以下关于 Array 数组对象的说法不正确的是( )
A.对数组里数据的排序可以用 sort 函数,如果排序效果非预期,可以给 sort 函数加一个排序函数的参数
B.reverse 用于对数组数据的倒序排列
C.向数组的最后位置加一个新元素,可以用 pop 方法
D.unshift 方法用于向数组删除第一个元素
3、以下代码运行的结果是输出( )
var a = b = 10;
(function(){
var a=b=20
})();
console.log(b);
A.10 B.20 C.报错 D.undefined
4、以下代码运行后的结果是输出( )
var a=[1, 2, 3];
console.log(a.join());
A.123 B.1,2,3 C.1 2 3 D.[1,2,3]
5、在 JS 中,’1555’+3 的运行结果是( )
A.1558 B.1552 C.15553 D.1553
6、以下代码运行后弹出的结果是( )
var a = 888;
++a;
alert(a++);
A.888 B.889 C.890 D.891
7、关于变量的命名规则,下列说法正确的是( )
A.首字符必须是大写或小写的字母,下划线(_)或美元符($)
B.除首字母的字符可以是字母,数字,下划线或美元符
C.变量名称不能是保留字
D.长度是任意的
E.区分大小写
8、下列的哪一个表达式将返回值为假( )
A.!(3<=1)
B.(4>=4)&&(5<=2)
C.(“a”==“a”)&&(“c”!=“d”)
D.(2<3)||(3<2)
9、下面代码,k的运行结果是( )
var i = 0,j = 0;
for(;i<10,j<6;i++,j++){
k = i + j;
}
A.16 B.10 C.6 D.12
10、var x = 1; function fn(n){n = n+1}; y = fn(x); y 的值为( )
A.2 B.1 C.3 D.undefined
11、[1,2,3,4].join('0').split('') 的执行结果是( )
A.'1,2,3,4'
B.[1,2,3,4]
C.[“1”,“0”,“2”,“0”,“3”,“0”,“4”]
D.'1,0,2,0,3,0,4'
12、下面代码的运行结果是:第一次弹( )第二次弹( )
function fn1() {
alert(1);
}
alert( fn1() );
A.1
B.alert(1);
C.function fn1() { alert(1); }
D.undefined
13,以下代码运行后,结果为( )
fn1();
var fn1 = function(a){ alert(a); }
A.1 B.程序报错 C.alert(1); D.undefined
14,var n = "miao wei ke tang".indexOf("wei",6);n的值为:( )
A.-1 B.5 C.程序报错 D.-10
15,下面对 substring() 方法描述不正确的是( )
A.一共有两个参数,省略第二个参数表示从参数开始位置提、截取到字符串结束。
B.提取之前会比较两个参数的大小,并根据大小调整位置。
C.可以接收负数参数,负数表示从后往前数字符位置。
D.如果没有设置参数,直接返回整个字符串。
16,alert( "12">"9" ) 的运行结果正确的是( )
A.true B.false
17,下面的描述中不正确的是( )
A.arguments 中保存了实际传入函数内的所有参数。
B.return 只能在函数内部使用。
C.setInterval(fn1,1000) 只会调用一次 fn1。
D.Date 对象的 getMonth() 获取到的值比实际月份小1。
18,下面的等式成立的是( )
A.parseInt(12.5) == parseFloat(12.5)
B.Number('') == parseFloat('')
C.isNaN('abc') == NaN
D.typeof NaN === 'number'
19,下面的描述中不正确的是( )
A.'==' 在比较过程中,不但会比较两边的值,还会比较两边的数据类型。
B.NaN == NaN 的结果是 true。
C.isNaN,判断传入的参数是否为数字,为数字返回true,否则返回false
D.字符串的 length 只可以获取,不可以设置。
20,以下代码中,会出现什么结果:第一次弹( ),第二次弹( ),第三次弹( )
function fn1() {
var a = 0;
function fn2() { ++a; alert(a); }
return fn2;
}
fn1()();
var newFn = fn1();
newFn();
newFn();
A.1 B.2 C.0 D.3
21,下面代码的运行结果是:第一次弹( ),第二次弹( )
var a = 100;
function fn1() {
alert(a);
var a = 10;
}
alert( fn1() );
A.100
B.10
C.function fn1() { alert(1); }
D.undefined
22,以下代码运行后,arr的结果为( ),arr2的结果为( )
var arr = [1,2];
var arr2 = arr.concat();
arr2.push( arr.splice(1,0) );
A.[1,2] B.[1,2,[2]] C.[1,2,[]] D.[1,2,3]
23,下面关于数组的描述正确的是( )
A.数组的 length 既可以获取,也可以修改。
B.调用 pop() 方法,不会修改原数组中的值。
C.shift() 方法的返回值是新数组的长度。
D.调用 concat() 方法,会修改原数组的值。
24,下列程序中alert按顺序分别弹出:( ),( ),( )
var a = 10;
function test() {
a = 100;
alert(a);
alert(this.a);
var a;
alert(a);
}
test();
A.10 B.100 c.undefined D.程序报错
25,分析下面的代码,输出的结果是( )
var arr=new Array(5);
arr[1]=1;
arr[5]=2;
console.log(arr.length);
A.2 B.5 C.6 D.报错
26,在JavaScript中,下列( )语句能正确获取系统当前时间的小时值。
A.var date=new Date(); var hour=date.getHour();
B.var date=new Date(); var hour=date.gethours();
C.var date=new date(); var hour=date.getHours();
D.var date=new Date(); var hour=date.getHours();
27,请选择结果为真的选项( )
A.null == undefined
B.null === undefined
C.undefined == false
D.NaN == NaN
28, Math.ceil(-3.14)的结果是( ),Math.floor(-3.14) 的结果是( )
A.-3.14 B.-3 C.-4 D.3.14
29, 阅读以下代码,在页面中结果是( )
var s="abcdefg";
alert(s.substring(1,2));
A.a B.b C.bc D.ab
30, 以下 ECMAScript 变量命名格式正确的是( )
A._125dollor B.1207A C.-dollor D.this
二、问答题(每题8分)
1,找到数组 [-1,-2,1,10,4,5,8] 中的最大值,至少写出两种方法?
2,封装一个函数,将字符串 "miao-wei-ke-tang" 从第二个单词开始首字母大写,然后拼成字符串 miaoWeiKeTang,并返回。(注意:封装成一个函数)
3 , 封装一个函数,将字符串 " miao v " 实现 trim 的功能,但不使用 trim 方法,去掉字符串前后空格,返回处理后的字符串。
4,写一个方法,找出字符串 "abcabcabcabcabcabda" 中 "ab" 出现的次数和位置。
5 ,请用 js 代码完成下列需求:body 里生成 100 个 div,每个 div 宽 100px,高 100px,内容是 1-100 自身序号,颜色按红、黄、蓝、绿交替变色,10行10列排列。
- 答案如下 -
一、选择题答案:
1、B
2、CD
3、B
4、B
5、C
6、B
7、ABCDE
8、B
9、B
10、D
11、C
12、第一次弹( A )第二次弹( D )
13、B
14、A
15、C
16、B
17、C
18、D
19、ABC
20、第一次弹( A ),第二次弹( A ),第三次弹( B )
21、第一次弹( D ),第二次弹( D )
22、arr 的结果为( A ),arr2 的结果为( C )
23、A
24、按顺序分别弹出( B ),( A ),( B )
25、C
26、D
27、A
28、Math.ceil(-3.14) 的结果是( B ),Math.floor(-3.14) 的结果是( C )
29、B
30、A
二、问答题答案:
1、找到数组 [-1, -2, 1, 10, 4, 5, 8] 中的最大值,至少写出两种方法?
var arr = [-1, -2, 1, 10, 4, 5, 8];
// 第一种
var max1 = Math.max.apply(null, arr);
// 第二种
var max2 = arr.sort(function(a, b){
return b - a;
})[0];
// 第三种
var max3 = -Infinity;
for (var i = 0; i < arr.length; i++) {
if (max3 < arr[i]) {
max3 = arr[i];
}
}
2、封装一个函数,将字符串 "miao-wei-ke-tang" 从第二个单词开始首字母大写,然后拼成字符串 miaoWeiKeTang,并返回。(注意:封装成一个函数)
var str = 'miao-wei-ke-tang';
function toTuoFeng(str) {
var arrStr = str.split('-');
for (var i = 1; i < arrStr.length; i++) {
arrStr[i] = arrStr[i].substr(0, 1).toUpperCase() + arrStr[i].substr(1);
}
return arrStr.join('');
}
console.log(toTuoFeng(str));
3、封装一个函数,将字符串 " miao v " 实现 trim 的功能,但不使用 trim 方法,去掉字符串前后空格,返回处理后的字符串。
var str = ' miao v ';
// 第一种方法
function trim(str) {
var start, end;
for (var i=0; i < str.length; i++) {
if (str[i] !== '') {
start = i;
break;
}
}
for (var i = str.length-1; i >= 0; i--) {
if (str[i] !== '') {
end = i;
break;
}
}
return str.substring(start, end + 1);
}
// 第二种方法
function trim(str) {
var start = 0, end = str.length - 1;
while(start < end && str[start] == '') {
start++;
}
while(start < end && str[end] == '') {
end--;
}
return str.substring(start, end + 1);
}
console.log(trim(str));
4、写一个方法,找出字符串 "abcabcabcabcabcabda" 中 "ab" 出现的次数和位置。
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);
5、请用 JS 代码完成下列需求:body 里生成 100 个 div,每个 div 宽 100px,高 100px,内容是 1-100 自身序号,颜色按红、黄、蓝、绿交替变色,10 行 10 列排列。
- CSS -
.box { position:relative; }
.box div { width: 60px; height: 60px; position: absolute; }
- HTML -
< div class="box"></div>
- JavaScript -
var box = document.getElementsByTagName('div')[0];
var str = '';
var arr = ['red', 'yellow', 'blue', 'green'];
for (var i = 0; i < 100; i++) {
str += ' < div style="left:' + i%10*60 + 'px; top:' + Math.floor(i/10)*60 + 'px; background:' + arr[i%arr.length] + ';">' + (i+1) + '</div>';
}
box.innerHTML += str;
当然答案还有很多,我们只是提供了其中几种
JavaScript 基础阶段测试题的更多相关文章
- 黑马基础阶段测试题:通过字符输入流读取info.txt中的所有内容,每次读取一行,将每一行的第一个文字截取出来并打印在控制台上。
package com.swift; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File ...
- 黑马基础阶段测试题:创建Phone(手机)类,Phone类中包含以下内容:
package com.swift; public class Phone { private String pinpai; private int dianliang; public String ...
- 黑马基础阶段测试题:创建一个存储字符串的集合list,向list中添加以下字符串:”C++”、”Java”、” Python”、”大数据与云计算”。遍历集合,将长度小于5的字符串从集合中删除,删除成功后,打印集合中的所有元素
package com.swift; import java.util.ArrayList; import java.util.List; import java.util.ListIterator; ...
- 黑马基础阶段测试题:定义一个int类型的数组,数组中元素为{5,7,3,9,4}。求出数组中的最小值,并判断最小值是否为偶数,如果是偶数则输出“最小值为偶数”,如果不是偶数则输出“最小值为奇数”。打印如下:
package com.swift; import java.util.Arrays; public class ArrayTest { public static void main(String[ ...
- JavaScript基础系列目录(2014.06.01~2014.06.08)
下列文章,转载请亲注明链接出处,谢谢! 链接地址: http://www.cnblogs.com/ttcc/tag/JavaScript%20%E5%9F%BA%E7%A1%80%E7%9F%A5%E ...
- javascript基础修炼(8)——指向FP世界的箭头函数
一. 箭头函数 箭头函数是ES6语法中加入的新特性,而它也是许多开发者对ES6仅有的了解,每当面试里被问到关于"ES6里添加了哪些新特性?"这种问题的时候,几乎总是会拿箭头函数来应 ...
- javascript基础修炼(11)——DOM-DIFF的实现
目录 一. 再谈从Virtual-Dom生成真实DOM 二. DOM-Diff的目的 三. DOM-Diff的基本算法描述 四. DOM-Diff的简单实现 4.1 期望效果 4.2 DOM-Diff ...
- JavaScript基础视频教程总结(111-120章)
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- JavaScript基础四
1.13 Js中的面向对象 1.13.1 创建对象的几种常用方式 1.使用Object或对象字面量创建对象 2.工厂模式创建对象 3.构造函数模式创建对象 4.原型模式创建对象 1.使用Object或 ...
随机推荐
- JDK1.8源码阅读系列之三:Vector
本篇随笔主要描述的是我阅读 Vector 源码期间的对于 Vector 的一些实现上的个人理解,用于个人备忘,有不对的地方,请指出- 先来看一下 Vector 的继承图: 可以看出,Vector 的直 ...
- Dubbo源码学习文章目录
目录 Dubbo源码学习--服务是如何发布的 Dubbo源码学习--服务是如何引用的 Dubbo源码学习--注册中心分析 Dubbo源码学习--集群负载均衡算法的实现
- Wireshark网络抓包(三)——网络协议
一.ARP协议 ARP(Address Resolution Protocol)地址解析协议,将IP地址解析成MAC地址. IP地址在OSI模型第三层,MAC地址在OSI第二层,彼此不直接通信: 在通 ...
- 前端基本知识(一):W3C标准&&冒泡事件,捕获事件,W3C DOM对象模型,对比分析
W3C标准是万维网联盟, 其他的可以参考万维网版本的更新内容 一.W3C标准 二.W3C DOM事件 三.冒泡事件 四.捕获事件 一.W3C标准 其实网页是由三分部组成:1.结构(structure) ...
- CSS之浏览器默认样式设置
今天自己写css样式时,其中用到了<ul>标签,设置了一系列效果后运行,发现位置与设置有出入.chrome上打开检查项,发现<ul>标签的styles底部多了以下一段: ul, ...
- 关于OpenGL和DX学习的取舍
大家多知道左右就肯定要与显卡打交道.两大图形图像IPA.OpenGL(图形),DX(图形,声音,键盘控制,网络) OpenGL的兴起可能取决于苹果公司的适用,吸引看大部分开发者适用,它有跨平台的有点. ...
- 【排序算法】归并排序算法 Java实现
归并排序是建立在归并操作上的一种有效的排序算法.该算法是采用分治法(Divide and Conquer)的一个非常典型的应用. 基本思想 可以将一组数组分成A,B两组 依次类推,当分出来的小组只有一 ...
- 项目中通过Sorlj获取索引库中的数据
在开发项目中通过使用Solr所提供的Solrj(java客户端)获取索引库中的数据,这才是真正对项目起实质性作用的功能,提升平台的检索性能及检索结果的精确性 第一步,引入相关依赖的jar包 第二步,根 ...
- storyboard页面跳转传值
受学姐的影响,习惯纯代码编程,这次要修改别人的代码,很多编程风格还不习惯. 在此之前,页面跳转我都用的是Navigation,故事板上的页面跳转带传值,让我卡了好半天. 页面跳转: [self per ...
- UE4从零搭建CF游戏关卡(蓝图篇)
一 往关卡中放置物体 二 Static Mesh 和 BSP 从今天开始我们要建立一个类似CF游戏的场景,不写一句代码,纯蓝图实现. 三 英语学习 今天早上开会,经理说了一件让我震惊的事情,她说最近大 ...