目录
1.函数
1.定义
(1)在python定义函数需要用到关键字def
在js中定义函数需要用到关键字function
(2)格式:function 函数名(形参1,形参2,形参3...){函数体代码}
2.无参函数
function func1(){ // 定义
console.log('hello world')
}
func1() // 调用 加括调用 跟python是一样的
3.有参函数
function func2(a,b){ // 定义
console.log(a,b)
}
(1)正常对应传参
func2(1,2) // 1,2
(2)传参多了不会报错
func2(1,2,3,4,5,6,7,8,9) // 1,2
(3)参数少了也不会报错
func2(1) // 1
(4)补充:获取函数接受到的所有的参数-关键字arguments
function func2(a,b){
console.log(arguments) // 传多少拿多少
console.log(a,b)
}
(5)用关键字arguments做代码提醒
function func2(a,b){
if(arguments.length<2){
console.log('传少了')
}else if (arguments.length>2){
console.log('传多了')
}else{
console.log('正常执行')
}
}
4.函数的返回值-关键字return
(1)用法:
function index(){
return 666
}
(2)当return多参数并列,只return最后一个参数
function index(){
return 666,777,888,999
}
res = index(); // 999
(3)return也能返回数组
function index(){
return [666,777,888,999]
}
res = index(); // [666,777,888,999]
(4)补充:js不支持解压赋值
5.匿名函数-没有名字
(1)语法
function(){
console.log('哈哈哈')
}
(2)用处:
var res = function(){console.log('哈哈哈')}
6.箭头函数(要了解一下)
(1)用处:处理简单的业务逻辑 类似于python中的匿名函数
(2)语法:
var func1 = v => v; //箭头左边的是形参 右边的是返回值
等价于:
var func1 = function(v){
return v
}
(3)补充:传多个参数
var func2 = (arg1,arg2) => arg1+arg2
等价于
var func1 = function(arg1,arg2){
return arg1+arg2
}
2.函数的全局变量与局部变量
函数的全局变量与局部变量
1.跟python查找变量的顺序一致(去定义阶段找)
2.例题1
var city = "BeiJing";
function f() {
var city = "ShangHai";
function inner(){
var city = "ShenZhen";
console.log(city);
}
inner();
}
f(); //输出结果是ShenZhen
2.例题2
var city = "BeiJing";
function Bar() {
console.log(city);
}
function f() {
var city = "ShangHai";
return Bar;
}
var ret = f();
ret(); // 输出结果是BeiJing
3.例题3
var city = "BeiJing";
function f(){
var city = "ShangHai";
function inner(){
console.log(city);
}
return inner;
}
var ret = f();
ret(); // 输出结果是ShangHai