您的位置:首页 > 其它

20151126测试中问题

2015-11-27 12:32 274 查看
1.下面代码,k的运行结果是:(A)

var i=0,j=0;
for(;i<5,j<10;i++,j++){
k=i+j;
}
console.log(k);//18


A.18  B.10  C.5  D.0

“i<5,j<10;”这里执行时中间是","连接符连接的,程序运行时只会看最后一个条件,虽然也会看逗号前面的内容,但只会以最后一个逗号内容作为判断条件.

2.

var x=1;
function fn(n){
n=n+1;
}
y=fn(x);
console.log(y)//undefined


这里因为fn函数没有返回值,所以y是undefined.

3.

下面代码第一次弹 1 ,第二次弹 undefined .

function fn1(){
alert(1);
}
alert(fn1());


 

下面代码弹出function fn1(){ alert(1); }

function fn1(){
alert(1);
}
alert(fn1);


 

下面代码第一次弹1,第二次报错Uncaught TypeError: fn1(...) is not a function

4.以下代码运行后,结果为 程序报错 Uncaught TypeError: fn1 is not a function

fn1();
var fn1=function(a){alert(a);}


 

以下代码运行后弹出undefined.

fn1();
function fn1(a){alert(a);}


 

以下代码弹出 2222

fn1(2222);
function fn1(a){alert(a);}


 

以下代码报错 Uncaught ReferenceError: bbbb is not defined

fn1(bbbb);
function fn1(a){alert(a);}


5.

var n="miao wei ke tang".indexOf("ke",10);
console.log(n)//-1


var n="miao wei ke tang".indexOf("ke",6);
console.log(n)//9


6.

var arr=[];
arr1=arr;
console.log(arr===arr1)//true


var arr=[];
arr1=[];
console.log(arr===arr1)//false


var arr={};
arr1={};
console.log(arr===arr1)//false


var arr={};
arr1=arr;
console.log(arr===arr1)//true


两个对象时,即使相同也不相等,var arr=[],arr1=arr;此时是让arr1也指向arr指向的那个对象,他们指向的是同一样对象,因此是相等的.

7.以下代码运行后,结果为true,括号中从先运行++i,i为1,再运行右边,i以1执行操作,最后结果为2,1==1,true.

var i=0;
alert(++i==i++);//true


8.

console.log(Number("")==parseFloat(""))//false


console.log(Number(""))//0


console.log(parseFloat(""))//NaN


9.以下代码中,第一次弹 1 ,第二次弹 1, 第三次弹 2.

function fn1(){
var a=0;
function fn2(){
++a;
alert(a);
}
return fn2;
}
fn1()();
var newFn=fn1();
newFn();
newFn();


 

下面代码什么都不弹,因为fn1里的fn2未运行

function fn1(){
var a=0;
function fn2(){
++a;
alert(a);
}
return fn2;
}
fn1();


 

下面代码弹1,因为fn1()返回fn2,fn2()弹出1

function fn1(){
var a=0;
function fn2(){
++a;
alert(a);
}
return fn2;
}
fn1()();


function fn1(){
var a=0;
function fn2(){
++a;
alert(a);
}
return fn2;
}
fn1()();
var newFn=fn1();
newFn();//类似fn1()(),弹出1,返回fn2
newFn();//fn2(),a此时为1,++a,为2


10.

var arr=[1,2];
var arr2=arr.concat();
console.log(arr);//[1,2]
console.log(arr2)//[1,2]
arr2=arr.concat(3);
console.log(arr2)//[1,2,3]
arr2.push(arr.splice(1,0));
console.log(arr);//[1,2]
console.log(arr2)//[1,2,3,[]]


11.全局下调用test,所以this.a为10,下面会把var a提到函数最顶部顶部解析,因为最后一次也是弹出100

var a=10;
function test(){
a=100;
alert(a);//100
alert(this.a);//10
var a;
alert(a);//100
}
test();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: