函数
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><script>var a = 10;var b = 5;var sum = a + b;console.log(sum); // 15var c = 1;var d = 2;var sum2 = c + d;console.log(sum2); //3// 函数 解决代码重用问题// 创建函数// 1.字面量形式创建// function 函数名(参数1,参数2...){// 函数体// }// 形式参数 形参function fun(a, b) {var sum = a + b;console.log(sum); //3}// 调用函数// 实际参数fun(1, 2);</script>
</body></html>
创建函数
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><script>// 1.字面量形式创建function fun() {}// 2.匿名函数 通过变量接收函数体var fun1 = function () {console.log("匿名函数");}fun1();// 3.Function构造函数 创建函数var fun2 = new Function("a", "b", "console.log(a + b + '构造函数创建');");fun2(1,2);// 4.自执行函数 在创建的同时,直接调用(function (a,b){var sum = a + b;console.log(sum);})(1,2);</script>
</body></html>
函数的返回值return
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><script>// 数组操作方法 1.参数 2.是否改变数组 3.方法返回值// 函数在执行完return语句之后停止并立即退出。因此,位于return语句后面的任何代码永远都不会执行。// 一个函数中可以有多个return语句。// return语句也可以不带任何返回值。// 字面量形式创建函数function fun(a, b) {var sum = a + b;console.log("return 之前");// 返回值 返回什么,函数最终状态就是什么return sum;// 函数 return 之后代码不在执行console.log("return之后");// return 0;}var result = fun(1,2);console.log(result); // 3</script>
</body></html>
arguments对象
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><script>console.log([1, 2, 3, 4, 5]);// 1.字面量// 形参function fun(a, b, c, d, e, f, g) {console.log(a + b);// 伪数组 类数组// 相同:都有索引 都有长度// 不同:伪数组不可以使用数组的操作方法// arguments 保存了函数传递的所有参数console.log(arguments);}// 实参fun(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);function fun2(a, b, c, d, e) {console.log(a);console.log(b);console.log(c);console.log(d);console.log(e);console.log(arguments);}fun2(1, 2);// 在不定参数的情况下,求所有参数之和function sumFun() {var sum = 0;// argumentsfor (var i = 0; i < arguments.length; i++) {sum += arguments[i];}console.log(sum); //55}sumFun(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);</script>
</body></html>
函数数据类型
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>// 数据类型// 基本数据类型// string boolean number null undefined// 引用数据类型// Object Array Function// typeof ==> string boolean number object undefined functionfunction fun(){}console.log(typeof fun); // function// 函数属于数据类型 函数就可以当作参数进行传递function fun1(){console.log("函数1");}function fun2(a){a(); // fun1();console.log("函数2");}fun2(fun1);</script>
</body>
</html>
作用域
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>// 全局作用域// 全局变量var num = 10;console.log(num);function fun(){// 函数作用域 局部作用域// 局部变量var num2 = 20;console.log(num2);}fun();console.log(num2);// 作用域访问规则// 作用域链// 在当前作用域中没有查到值,就会向上级作用域去查,直到查到全局作用域,这么一个查找过程形成的链条就叫做**作用域链**。 </script>
</body>
</html>