网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 JS中创建函数的三种方式及区别
内容
    这篇文章主要介绍了js函数的多种定义方法与其区别,非常的详细,有需要的小伙伴可以参考下
    1.函数声明
    function sum1(n1,n2){
        return n1+n2;
      };
    2.函数表达式,又叫函数字面量
    var sum2=function(n1,n2){
        return n1+n2;
    };
    两者的区别:解析器会先读取函数声明,并使其在执行任何代码之前可以访问;而函数表达式则必须等到解析器执行到它所在的代码行才会真正被解释执行。
    自执行函数严格来说也叫函数表达式,它主要用于创建一个新的作用域,在此作用域内声明的变量,不会和其它作用域内的变量冲突或混淆,大多是以匿名函数方式存在,且立即自动执行。
    (function(n1,n2){
        console.log (n1+n2)
    })(1,3);//4
    另外几种自执行函数:
    //可用来传参
    (function(x,y){
      console.log(x+y);
    })(2,3);
    //带返回值
    var sum=(function(x,y){
      return x+y;
    })(2,3);
    console.log(sum);
    ~function(){
      var name='~'
      console.log(name);
    }();
    !function(){
      var name='!'
      console.log(name);
    }();
    ;(function(){
      var name=';'
      console.log(name);
    })();
    -function(){
      var name='-'
      console.log(name);
    }();
    //逗号运算符
    1,function(){
      var name=',';
      console.log(name);
    }();
    //异或
    1^function(){
      var name='^';
      console.log(name);
    }();
    //比较运算符
    1>function(){
      var name='>';
      console.log(name);
    }();
    ~+-!(function(){
      var name='~+-!';
      console.log(name);
    })();
    ~!(function(){
      var name='~!';
      console.log(name);
    })();
    (function(){
      var name='call';
      console.log(name);
    }).call();
    (function(){
      var name='apply';
      console.log(name);
    }).apply();
    3.函数构造法,参数必须加引号
    var sum3=new Function('n1','n2','return n1+n2');
    console.log(sum3(2,3));//5
    从技术角度讲,这是一个函数表达式。一般不推荐用这种方法定义函数,因为这种语法会导致解析两次代码(第一次是解析常规ECMAScript代码,第二次是解析传入构造函数中的字符串),从而影响性能。
    var name='haoxl';
      function fun(){
        var name='lili';
        return new Function('return name');//不能获取局部变量
      }
     console.log(fun()());//haoxl
    Function()构造函数每次执行时都会解析函数主体,并创建一个新的函数对象,所以当在一个循环或频繁执行的函数中调用Function()构造函数效率是非常低的。而函数字面量却不是每次遇到都会重新编译的,用Function()构造函数创建一个函数时并不遵循典型的作用域,它一直把它当作是顶级函数来执行。
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/15 6:14:23