回头又跑去看了下尚硅谷的js基础视频
https://www.bilibili.com/video/av22958172/?p=51。
便做了如下笔记:
1.函数也是一个对象
2.函数可以封装一些功能(代码),在需要时可以执行这些功能(代码)
3.函数可以保存一些代码在需要的时候调用
<script> // 创建函数 var fun = new Function(); console.log(fun);//输出一个空函数 console.log(typeof fun);//输出function //封装函数 var fun = new Function("console.log('hello');");//封装的是可执行代码,这种方式在开发中不建议使用 //调用函数 fun();//hello。调用函数后函数才会执行 fun();//hello。多次调用还是hello,在其他地方调用,输出仍是hello // 函数做对象使用 fun.hello = 'hello'; console.log(fun.hello);//hello // 重点:开发中使用方法 // 第一种方式: // 语法:function 函数名(形参1,形参2...形参n ){语句}; //1声明函数: function fun2() { console.log("执行语句"); } //2执行函数 fun2();//执行语句 // 第二种方式: // 使用函数表达式来创建一个函数 // 语法: var 函数名 = function(形参1,形参2...形参n){语句} //1给一个匿名函数命名fun3,相当于赋值给了fun3 var fun3 = function () { console.log("匿名函数赋值给了fun3") };//赋值语句 //2执行函数 fun3();//匿名函数赋值给了fun3 </script>
函数参数使用:
1.可以定义一个或多个形参
2.形参之间使用,隔开,声明蚕食相当于函数内部声明了对应变量
3.但是并不赋值
<script> // 实例一 // 声明函数使用形参x,y function sum(x, y) { console.log(x + y); }//求x,y的和 //调用函数使用实参1,1或2,5。可以多次调用 sum(1,1);//2 sum(2,5);//7 // 注意:a使用函数时,解析器不会检查实参的类型 sum(123, 'hello');//123hello sum(true, false);//1 // b调用函数是,解析器也不会检查实参的数量 sum(123, 456, 'hello', true, false);//579,多余的会舍去 sum(123);//NaN。如果少于,则少的参数为undefined </script>
返回值:
1.语法 :return 值
2.return后的值将会作为函数的执行结果返回
3.在函数中return后的语句不会执行
4.return;后面不跟值相当于renturn undefined;
<script> // 实例二 // 声明一个函数:计算三个数之和 function add(a, b, c) { var d = a + b + c; return d; alert("hello");//在函数中return后的语句不会执行 }//返回一个结果 // 调用函数 var result = add(1, 2, 3) console.log(result);//6 // 实例三: function isOu(num) { return num % 2 == 0; }//判断是否为偶数 var result = isOu(3); console.log(result);//false; </script>
当参数过多时该如何去声明函数
<script> var obj = { name: '我', age: '18', gender: '男' } function sayMy(o) { console.log(o.name + o.age + o.gender); } sayMy(obj);//我18男 </script>