20道关于JavaScript的基础面试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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.加号运算符和比较运算符的行为都有所不同。
加号运算符更偏爱字符串,而比较运算符则更偏爱数字。
请把你的答案写在留言区里。