js基础周测考试题错误和易错知识点(笔试)
作者:互联网
1.下面代码的运行结果是:第一次弹( )第二次弹( )
function fn1() {
alert(1);
}
alert( fn1() );
A.1
B.alert(1);
C.function fn1() { alert(1); }
D.undefined
运行fn1(),弹出1,fn1()没有返回值,所以fn1()为undefined;alert(fn1())alert里面的内容是fn1()的返回值,
所以是undefined;
2.alert( “12”>“9” ) 的运行结果正确的是()
A.true B.False C. 1 D. 0
两个字符串比较大小,是比较第一个值得ASCII码的大小,如果第一个ASCII码相同的话,就比较第二个。以此类推。
3.下面的等式成立的是()
A.parseInt(12.5) == parseFloat(12.5)
B.Number("") == parseFloat("")
C.isNaN(“abc”) == NaN
D.typeof (NaN) === “number”
Number('') //返回0;
parseFloat('') //返回NaN
4.以下代码中,会出现什么结果:第一次弹( ),第二次弹( ),第三次弹( )
function fn1() {
var a = 0;
function fn2() {
++a;
alert(a);
}
return fn2;
}
fn1()(); //1
var newFn = fn1();
newFn(); //1
newFn(); //2
第一次调用fn1(),返回fn2,再调用,a++使a从0变成1,弹出1;
接下来,fn1()赋值给了一个变量,newFn;相当于newFn = fn2;
调用fn2()依旧按照之前的思路弹出1(指的是全局变量a从0自增到了1),然后在调用fn2(),
此时fn2()中的a是1,因为之前调用了fn2(),而fn1()下的a = 0;是不起作用的,因为没有再调用fn1,
因为此时在fn2中的a已经变成1了,再调用fn2,里面的a自增变成了2,所以弹出2;
5.下面代码的运行结果是:第一次弹( ),第二次弹( )
var a = 100;
function fn1() {
alert(a);
var a = 10;
}
alert(fn1());
第一次调用fn1,里面有一个变量提升,a为undefined,弹出undefined,fn1没有返回值,
所以fn1返回的是undefined,即fn1() == undefined,alert(fn1())弹出的是undefined。
alert里面如果是函数的调用,说明弹出的是这个函数的返回值。
6.请选择结果为真的选项()
A.null == undefined
B.null === false
C.undefined == false
D.NaN == NaN
规范中提到, 要比较相等性之前,不能将 null 和 undefined 转换成其他任何值,
并且规定null 和 undefined 是相等的。null 和 undefined都代表着无效的值。
7.以下 ECMAScript 变量命名格式正确的是()
A._125dollor B.1207A C.-dollor D.this
变量声明规则:由数字,字母,下划线,$符号组成,但是不能用字母开头;
不能是关键字和保留字;
区分大小写;
8.程序书写:创建一个汽车对象,
汽车的特征有:车牌号(codeNum)、颜色(color)、车身宽度(width)
汽车的行为有:行驶(travel)、刹车(stop)
要求:在四种创建对象的方式中选择其中两种即可
标签:知识点,易错,调用,undefined,fn1,alert,弹出,考试题,fn2 来源: https://blog.csdn.net/m0_47531829/article/details/117022558