| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- <!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 n = 5;
- // function 定义函数 函数名加括号 括号里面参数(行参)
- function foo(i){
- // 参数仅在函数内有效
- console.log(i + 10);
- }
- // 函数调用 函数名+括号 括号里是参数(实参)
- // foo(n);
- // 作用域
- // 在函数外定义的变量称为 全局变量 这个变量所在的作用域称为全局作用域 全局作用域的变量在任何地方都是有效的
- var k = 1;
- function foo2(x){
- // 函数内定义的变量仅在函数内生效
- // 函数作用域(局部作用域)
- var y = 10;
- console.log(x+y+k);
- }
- // console.log(y);
- // foo2(6);
- // 多参数 行参部分 可以定义多个参数用逗号间隔
- function foo3(x,y){
- console.log(x+y);
- }
- // foo3(1,2);
- // 函数返回值
- function foo4(x){
- // 在函数中 return表示返回值 return后面写什么就返回什么
- return x + 10;
- }
- // var sum = foo4(5);
- // console.log(sum);
- function foo5(x){
- // 函数中遇到return后停止当前函数 后面有代码也不会再执行了
- return x + 10;
- console.log(x);
- }
- // var sum = foo5(6);
- // console.log(sum);
- // 函数嵌套
- function foo6(x){
- var k = 10;
- // 函数内定义的函数也是仅在函数内生效 在函数外无法调用
- function foo7(y){
- // 内部函数可以调用外部函数的局部变量
- console.log(x+y+k);
- }
- foo7(2);
- }
- // foo6(1);
- // 把函数当作返回值使用
- function foo8(){
- function foo9(){
- console.log("foo9");
- }
- return foo9;
- }
- // console.log(foo8);
- // var foo10 = foo8();
- // console.log(foo10);
- // foo10();
- // 如果function 后面没有函数名 则表示这是一个匿名函数
- // 匿名函数一般情况不能直接使用 使用的时候会将它赋给一个变量 这个变量名就是他函数名
- var foo11 = function(a){
- console.log(a+"foo11");
- }
- foo11("hello");
- // 特殊情况
- //js中允许先调用函数 后定义函数
- foo12();
- function foo12(){
- console.log("foo12")
- }
- function foo13(){
- var a = 10;
- }
- function foo14(){
- var a = 20;
- }
- // 如果函数没有返回值 那么接收到的undefined
- function foo15(){
- console.log("foo15")
- }
- // var x = foo15();
- // console.log(x)
- // 递归自己调用自己
- // 使用递归的时候一定要有出口
- function foo16(i){
- if(i>10){
- return false;
- }
- console.log(i)
- foo16(++i);
- }
- // foo16(1)
- // 斐波那契数列
- // 1 1 2 3 5 8
- // 平方函数
- console.log(Math.pow(2,2))
-
- </script>
- </body>
- </html>
|