1.读出输出值
function getInfo(name, age, sex){
console.log('name:',name);
console.log('age:', age);
console.log('sex:', sex);
console.log(arguments);
arguments[0] = 'valley';
console.log('name', name);
}
getInfo('hunger', 28, '男');
getInfo('hunger', 28);
getInfo('男');
getInfo('hunger',28,'男') 输出
getInfo('hunger',28,) 输出
getInfo('男') 输出
类数组对象argument被传入了‘valley’这个新的参数,代替了原有函数声明中传入的变量,之后输出。
2.写一个函数,返回参数的平方和?
function sumOfSquares(){
var s=0;
for(var i=0;i<arguments.length;i++){
s=(arguments[i]*arguments[i])+s;
}
console.log(s);
}
3.如下代码的输出?为什么?
console.log(a);
var a = 1; // undefind
console.log(b);//Uncaught ReferenceError: b is not defined
函数声明会被变量提升到最前端,但a的赋值不会,所以出现undefind
b没有被声明,所有输出b会报错
4.
函数表达式所定义的函数无法进行函数前置,当运行到
sayAge(10)时
函数还未被定义所以会报错。
5.
6.
7.
将
var fn=1;
写为var fn;
就会顺利输出fn函数。
8.
9
10
代码题问题
在函数中声明
i=10
和var i=10
有什么区别?变量前置和函数前置的顺序?