7.函数的定义和参数获取
1.函数的定义: function 函数名(){} eg: function abs(){ if(x>0){ return x; }else { return -x; } } 2.函数的返回: 函数名(); 3.JavaScript的函数可以传递任何参数,也可以不传递。 4.手动抛出异常------->假设不存在参数怎么规避? typeof x-->获取x的类型 typeof x!=='Number' ---------->判断是否有参数 5.arguments 是一个js免费赠送的关键字,代表传进来的所有参数,是一个数组 -------》可以获得函数上的所有形参 eg: for (let i = 0; i <arguments.length ; i++) { console.log(arguments[i]); } 6.获取已经定义外的所有参数----->只能写在最后面(rest只是一个参数名,重要的前面的三个点) 定义: ...rest eg: function abs(x,y,...rest){ console.log("x=>"+x); console.log("y=>"+y); console.log("z=>"+rest); }
1.函数的定义:
function 函数名(){}
2.JavaScript()的函数可以有多个,也可以没有。
3.手动抛出异常
4.通过arguments()获得所有的参数
5. …rest获得已经定意外的所有参数
8.变量的作用域(局部 全局)-------> 和Java一样
1.在JavaScript中,Var定义变量实际是由作用域的。 (1).假设在函数体内声明,则在函数体外不可以使用。 eg: function abs(){ var x=1; --------->函数体内声明 x=x+1; } x=x+2; ------------->函数体外不能被使用-----》undefind (2).如果两个函数使用不同的变量名,只要在函数内部,就不冲突 eg: function abs(){ var x=1; ---------->第一个var x=x+1; } function acs(){ var x=1;----------->第二个var x=x+1; } (3).内部变量可以访问外部,外部不可以访问内部。 ===============================================================局部区别 (4).假设函数函数和外部函数的定义的变量 重名 那么:JavaScript会和双亲委派机制相反,==由内向外查找()。如果外部讯在这个同名的函数变量,则内部函数会频闭外部函数的变量 eg: function abs(){ var x=1; function acs(){ var x=2; console.log("internal "+x); } console.log("external "+x); acs(); } (5).提升变量的作用域,(就是说:变量的使用可以在变量之前,但没有值) UNDEFINE--------->说明定义了但没有值, JavaScript 会自动提升变量的作用域; ======================================================================== (6).默认的全局变量,都会自动绑定window对象 (7).JavaScript实际上只有一个全局作用域,任何变量(函数也可以视为变量),假设 没有在函数作用范围内找到,就会向外查找,如果在作用域都没有找到,报错ReferenceError. ==============================================================let (8).解决局部作用域冲突的问题---------> eg: for (var i = 0; i <100 ; i++) { console.log(i); } console.log(i+1); 出现的问题:--------------------->i出了for循环还能用,输出100+1; (9).var---------->全局 let-------------->局部 ============================================================= const (10).JavaScript常量的定义和操作:---------》定义之后不能修改 const 变量名=值;
1.假设函数函数和外部函数的定义的变量 重名
2.提升变量的作用域
3.默认的全局变量,都会自动绑定window对象.
4.在全局函数里面没找到的话,那么就会error;