代码输出问题

来源:互联网 发布:李佩谕新闻大数据 编辑:程序博客网 时间:2024/06/13 14:37

1.function foo(x,y,z){
console.log(foo.length);
console.log(arguments.length);
}

foo(1,2);  //输出3,2

函数的length属性得到形参的个数,arguments的length属性得到实参个数;
2、
var x=10;
function fn(y){
console.log(x+y);
}
function show(f){
var x=20;
var b=9;
f(b);
}
show(fn); //输出19

作用域链的问题,执行show(fn)时即就是执行fn(b),即fn(9),返回x+9,fn中没有x这个变量,就去fn定义的上一层去寻找,全局中有定义x为10.则返回19;
3.
var x=new Boolean("false");
var y=Boolean(0);
if(x){
alert("hi");
}
if(y){
alert("hello");
}

//输出“”hi“”
x为Boolen对象,在if语句里的判断为true,虽然x的值为false,但是作为对象,if会直接判断为true。y为Boolen值,在if里的判断就是false值。

原创粉丝点击