20道关于JavaScript的基础面试题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

20道关于JavaScript的基础面试题
1.有关if语句说法不正确的是()。

A.if后面的条件必须使用括号包围。

B.有的if语句可以没有else部分。

C.if语句也支持嵌套。

D.else中语句的执行总是会匹配最外层的那个if语句中的条件判断。

2.有关switch语句的结论错误的是()。

A.两个case不可共同使用一个break语句。

B.对每个case的匹配操作实际上是“===”恒等运算符比较,因此,表达式和case的匹配并不会做任何类型转换。

C.ECMAScript标准的确允许每个case关键字跟随任意的表达式。

D.如果在函数中使用switch语句,有时可以使用return来代替break
3.有关JS函数不正确的结论有()。

A.定义函数时声明了多个参数,但调用时可以不使用它们。

B.函数体是由JavaScript语句组成的,必须用花括号括起来,即使函数体不包含任何语句。

C.在嵌套时,函数声明可以出现在所嵌套函数的顶部也可以出现在底部。

D.定义函数时,并不执行函数体内的语句,它和调用函数时待执行的新函数对象相关联。

4.有关函数声明语句和函数定义表达式区别错误的结论是()。

A.函数声明语句创建的变量可以使用delete删除。

B.使用函数定义表达式定义的函数,只有变量(函数名)声明提前了——变量的初始化代码仍然在原来的位置。

C.函数声明语句中的函数被显式地“提前”到了脚本或函数的顶部。

D.都创建了新的函数对象,但函数声明语句中的函数名同时也是
一个变量名,变量指向函数对象。

5.有关delete运算符正确的说法是()。

A.delete可以用于删除任何对象属性。

B.delete不可以用于删除数组元素。

C.delete可以用于删除任何声明的变量
D.语句delete obj1.x;中,delete用于删除对象obj1的属性x。

6.有关var语句的错误结论是()。

A.var声明的变量有时可以通过delete删除的。

B.如果在顶层代码中使用var语句,它声明的是全局变量。

C.如果var语句出现在函数体内,那么它定义的是一个局部变量
D.var和function都是声明语句,用于声明或者定义变量或者函数。

7.有关JS变量说法错误的是()。

A.循环语句中的变量不定是局部变量
B.多次声明同一个变量没有问题。

C.JS变量一旦定义就无法再重新定义。

D.var语句可用于声明或者定义一个或者多个变量。

8.有关in运算符错误的结论是()。

A.in运算符不可用于数组元素的遍历。

B.in运算符最主要和最典型的用途是:判断对象是否存在指定名称的属性。

C.如果in运算符右侧的对象拥有一个名为左操作数值的属性名,那么表达式返回true;否则,返回false。

D.in运算符希望它的左操作数是一个字符串或可以转换为字符串,希望它的右操作数是一个对象。

9.有关使用typeof运算符的不正确结论是()。

A.typeof运算符后面的参数可以使用括号引起来,也可以不带括号。

B.typeof运算符只使用一个参数。

C.使用typeof运算符检测的返回结果值总是一个小写字符串形式。

D.typeof和instanceof有时可以相互代替。

10.使用instance运算符时正确的结论是()。

A.表达式“{} instanceof Object;”没有任何问题。

B.instance运算符不包含对“父类”(或超类)的检测。

C.当instanceof的左操作数不是对象的话,instanceof不一定返回false。

D.instanceof的左操作数不可以是直接量形式;否则,JS系统认为语句表达不完整。

11.给定x=6以及y=3,下列结论正确解释了逻辑运算符的是()。

A.x<10&&y>1为true10&&y>
B.x==5||y==5为true
C.!(x==y)为false
D.!!x与x含义一样
12.如下不正确的结论是()。

A.关系表达式的运算结果未必总是为true或fa1se
B.假值是false、null、undefined、0、-0、NaN和'';所有其他的值(包括所有对象)都是真值。

C.“&&”的操作数并不一定是布尔值。

D.关系运算符的优先级比“&&”和“||”要高
13.已知“var obj={a:'Hello'};”,于是“obj && obj.a; ”的结果是()。

A.'Hello'
B.null
C.true
D.false
14.有关各逻辑运算符错误的结论有()。

A.!!X与X含义是一样的。

B.!总是返回true或者false。

C.如果||运算符计算结果为假值,那么再计算右侧的表达式,并返回这个表达式的计算结果。

D.语句“if(a==b) stop(); ”与语句“(a==b)&&stop();”表达含义一致。

15.有关下列各逻辑运算符的运算关系错误的是()。

A.x==o&&y==o与(x==o)&&(y==o)等价
B.!(p&&q)===!p | !q;
C.!(p||q)===!p && !q;
D.!(p&&q)===!p || !q;
16.有关各逻辑运算符错误的结论有()。

A.当“&&”右侧的表达式具有某种副作用的时候要格外小心。

因为这些带有副作用的表达式的执行依赖于左操作数的计算结果。

B.实际开发中,JS逻辑与运算符“&&”不可能出现不会去计算右操作数的情形。

C.实际开发中,JS逻辑与运算符“||”可能出现不会去计算右操作数的情形。

D.实际开发中,JS逻辑与运算符“&&”可能出现不会去计算右操作数的情形。

17.已经“var a=[1,2,3,4,5];”,那么错误的是()。

A.“1 in a;”结果是true。

B.delete用于删除一个数组元素时,数组长度并没有改变。

C.可使用“delete a['2'];”删除数组第三个元素。

D.可以使用“delete a[2];”删除数组第二个元素。

18.在Node命令行状态下已知“var o={x:1, y:2};”。

不正确的结论是()。

A.“typeof o.x;”将返回'number'。

B.“delete o.x;”可以删除对象o的属性x,而且返回值是true。

C.“delete o;”可以删除对象o。

D.“delete o.x;”将删除一个对象属性,返回true。

19.关于JS赋值操作符的结合性错误的结论是()。

A.赋值操作符的结合性是从左至右。

B.“i=j=k='Hello Pomelo!';”的含义是把三个变量都初始化为
'Hello Pomelo!'。

C.赋值操作符的结合性是从右至左。

D.赋值表达式的值就是右操作数的值。

20.正确的结论是()。

A.'one'<>
B.'111'<>
C.'100'+200的结果是300。

D.加号运算符和比较运算符的行为都有所不同。

加号运算符更偏爱字符串,而比较运算符则更偏爱数字。

请把你的答案写在留言区里。

相关文档
最新文档