回头又跑去看了下尚硅谷的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>