参考教材:HTML5网页前端设计(第2版 )  作者:周文洁

1 . 普通 (2分)如何使用JavaScript对浮点数进行四舍五入获取最接近的整数值?

使用Math.round()方法。

2 . 普通 (2分)如何创建与调用自定义名称的JavaScript函数?

使用关键词function来创建自定义函数,例如: function welcome(){ alert("Welcome to JavaScript World"); } 函数可以通过使用函数名称的方法进行调用,例如welcome()。

3 . 普通 (2分)请分别说出下列内容中变量x运算结果。 (1)var x = 9+9; (2)var x = 9+"9"; (3)var x = "9"+"9";

(1)18 (2)99 (3)99。

加号左右都是数字时就做加法运算,有任意一边是字符时加号都当做连字符使用。

4 . 普通 (2分)如何使用警告对话框显示“Hello JavaScript"?

alert("Hello JavaScript");

5 . 普通 (2分)引用JavaScript外部脚本的正确写法是?在HTML页面中直接插入JavaScript代码的正确做法是何种标签?

外部脚本引用方法为:<script src="JavaScript文件URL"></script>。 在HTML页面中直接插入JavaScript代码的正确做法是<script>标签。

6 . 容易 (2分)在JavaScript中已知有var x = 2020; 且有var y = "123";若执行var result = x + y;则result的最终值是___。

2020123

7 . 容易 (2分)在JavaScript中已知有var x=0;和var y = 99;若执行var result = x1 && x2;则result的最终值是___。(区分大小写)

false

0对应的是false,99对应的是true,&&表示并列关系逻辑与,因此有一个为假则整体为假,最终返回值是false。

8 . 容易 (2分)在JavaScript中已知有var x1 = isNaN("123");且有var x2 = isNaN("good");则执行后x1的值是___,x2的值是___。(区分大小写)

false、true

isNaN()用于检测数据类型是否为数值,如果不是数值返回true,是数值返回false。

9 . 容易 (2分)在JavaScript中已知有var x= "99";和var y = "100";若执行var result = x > y;则result的最终值是___。(区分大小写)

true

虽然从数学概念上100应该大于99,但是有双引号说明是字符串,需要遵守字符串的同位置比较原则。第一次比较位置序号为0的字符,也就是比较x中的十位数9和y中的百位数1,因此9比1大,返回true。

10 . 容易 (2分)已知有var s="Happy_Day";且有var y=s.lastIndexOf("y");请问运行后y的值是___。

8

lastIndexOf用于从右往左检索指定的字符是否存在,并返回字符的位置序号。由于字符串是从左往右开始、从序号0开始计算,因此倒序检索第一次出现的y就是单词Day中的y在序号8的位置上。

11 . 容易 (2分)在JavaScript中假设有var k = 0xC;等同于十进制的数字 ___ 。

12

在JavaScript中,如果数字是0x开头后面再跟数字或A-F字母的话是十六进制表示法。本题的十六进制0xC转换成十进制是12。

12 . 容易 (2分)在JavaScript中,已知有var s1="Hello"; 且var s2="World";若有var s3 = s1.concat(s2);请问此时s1的值是"___", s3的值是"___"。(区分大小写)

Hello、HelloWorld

当执行s1.concat(s2)时不会影响s1和s2本身的值,因此s1的值不变还是Hello。而返回值会将这2个字符串合并,因此s3的值是HelloWorld。

13 . 容易 (2分)在JavaScript中假设有var x = 010; 等同于十进制的数字___。

8

在JavaScript中,如果数字是0开头后面再跟数字的话是八进制表示法。本题的八进制010转换成十进制是8。

14 . 容易 (2分)在JavaScript中假如有var x = 0.999; 且var y = x.toFixed(2);运行后y的值是___。

1.00

toFixed(2)是保留2位小数,但是遵守四舍五入原则。因此0.999先四舍五入变成1,然后补2位小数变成1.00。

15 . 容易 (2分)已知有var s="Happy New Year";且有var y=s.indexOf("y");请问运行后y的值是___。

4

indexOf用于获取字符串中第一次出现的位置序号,且从左往右开始、从序号0开始计算。因此第一次出现的y就是单词Happy中的y在序号4位置上。

16 . 普通 (2分)在JavaScript中,var x = .12;的写法是正确的,它等同于var x = 0.12;

正确

浮点数类型的小数点前面整数位为0可以省略。

17 . 普通 (2分)在JavaScript中,var x = 3e2;等同于var x = 3*3;

错误

18 . 普通 (2分)在HTML5页面可以使用<script>首尾标签嵌套来嵌入JavaScript代码。

正确

19 . 普通 (2分)在JavaScript中可以使用双斜杠(//)表示多行注释,将其写在代码块的首尾处即可。

错误

在JavaScript中多行注释使用/*开头,以*/结尾,在这2个符号之间的所有内容都会被认为是注释内容,不会被浏览器所执行。

20 . 普通 (2分)<p>如何使用JavaScript查找第一个出现的段落元素<p>?</p>

<p>使用var p = document.getElementsByTagName(“p”)方法先获取全部的段落元素<p>,其中第一个出现的段落元素<p>就是p[0]。 </p>

21 . 普通 (2分)在HTML5页面也可以使用<script src="js文件url地址"></script>的形式来引用外部JavaScript文件,引用语句必须放在<head>首尾标签中。

错误

引用语句可以放在<head>或者<body>首尾标签中均可。

22 . 普通 (2分)已知var x = -9/0;则x的返回值是NaN。

错误

x的返回值是-Infinity。只有特殊情况0/0的返回值是NaN。

23 . 普通 (2分)已知var x1="test", x2="TEST";那么x1>x2的返回值是true。

正确

字符串比大小时会左对齐然后从左往右依次比较,只要不相同能分出胜负就停下。在字母相同的情况下JavaScript是区分大小写的,同一个字母的小写大于大写。

24 . 普通 (2分)在JavaScript中假如有var x = 0.999; 且var y = x.toFixed(2);那么y的值是1。

错误

即使四舍五入进位后没有小数了,也得保留指定的位数,因此最后的y值是1.00

25 . 普通 (2分)已知有var s = "Happy";且var result = s.indexOf("h");那么result的值是0。

错误

由于JavaScript区分大小写,因此没有查到小写字母h的所在位置,返回默认值-1。如果查找的是大写字母H,才能返回值为0表示从左往右数第0位置(从0开始计数)。

26 . 容易 (2分)在JavaScript中用alert()弹出提示对话框,以下哪个符号可以用于其中的文本换行?( )。

A. \t

B. enter

C. <br>

D. \n

在JavaScript中,alert()允许支持转义字符\n表示文本换行。

27 . 容易 (2分)在JavaScript中已知有document.write("Hello World");如果希望显示内容时2个单词之间可以换行,以下哪句可以实现?( )。

A. document.write("Hello<span>World");

B. document.write("Hello<br>World");

C. document.write("Hello\tWorld");

D. document.write("Hello\nWorld");

在document.write()方法中,用<br>标签来实现换行。

28 . 容易 (2分)在JavaScript中,关于条件语句if…else以下哪个说法不正确?( )。

A. if语句可以单独不使用,不配套else语句。

B. if语句必须和else语句搭配使用,不可以单独出现。

C. 当有多个条件分支时,还可以在if和else语句之间加入一个或多个else if语句。

D. if语句的执行内容可以是单行代码也可以是多行代码块。

if语句可以单独出现,也可以和else语句配套使用。当有多个条件分支时,还可以加入若干个else if语句。

29 . 容易 (2分)在JavaScript中关于逻辑或(||)的用法以下描述不正确的是?( )。

A. alert(false||null);运行结果会显示null。

B. alert(false||NaN);运行结果会显示NaN。

C. 假设从未声明过变量x,那么alert(false||x);运行结果会显示undefined。

D. 假设从未声明过变量x,那么alert(true||x);运行结果会显示true。

如果声明过变量x但是没有赋值,那么alert(false||x);运行结果会显示undefined。如果从未声明过变量x,那么执行时会发生错误,alert语句不会有运行结果显示。

30 . 容易 (2分)在JavaScript中以下哪句可以创建一个新的段落元素<p>,并且设置该元素的背景颜色为银色(silver)?( )。

A. var p = document.createElements("p"); p.style.background-color = "silver";

B. var p = document.createElement("p"); p.style.backgroundColor = "silver";

C. var p = document.createElement("p"); p.style.background-color = "silver";

D. var p = document.createElements("p"); p.style.backgroundColor = "silver";

document.createElement("p")是创建一个新的段落元素<p>,这里Element不是复数形式不要加s结尾。更改样式时属性名称改成camel标记法,即首个单词全小写,后面每个单词首字母大写,不要连字符。

31 . 容易 (2分)已知<button οnclick="test()"测试按钮</button>,其中onclick事件表示什么意思?( )。

A. 用户鼠标左键单击按钮时触发onclick事件,执行test()函数

B. 用户鼠标左键双击按钮时触发onclick事件,执行test()函数

C. 用户鼠标右键单击按钮时触发onclick事件,执行test()函数

D. 用户鼠标右键双击按钮时触发onclick事件,执行test()函数

onclick是鼠标左键单击事件。

32 . 容易 (2分)以下哪个是元素被鼠标左键点击事件?( )。

A. onchange

B. onclick

C. ondbclick

D. onkeydown

onclick是鼠标左键点击;ondbclick是鼠标左键双击;onchange是域的内容发生改变;onkeydown是键盘按键被按下。

33 . 容易 (2分)已知var s1 = "Test"; 且var s2 = s1.toUpperCase();请问s2的值是以下哪个?( )。

A. Test

B. test

C. TEST

D. tEST

toUpperCase()用于将字符串中所有的字母都转化为大写字母。

34 . 容易 (2分)已知var x1 = "7", x2 = "10"; 那么执行alert(x1>x2)在对话框看到显示的最终效果是?( )。

A. true

B. false

C. 7>10

D. x1>x2

字符串比大小时,如果2个都是纯数字且位数不一样,仍然左对齐之后从左往右依次比大小,7比1大,因此已经得出结论为true。

35 . 容易 (2分)已知var x1=999, x2=0, x3="test", x4=null;那么Boolean(x1)、Boolean(x2)、Boolean(x3)以及Boolean(x4)的值依次是?( )。

A. false、true、true、true

B. true、true、true、false

C. true、false、true、false

D. false、true、false、true

0和null对应的Boolean转换值都是false,999(非0整数)和"test"(非空字符串)对应的Boolean转换值都是true。

36 . 容易 (2分)已知var x1=123, x2="Happy";那么isNaN(x1)和isNaN(x2)的值依次是?( )。

A. yes、no

B. false、true

C. no、yes

D. true、false

isNaN()指的是Not a Number(不是一个数字),且返回值是布尔值(只能是true或者false来表示真或假)。

37 . 容易 (2分)已知var x = 010;下列哪个说法是正确的?( )。

A. x是一个十进制数字,值是10。

B. x是一个十六进制数字,相当于十进制里面的10。

C. x是一个八进制数字,相当于十进制里面的8。

D. 以上说法都不对。

0x开头的才是十六进制数;0开头的是八进制数;十进制数不用0开头。

38 . 容易 (2分)在JavaScript中假如有var x = 3.1415926; 且var y = x.toFixed(2);以下说法正确的是?( )。

A. y的值是3.14

B. y的值是3.15

C. y的值是2

D. y的值是3.141596

在JavaScript中可以使用toFixed()方法规定小数点后面保留几位,该方法遵守四舍五入的规则。

39 . 容易 (2分)已知var x = 2e9000; 假设尝试执行alert(x);最终显示的结果是?( )。

A. NaN

B. 2e9000

C. Infinity

D. x

数字超出上限均显示为正无穷Infinity。

40 . 容易 (2分)如果有var x = 3.14e5;它等同于下列哪个选项的值?( )。

A. 3.14*e*5

B. 0.0000314

C. 3.1400000

D. 314000

e5表示10的5次方,这里就是3.14乘以10的5次方等同于314000。

41 . 普通 (2分)已知有var msg = "HappyBirthday";且var y1 = msg.indexOf("a");var y2 = msg.lastIndexOf("a");请问y1和y2的返回值分别是多少?( )。

A. y1的值是2,y2的值是12。

B. y1的值是2,y2的值是-2。

C. y1的值是1,y2的值是11。

D. y1的值是1,y2的值是-1。

indexOf()指的是从左往右数首次出现的位置编号,且编号从0开始计数,因此y1的值是1。lastIndexOf()指的是从右往左数首次出现的位置编号,因此y2的值是11。注:如果要查找的值不存在会返回-1。

42 . 容易 (2分)已知var s1="Happy"; var s2=" New";var s3=" Year";且var msg = s1.contact(s2,s3);以下哪句说法是正确的?( )。

A. msg和s1的值都被更新成了"Happy New Year"。

B. msg的值被更新成了"Happy New Year";s1的值被更新成了" New Year"。

C. msg和s1的值都被更新成了" New Year"。

D. msg的值被更新成了"Happy New Year";s1的值没更新,还是"Happy"。

在JavaScript中contact用于从左往右连接所有字符串,然后形成最新的返回值,因此msg的值是"Happy New Year"。s1的值不会受到影响。

43 . 容易 (2分)已知有字符串var s = "happy"; 那么以下哪句可以获取到里面的字母a?( )。

A. s.charAt(1)

B. s.charAt(2)

C. s.charAt(-1)

D. s.charAt(-2)

在JavaScript中使用charAt()方法获取指定位置上的单个字符,且从左往右编号是从0开始计数,因此首字母h在0号位,不难推出字母a在1号位。

44 . 容易 (2分)已知在JavaScript中有声明了一个字符串s,以下哪个选项可以获取该字符串的长度?( )。

A. s.size

B. s.length

C. s.size()

D. s.length()

s.length这里的length是String对象的属性,返回值就是字符串长度。

45 . 容易 (2分)假如alert(msg)之前从未对msg进行声明,则会显示什么结果?( )。

A. null

B. 0

C. undefined

D. false

当需要输出的变量从未声明过,或声明过但没有赋值,最终显示出来的都是undefined字样。

46 . 容易 (2分)以下哪个不是JavaScript的关键字或保留字?( )。

A. msg

B. function

C. if

D. else

JavaScript中规定了一系列关键字和保留字不能作为变量或函数名称,这里msg是自定义名称可以使用,不属于关键字或保留字。

47 . 容易 (2分)以下哪句是外部js文件的正确引用方式?( )。

A. <link rel="stylesheet" href="test.js" />

B. <link rel="stylesheet" src="test.js" />

C. <script src="test.js"></script>

D. <script href="test.js"></script>

<link rel="stylesheet" href="test.js" />是css样式表的引用写法,<script src="test.js"></script>才是正确的。

48 . 容易 (1分)已知<p id="test">hello</p>,然后有var x = document.getElementById("test");请问如何使用JavaScript将该段落元素内部的内容更新为HELLO?( )。

A. x = "HELLO";

B. x.innerHTML = "HELLO";

C. x.value = "HELLO";

D. x.replace = "HELLO";

x.innerHTML正确,表示更新该元素内部内容。

49 . 容易 (1分)已知<div id="test" class="style01"></div>, 以下哪句JavaScript代码可以获得该元素?( )。

A. var x = document.createElement("test");

B. var x = document.createElement("style01");

C. var x = document.getElementById("test");

D. var x = document.getElementById("style01");

document.createElement()表示动态新建一个元素,且引号里面应该填某一个实际存在的元素标签名称例如div或p,而不是自定义名称。document.getElementById("test");正确,这里面填的应该是id值,不是class值。

50 . 容易 (1分)以下哪种JavaScript的变量声明是不规范的?( )。

A. var hello;

B. var _hello;

C. var $hello;

D. var %hello;

变量声明时首位只能是字母、下划线_或美元符号$。

51 . 容易 (1分)已知var x=10; x+="1";此时x最终等于多少?( )。

A. 101

B. 11

C. 10“1”

D. 1

首先,+=是一种简写方式,相当于x = x+"1"; 其次,+号前后有一个是数字10,一个是用双引号括住的字符1,因此不能做加法运算,而是起到了连接作用。

52 . 容易 (1分)JavaScript技术中,变量的声明用到哪个写法?( )。

A. int

B. var

C. double

D. char

JavaScript是一种弱类型语言,因此所有变量都声明为var,不特别区分这是double还是int或者其他。

53 . 容易 (1分)JavaScript中以下哪种写法只能用于单行注释?( )。

A. <%--注释 --%>

B. <!--注释-->

C. /* 注释 */

D. //注释

在Web前端开发中,//注释是JavaScript的单行注释,<!--注释-->是HTML的注释,/* 注释 */是CSS的注释以及JavaScript的多行注释,<%--注释 --%>是JSP的隐式注释。