分享

20道关于JavaScript的基础面试题

 heii2 2018-09-15

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为true

 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.加号运算符和比较运算符的行为都有所不同。加号运算符更偏爱字符串,而比较运算符则更偏爱数字。

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


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多