JS-函数

107 阅读2分钟
  • parseInt() 将字符串数字返回整数
  • parsefloor() 将字符串数字返回浮点数
  • isNaN() 检查参数是否非数字 不是数字返回true;可以将'123'字符串转成数字123 'zbc'不能转成数字(NaN表示非数字)

函数的调用方式

1、自己执行

    fn();

2、点击执行

    <button onclick="fn()">11</button>

函数的传递参数方式

第一种传递参数的方式

    fn('hello','world')

第二种传递参数的方式

    <button onclick="fn('hello','world')">11</button>
    <script>
        function fn(a,b){
            document.write(a+b);
        }
    </script>

全局变量

声明在函数外的变量,该页面的所有脚本和函数都能使用;生存期:一直都存在,删除后消失;作用域:全局

    <script>
        let num = 1;//声明在函数外
        function fn1(){
            document.write(num);
        }
        fn1();
    </script>

局部变量

声明在函数内部的变量,只有函数内部能访问,只有该函数能使用(必须定义);生存期:函数运行以后被删除(垃圾回收机制),提高性能;作用域:函数内部(可以在不同函数中使用相同名称的局部变量)

    <script>
        function fn1(){
        var num = 1;//声明在函数内部
            document.write(num);
        }
        fn1();
    </script>

return返回值的作用

1、返回给调用函数的值;
2、立即停止并返回指定的值,后面的代码不执行。

    <script>
        var num = 1;
        function add(){
            num++//执行,此时num=2
            return alert(num);//执行,弹出框显示num的值
            document.write(num);//被return拦住,不执行
        }
        add();
    </script>

全局作用域

  • 所有window对象的属性拥有全局作用域
  • 所有末定义直接赋值的变量自动声明为拥有全局作用域
  • 最外层函数和在最外层函数外面定义的变量拥有全局作用域

局部作用域

只能在指定区域被访问,例如函数的局部变量,只能在函数内部被访问,所以可以在不同的函数中使用名称相同的局部变量
函数的作用域链:先从当前层寻找,找不到就去上一层,如果找到了,就不继续往上找了

<script>
         var a = 2;//全局作用域
         function fn(){
            function fn2(){
                a++;//局部作用域
                return a;
            }
            fn2();//不执行fn2,a不会a++
            document.write(a);
         }
         fn();
     </script>