JavaScript中的函数(即java中方法但和oc的叫法相同)
1函数的定义:
(1).
function method(变量1,变量2){
//方法体
if(变量1>10){
return 变量1;
}else{
return 变量2;
}
};
(2).
var a=function(x){
if(x>10){
return 100;
}else{
return 1000;
}
};
使用这种方式使用的方法不需要方法名。
与java或者oc的不同,当方法被调用时,传入的参数可以比方法本身需要的参数多,如上面定义的方法,method(A,B),在调用时可以method(A,B,C);
2.arguments(方法中传入参数的统计:以为JavaScript中就算方法在定义时没有参数需要传入,但是也可以传入参数,所以使用arguments对传入的参数进行操作,arguments是一个表示参数的集合.当然,因为传入的参数是可变的,所以可以根据传入参数的不同来进行不同的业务逻辑处理)
例子:
function method(){
if(arguments.length===0){
return 0;
}else{
return arguments[0];
}
}
method();//返回0
method(1);//返回1
3.rest(由于方法可以传入多个参数,所以出现arguments,但是arguments表示了传过来的所有参数,如果该方法本身就有几个必须参数,为了获取其他非必须参数,则需要遍历,所以引入rest,用来表示除必须参数外的其他参数)
例子:
function method(a,b,...rest){
}
method(1,2);//rest 为空
method(1,2,3);//rest=[3];
2.window的概念
JavaScript默认有一个全局对象window,任意一个方法都可以使用method(a,b)或者window.method(a,b)来调用。
任意一个变量,如果在当前作用域没有找到,就会继续往上找直到window,所以对于不同的JavaScript文件,他们的如果使用了重名的全局变量,虽然在不同的文件中,但是他们对应的全局还是window对象,这样会使程序出现错误,所以,对于每个JavaScript文件,需要手动指定一个全局(MyJs),在这个文件里面的所有参数和方法使用MyJs.name='A'、MyJs.method=function(){
return 'A';
};等这种方式来定义;
3.变量的作用域(let申明变量)
一个java的例子:
for(int i=0;i<10;i++){
i=100;//在这里i是可以被操作的
}
i=100;//出了{}i就不能被操作了
但是,JavaScript
function method(){
var sum=0;
for(var i=0;i<10;i++){
i=100;//i可以被操作,没问题
}
i=100;//i还能别操作,有问题
}
因为JavaScript中方法中的变量的作用域是整个方法内部,但是有时候需要避免上面例子的情况,引入let申明变量。
使用let申明后的例子:
function method(){
for(let i=0;i<10;I++){
i=100;//没问题,可以操作
}
i=100;//报错了,不能操作了
}
4.常量(const关键字)
使用这个关键字声明的变量,其数值无法被改变