客户端软件开发技术选择、填空解析
前言:
把A、B卷的两个选填整合了一下
目录
前言:
1.(单选题)对于JavaScript中的数组(Array),以下说法错误的是?
解析:无
2.(单选题)如下代码的运行结果是什么?
解析: 分析一下代码逻辑:首先创建了Date实例a,然后将a赋值给了b(这里是把 a 保存的引用地址赋值给 b,此时 a 和 b 指向堆内存中同一个 Date 对象);后续就是比较a和b
3.(单选题)Javascript不包括如下哪部分?
解析:无
4.(单选题)以下哪项不能创建检测4位纯数字的正则表达式?
解析: A选型没什么悬念,对于B选项,就是多了一个转移符 \ ,在这里的\\d效果 就是\d{1,4},然后这个语法就是检测1--4位数字;而C选项,这里既没有转移(就是单独的一个\d会转义成其他的东西),所以C错了。
5.(单选题)如下代码的运行结果是?
解析:num已经被定义了,但是没有赋值,所以是不存在值的(这里0、null、1都可以当作值),当使用 typeof 操作符检测未初始化的变量时,返回值是 undefined 。
6.(单选题)如下代码中的this指的是?
解析:c和d是不同场景的,简单来说,在new的时候就是c了,反之只是调用方法这些就是d
解析 :let和const关键字没有提升,所以会报错
9.(单选题)如何创建javascript函数?
解析:创建函数有两种,一种是用function开头,也就是A,另一种就是变量声明式的,这里其他选项都不满足,B、C是语法错误,D是函数调用的写法了。
10(单选题)可插入多行注释的 JavaScript 语法是?
解析:B、C都是单行,D用不了
11.(单选题)以下哪项无法读取person对象的属性name?
解析: 首先peerson现在可以说是一个键值对(map),而map的访问方式就是通过key值访问value值,类似C数组一样的;而A是引用变量,B、C是差不多的,只不过name和’name‘亦有差距
12.(单选题)如下代码的运行结果是?
解析:我们走一遍顺序:首先是函数内定义了fun的x=1,然后用原型定义了x=2,再创建了一个fun实例,实例对象在查找属性时,先在自身的属性中查找,如果找到就返回该属性的值;如果自身没有,才会去原型对象中查找 。对于 f1 来说,自身有 x 属性(值为 1 ),所以直接返回自身的 x 属性值,不会再去原型对象中查找。
13.(单选题)在数组的解构赋值中,let [ a,b,c ] = [1,2]结果中,a、b、c的值分别是?
解析:考点就是解构赋值,也就是按照顺序来匹配,当左边的值大于右边时,未赋值的地方给单纯let c;是没区别的,所以c还是undefined。
14.(单选题)写 "Hello World" 的正确 Javascript 语法是?
解析:AC不用说,对于B:response.write() 是 服务器端语言(如 ASP、PHP) 中用于输出内容的方法,不是 JavaScript 的语法。
解析:没明确说明前,String指的都是基本类型
16.(单选题)如下哪个代码的结果为true?
解析:===是即比较类型又比较值,这里的B、D肯定是排除了,而NaN永远不与自身相等。
17.(单选题)String对象中把字符串显示为下标的方法是“
解析:这里的下标是指上标下标的意思
解析:这里涉及到类型转换,前面是3+7 =10,然后是10转换成“10”+“5”,最后等于105
解析:==就是比较值,首先A、C肯定就排除,对于D,123在比较的时候是会转换的,只有B跟前面我们提到的一样,不管是===还是==都是false
解析:秒了
21.(单选题)如下代码的运行结果是?
解析:函数调用的时候,function fun(){ console.log("b"); } 被提升,fun 变量指向该函数,变量声明 var fun; 也被提升,但由于函数声明提升优先级更高,fun 已经被函数声明赋值,所以变量声明的提升不影响; var fun = function(){ console.log("a"); }; :这里是对 fun 变量进行赋值操作,将匿名函数赋值给 fun ,此时 fun 原来指向的函数声明被覆盖,fun 现在指向匿名函数
21.(单选题)如下哪个标识符的命名是错误的?
解析:数字开头,错
23.(单选题)如下代码运行的结果是?
解析:num是在fun函数内的,属于局部函数,所以输出时是找不到num的,
24.(单选题)引用名为 "xxx.js" 的外部脚本的正确语法是?
解析:认单词缩写秒了
25.(单选题)如下哪个选项不是javascript的基本数据类型?
解析: 前面提到了,秒了
26.(单选题)如下代码的运行结果是?
解析:当进行对象解构 var {a, b} = true; 时,由于 true 无法被解构(没有对应的 a、b 属性),所以 a 和 b 都会被赋值为 undefined
27.(单选题)如何编写当 i 等于 5 时执行一些语句的条件语句?
解析:秒了
28.(单选题)我们可以在下列哪个HTML元素中放置Javascript代码?
解析:秒了
29.(单选题)以下哪个不是Set的方法?
解析:
30.(单选题)如下代码的运行结果是?
解析:在函数 fun 内部,使用 var 声明的变量 num 会发生变量提升。
31.(单选题)如下代码的运行结果是?
解析:这里就是让null和undefined相加,在 JavaScript 中,null 参与算术运算时会被转为 0,undefined 参与算术运算时会被转为 NaN。
32.(单选题)严格模式的标志是如下哪项?
解析:认单词
33.(单选题)以下哪个对象不具备原生的iterator接口?
解析:只有d不是可迭代对象
34.(单选题)Array对象的哪个方法用作删除并返回数组的第一个元素?
解析:秒了
解析:A是返回星期几,C是返回年份,D是返回月份
36.(单选题)如何调用名为 "myFunction" 的函数?
解析:秒了
37.(单选题)以下说法错误的是?
解析:只有var才是属于全局对象
38.(单选题)ECMAScript2015指的是以下哪个版本?
解析:秒了
39.(单选题)以下描述错误的是?
解析:Array.of() 的功能是创建一个新的数组实例,它会把传入的参数作为数组的元素,将一组值转换为数组 ,而不是把数组转换为一组值。
40.(单选题)引用名为 "xxx.js" 的外部脚本的正确语法是?
解析:前面讲了,秒了
41.(单选题)DOM树中每个节点都有自己的类型,请问
的类型是?
解析:body就是元素节点,B是注释节点,D是文本节点
42.(单选题)在HTML页面中,CSS样式的属性名为background-image对应的style对象的属性名是
解析:属性名就是转换成驼峰命名了
43.(单选题)鼠标双击的事件是?
解析:A是鼠标移动到这里了,D则是移开,B是单机,C:Db就是double
44.(单选题)如下代码的运行结果是?
解析:未赋值的时候就是undefined的
45.(单选题)请问以下JavaScript代码运行后,页面渲染的结果是?编辑
解析:就是先创建一个内容是”span1“的span标签,然后插入到p1前面
46.(单选题)网页中有一个图片元素,哪个选项不能改变它的src属性?
解析:style 对象用于设置 CSS 样式(如 style.width、style.backgroundColor)
?
解析: #div1是查询标签的写法
48.(单选题)有如下对象
解析:语法如下
49.(填空题)
解析:分析,第一个空是完成for of 语法,第二个空是为了筛选偶数,也就是2,第三个空是continue,第四个空就是输出num;
50.(填空题)
解析:闭包就是为了跨级别调用函数,这里就需要在fun函数生命结束时,仍然让f可以调用sub函数,所以第一个空是返回sub函数,第二个则是将可以返回sub的函数fun()。
51.(填空题)
解析: 分析代码,首先是赋值,所以第一个空是this,第二、三两个空是为了继承父类,所以分别是class和extends,最好一个空则是super来调用父类的构造函数。
1.(单选题)对于JavaScript中的数组(Array),以下说法错误的是?
A.数组长度不可以动态改变。
B.var arr = new Array(5); 代码中的5代表数组的初始长度。
C.数组元素可以存储任意类型的值。
D.var arr = new Array();代码中的new可以省略。
解析:无
正确答案:A
2.(单选题)如下代码的运行结果是什么?
A:true true
B.false true
C.false false
D.true false
解析: 分析一下代码逻辑:首先创建了Date实例a,然后将a赋值给了b(这里是把 a
保存的引用地址赋值给 b
,此时 a
和 b
指向堆内存中同一个 Date
对象);后续就是比较a和b
Date属于引用类型(object),在比较的时候会比较他们的引用地址,这与基本类型是不同的,而此时a和b都是指向的同一个Data对象,所以b.setYear(2030)本质上没有任何影响,
对于 ==
和 ===
,当比较引用类型时,比较的是它们的引用地址。因为 a
和 b
指向同一个 Date
对象,所以不管是 ==
(只比较值,引用类型值就是引用地址 )还是 ===
(既比较值类型又比较值,这里值类型都是对象(Date),值也就是引用地址 ),结果都是 true
正确答案A
3.(单选题)Javascript不包括如下哪部分?
A:ECMAScript
B:BOM
C:COM
D.DOM
解析:无
正确答案:C
4.(单选题)以下哪项不能创建检测4位纯数字的正则表达式?
A.var reg = new RegExp(/\d{4}/);
B.var reg = new RegExp(' \\d{1,4}' );
C.var reg = new RegExp(' \d{1,4}' );
D.var reg = /\d{4}/;
解析: A选型没什么悬念,对于B选项,就是多了一个转移符 \ ,在这里的\\d效果 就是\d{1,4},
然后这个语法就是检测1--4位数字;而C选项,这里既没有转移(就是单独的一个\d会转义成其他的东西),所以C错了。
正确答案C
5.(单选题)如下代码的运行结果是?
A.0
B:Null
C:Undefined
D.1
解析:num已经被定义了,但是没有赋值,所以是不存在值的(这里0、null、1都可以当作值),当使用 typeof
操作符检测未初始化的变量时,返回值是 undefined
。
正确答案C
6.(单选题)如下代码中的this指的是?
A.null
B.window
C.student的实例对象
D.student
解析:c和d是不同场景的,简单来说,在new的时候就是c了,反之只是调用方法这些就是d
正确答案D
8.(单选题)如下代码的运行结果是?
A:Null
B:报错
C.100
D.undefined
解析 :let和const关键字没有提升,所以会报错
正确答案B
9.(单选题)如何创建javascript函数?
A.function myFunction()
B.function:myFunction()
C.function=myFunction()
D.myFunction()
解析:创建函数有两种,一种是用function开头,也就是A,另一种就是变量声明式的,这里其他选项都不满足,B、C是语法错误,D是函数调用的写法了。
正确答案A
10(单选题)可插入多行注释的 JavaScript 语法是?
A:/*This comment has more than one line*/
B://This comment has more than one line//
C:<!--This comment has more than one line-->
D./This comment has more than one line/
解析:B、C都是单行,D用不了
正确答案A
11.(单选题)以下哪项无法读取person对象的属性name?
A:person.name
B:person['na'+'me']
C:person['name']
D.person[name]
解析: 首先peerson现在可以说是一个键值对(map),而map的访问方式就是通过key值访问value值,类似C数组一样的;而A是引用变量,B、C是差不多的,只不过name和’name‘亦有差距
正确答案D
12.(单选题)如下代码的运行结果是?
A.2
B.null
C.undefined
D.1
解析:我们走一遍顺序:首先是函数内定义了fun的x=1,然后用原型定义了x=2,再创建了一个fun实例,实例对象在查找属性时,先在自身的属性中查找,如果找到就返回该属性的值;如果自身没有,才会去原型对象中查找 。对于 f1
来说,自身有 x
属性(值为 1
),所以直接返回自身的 x
属性值,不会再去原型对象中查找。
正确答案D
13.(单选题)在数组的解构赋值中,let [ a,b,c ] = [1,2]结果中,a、b、c的值分别是?
A.1 2 undefined
B.1 2 null
C.1 2 2
D.报错
解析:考点就是解构赋值,也就是按照顺序来匹配,当左边的值大于右边时,未赋值的地方给单纯let c;是没区别的,所以c还是undefined。
补充:如果是右边多的话,多的部分就会忽略
正确答案A
14.(单选题)写 "Hello World" 的正确 Javascript 语法是?
A:"Hello World"
B:response.write("Hello World")
C:("Hello World")
D.document.write("Hello World")
解析:AC不用说,对于B:response.write()
是 服务器端语言(如 ASP、PHP) 中用于输出内容的方法,不是 JavaScript 的语法。
正确答案D
15.(单选题)如下不是引用类型的是?
A:Array
B:String
C:Function
D.Date
解析:没明确说明前,String指的都是基本类型
正确答案B
16.(单选题)如下哪个代码的结果为true?
A.console.log(null===null);
B.console.log(123==="123");
C.console.log(NaN===NaN);
D.console.log(false===0);
解析:===是即比较类型又比较值,这里的B、D肯定是排除了,而NaN永远不与自身相等。
正确答案A
17.(单选题)String对象中把字符串显示为下标的方法是“
A:substr()
B.charAt()
C:sub()
D.indexOf()
解析:这里的下标是指上标下标的意思
正确答案C
18.(单选题)以下代码运行的结果是?
A.78
B.105
C.375
D.15
解析:这里涉及到类型转换,前面是3+7 =10,然后是10转换成“10”+“5”,最后等于105
正确答案B
19.(单选题)如下哪个代码的结果为false?
A:console.log(false == Boolean(0));
B:console.log(NaN == NaN);
C:console.log(null == null);
D:console.log(123 == "123");
解析:==就是比较值,首先A、C肯定就排除,对于D,123在比较的时候是会转换的,只有B跟前面我们提到的一样,不管是===还是==都是false
正确答案B
20.(单选题)如何在JavaScript中添加注释?
A:<!--This is a comment-->
B:--This is a comment
C:' This is a comment
D.//This is a comment
解析:秒了
正确答案D
21.(单选题)如下代码的运行结果是?
A:a b
B:A
C:B
D.报错
解析:函数调用的时候,function fun(){ console.log("b"); }
被提升,fun
变量指向该函数,变量声明 var fun;
也被提升,但由于函数声明提升优先级更高,fun
已经被函数声明赋值,所以变量声明的提升不影响; var fun = function(){ console.log("a"); };
:这里是对 fun
变量进行赋值操作,将匿名函数赋值给 fun
,此时 fun
原来指向的函数声明被覆盖,fun
现在指向匿名函数
也就是说,这里实际上是先进行了函数式声明,然后才是变量式声明,前面覆盖了后面的
正确答案:B
21.(单选题)如下哪个标识符的命名是错误的?
A:_num
B.8num
C.Num
D.$num
解析:数字开头,错
正确答案B
23.(单选题)如下代码运行的结果是?
A:报错
B:Null
C:Undefined
D.100
解析:num是在fun函数内的,属于局部函数,所以输出时是找不到num的,
正确答案A
24.(单选题)引用名为 "xxx.js" 的外部脚本的正确语法是?
A.<script href="xxx.js">
B.<script url="xxx.js">
C.<script src="xxx.js">
D.<script name="xxx.js">
解析:认单词缩写秒了
正确答案C
25.(单选题)如下哪个选项不是javascript的基本数据类型?
A:Symbol
B:Date
C:Number
D:String
解析: 前面提到了,秒了
正确答案B
26.(单选题)如下代码的运行结果是?
A:undefined undefined
B:"true" "true"
C:true true
D.1 1
解析:当进行对象解构 var {a, b} = true;
时,由于 true
无法被解构(没有对应的 a
、b
属性),所以 a
和 b
都会被赋值为 undefined
正确答案A
27.(单选题)如何编写当 i 等于 5 时执行一些语句的条件语句?
A:if i=5
B:if (i==5)
C:if i=5 then
D:if i==5 then
解析:秒了
正确答案B
28.(单选题)我们可以在下列哪个HTML元素中放置Javascript代码?
A:<scripts>
B:<script>
C:<style>
D.<javascript>
解析:秒了
正确答案B
29.(单选题)以下哪个不是Set的方法?
A.entries()
B.values()
C.keys()
D.forOf()
解析:
- Set 的标准方法包括
add()
、delete()
、has()
、clear()
、size
,以及迭代器方法entries()
、values()
、keys()
和forEach()
。
正确答案D
30.(单选题)如下代码的运行结果是?
A.2
B.1
C.1 2
D.undefined
解析:在函数 fun
内部,使用 var
声明的变量 num
会发生变量提升。
正确答案D
31.(单选题)如下代码的运行结果是?
A:报错
B:NaN
C:Null
D.undefined
解析:这里就是让null和undefined相加,在 JavaScript 中,null
参与算术运算时会被转为 0
,undefined
参与算术运算时会被转为 NaN
。
正确答案B
32.(单选题)严格模式的标志是如下哪项?
A:use static;
B:use strict;
C:"use static";
D."use strict";
解析:认单词
正确答案D
33.(单选题)以下哪个对象不具备原生的iterator接口?
A:Array
B:Arguments
C:String
D.Function
解析:只有d不是可迭代对象
正确答案D
34.(单选题)Array对象的哪个方法用作删除并返回数组的第一个元素?
A:push()
B:unshift()
C:pop()
D.shift()
解析:秒了
正确答案D
35.(单选题)有如下对象var date = new Date();以下哪项可以获取今天几号?
A:date.getDay()
B:date.getDate()
C:date.getFullYear()
D.date.getMonth()
解析:A是返回星期几,C是返回年份,D是返回月份
正确答案B
36.(单选题)如何调用名为 "myFunction" 的函数?
A:call function myFunction
B:call myFunction()
C:myFunction()
D.myFunction
解析:秒了
正确答案C
37.(单选题)以下说法错误的是?
A:const和let一样,在块级作用域中有效。
B:let定义的变量不存在变量声明提升。
C:使用let定义变量时,在同一个作用域中不允许重复定义。
D.用let在全局执行环境中定义的变量属于全局对象。
解析:只有var才是属于全局对象
正确答案D
38.(单选题)ECMAScript2015指的是以下哪个版本?
A.ES5
B.ES8
C.ES3
D.ES6
解析:秒了
正确答案D
39.(单选题)以下描述错误的是?
A:Array.from()可以将有iterator接口的对象转换为数组
B:数组对象的find()方法用于找到符合条件的第一个元素。
C:Array.of()可以将数组转换为一组值
D.数组对象的fill()方法用给定的值填充数组。
解析:Array.of()
的功能是创建一个新的数组实例,它会把传入的参数作为数组的元素,将一组值转换为数组 ,而不是把数组转换为一组值。
正确答案C
40.(单选题)引用名为 "xxx.js" 的外部脚本的正确语法是?
A:<script name="xxx.js">
B:<script src = "f561aaf6ef0bf14d4208bb46a4ccb3ad">
C:<script href="xxx.js">
D.<script url="xxx.js">
解析:前面讲了,秒了
正确答案B
41.(单选题)DOM树中每个节点都有自己的类型,请问<body>的类型是?
A:ELEMENT_NODE
B:COMMENT_NODE
C:DOCUMENT_NODE
D.TEXT_NODE
解析:body就是元素节点,B是注释节点,D是文本节点
正确答案A
42.(单选题)在HTML页面中,CSS样式的属性名为background-image对应的style对象的属性名是
A:backgroung_image
B:backgroung-image
C:Backgroung
D:backgroundImage
解析:属性名就是转换成驼峰命名了
正确答案D
43.(单选题)鼠标双击的事件是?
A:Mousenter
B:Click
C:Dblclick
D:Mouseover
解析:A是鼠标移动到这里了,D则是移开,B是单机,C:Db就是double
正确答案C
44.(单选题)如下代码的运行结果是?
A:Null
B:Undefined
C.1
D.0
解析:未赋值的时候就是undefined的
正确答案B
45.(单选题)请问以下JavaScript代码运行后,页面渲染的结果是?
A.<body>
<p id="p1">p1
<span>span1</span>
</p>
</body>
B.<body>
<span>span1</span>
<p id="p1">p1</p>
</body>
C.<body>
<p id="p1">p1</p>
<span>span1</span>
</body>
D.<span>span1</span>
<body>
<p id="p1">p1</p>
</body>
解析:就是先创建一个内容是”span1“的span标签,然后插入到p1前面
正确答案B
46.(单选题)网页中有一个图片元素<img id="img1" src="img/fruit.jpg"/>,哪个选项不能改变它的src属性?
A.let img1 = document.getElementById("img1");
img1.setAttribute("src","img/grape.jpg");
B.let img1 = document.querySelector("#img1");
img1.style.src = "url(img/grape.jpg)";
C.let img1 = document.getElementById("img1");
img1.src = "img/grape.jpg";
D.let img1 = document.querySelector("#img1");
img1.src = "img/grape.jpg";
解析:style
对象用于设置 CSS 样式(如 style.width
、style.backgroundColor
)
正确答案B
47.(单选题)以下哪个代码不能找到元素<div id='div1' class='banner1'>...</div>?
A:document.getElementById("#div1")
B:document.getElementById("div1")
C:document.querySelector(".banner1")
D:document.querySelector("#div1")
解析: #div1是查询标签的写法
正确答案A
48.(单选题)有如下对象
,哪项代码可以获得该对象中name属性的描述对象?
A:Object.getOwnPropertyDescriptor(p1,'name')
B:p1.getOwnPropertyDescriptor('name')
C:Function.p1.getOwnPropertyDescriptor('name')
D.p1.name.getOwnPropertyDescriptor()
解析:语法如下
Object.getOwnPropertyDescriptor(目标对象, 要查询的属性名)
正确答案C
49.(填空题)
填空,让代码运行结果如下:
解析:分析,第一个空是完成for of 语法,第二个空是为了筛选偶数,也就是2,第三个空是continue,第四个空就是输出num;
答案:(1)Of (2)2 (3)Continue (4)Num
50.(填空题)
填空实现闭包
解析:闭包就是为了跨级别调用函数,这里就需要在fun函数生命结束时,仍然让f可以调用sub函数,所以第一个空是返回sub函数,第二个则是将可以返回sub的函数fun()。
答案:(1)sub (2)fun()
51.(填空题)
填空实现继承
解析: 分析代码,首先是赋值,所以第一个空是this,第二、三两个空是为了继承父类,所以分别是class和extends,最好一个空则是super来调用父类的构造函数。
答案:(1)this (2)class (3)extends (4)super