JavaScript问题求解答
<script type="application/javascript">
function f1(n){
n= n || 2;
return function (x){
return (x*n);
}
}
var f2 = f1();
var f3 = f1(3);
document.write(f2(3)+"</br>");
document.write(f3(3)+"</br>");
document.write(f3(f2(3))+"</br>");
</script>
的输出结果为什么是
6
9
18
那句n= n || 2;有什么作用呢?
------解决方案--------------------n=(n==null?2:n)
------解决方案--------------------判断n的值是否为空,如果为空则n=2,否则为给定的那个值
------解决方案--------------------1楼2楼都对~
就是看你执行f1的时候有没有给参数n传值(准确的说是不等于0的数值),传了的话就让n=“传的值”,没传的话就让n=2。
------解决方案--------------------感觉n应该是个boolean值,只能是0或1吧 个人觉的。
------解决方案--------------------逻辑“或”运算符 (
------解决方案--------------------) 是个短路语句
表达式a
------解决方案-------------------- 表达式b
当表达式a的值转换成Boolean值为true时,返回表达式a的值,并且不执行表达式b
当表达式a的值转换成Boolean值为false时,执行表达式b 返回表达式b的值,
非 Boolean 值转换为 Boolean 值:
所有对象都被认为是 true。
字符串当且仅当为空时才被认为是 false。
null 和 undefined 被认为是 false。
数字当且仅当为 0 时才是 false。
------解决方案--------------------增加知识了
------解决方案--------------------
f2(3)所以就是
function (3){
return (3*2);
}
结果就是6了