<script>
// 声明函数时传递的参数叫形参,调用时传递的参数叫实参
function printName(name,age,sex){
console.log('name:',name);
console.log('age:',age);
console.log('sex:',sex);
console.log(arguments);
arguments[0]='lily';
console.log('name:',name);
}
printName('lulu',28,'女');
printName('lulu','女');
printName('女');
//函数表达式
var personInfo=function info(){
console.log('lucy');
};
personInfo();
//变量提升
console.log(a);//undefined
var a=1;
//转换为
var a;
console.log(a);
a=1;
//函数的声明前置
fn();
function fn(){
console.log(1);
}
//函数表达式没有前置
// var say=function sayName(name){
// console.log('name:',name)
// };
// say('hungry');//报错
//函数重载示例,我们不能通过以下方式实现函数重载
function sum(a,b){
return a+b;
}
function sum(a,b,c){
return a+b+c;
}
console.log(sum(1,2));
//参数个数不确定
function sum(){
// var arguments=[1,3,4];
var sun='';
for(var i=0;i<arguments.length;i++){
sun+=arguments[i];
}
return sun;
}
var result=sum('ok','okk');
console.log(result)
//console.log(sum(2,4,9,1));
//return的功能就是跳出整个函数
function opl(name){
if(typeof name!=='string'){
return;
}
console.log('name',name)
}
opl(123);
opl('hello');
//立刻执行函数
// !function sayPrint(){
// var a=1;//-----此变量只在这个作用域里用,不会污染全局变量
// }();
// var a;
//递归
var n=10;
function f(){
n=n-1;
console.log(n);
if(n<0){
return;
}else{
f();
}
}
f();
</script>
网友评论