标签:
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();
标签:
原文地址:http://www.cnblogs.com/sunshinegirl-7/p/5000303.html