函数声明和函数表达式有什么区别?
函数声明: function doSometing(){}
调用:doSometing //不用提前声明,放哪里都可以
函数表达式:var sayName = function(){}
调用:sayName() //先声明后调用
什么是变量的声明前置?什么是函数的声明前置?
js读出代码时先默认把var变量声明和function函数声明前置。
变量声明前置和函数声明前置就是在一个作用域块中,所有的变量和函数都被放在块的开始出声明。函数内部的变量声明也一样。
arguments 是什么?
arguments :类数组对象。
function printInfo (name,age,sex){
console.log(arguments[0]) // name
console.log(arguments[1]) // age
console.log(arguments[2]) // sex
}
函数的"重载"怎样实现?
在JS中,没有重载。同名函数会覆盖。但可以在函数体针对不同的参数调用执行相应的逻辑。
立即执行函数表达式是什么?有什么作用?
(function () {
var a =1
})()
类似这种就是立即执行函数表达式,也可以‘【】’和‘,’ 。
作用: 隔离作用域。
求n!,用递归来实现
function f(n) {
if (n=1){
return 1
}
f(n) = n*f(n-1)
return f(n)
}
写一个函数,返回参数的平方和?
function sumOfSquares(){
var sum = 0;
for (i = 0; i < arguments.length; i++ ){
sum = sum + argument[i]*argument[i]
}
console.log(sum)
}
var result = sumOfSquares(2,3,4)
var result2 = sumOfSquares(1,3)
console.log(result) //29
console.log(result2) //10
网友评论