zoukankan      html  css  js  c++  java
  • js函数知识点(一)

    一、函数声明的方式

    function 函数名(参数列表){ 函数体; return 返回值}   问题:会被声明提前

    给出以下解决方案:

    var函数名=function (参数列表){ 函数体; return 返回值}   不会被声明提前

    var 函数名=new Function("参数1","参数2",...,"函数体;...")   

    强烈不推荐使用,因为这种方式会导致解析两次代码,影响性能。

    有关这三种声明方式的区别,可以看这篇博文学习:http://blog.csdn.net/ll641058431/article/details/52319737

      

    二、重载

    js语法默认不支持重载,最后创建的会覆盖之前创建的所有

    解决方法:arguments

     1 function pay(                   ){
     2      //arguments[         ,         ].length
     3               //     0           1
     4      if(arguments.length==0)
     5       console.log("手机支付...");
     6      else if(arguments.length==1)
     7       console.log(
     8         "现金支付...收款金额:"+arguments[0]);
     9      else
    10       console.log(
    11         "刷卡结账...卡号:"+arguments[0]);
    12     }
    13 
    14     pay();//手机支付...
    15     pay(100);//现金支付...
    16     pay("6553 1234","123456");//刷卡结账...

    也可直接用 arguments 做参数不确定的操作

    1 function add(){
    2       var sum=0;
    3       for(var i=0;i<arguments.length;i++){
    4         sum+=arguments[i];
    5       }
    6       return sum;
    7     }

    三、匿名函数

    创建时不指定函数名

    为什么:

        1. 节约内存

        2. 划分临时作用域

        何时: 只要一个函数使用后,希望立刻释放时

        如何:

          1. 回调(callback): 将一个函数,交给另一个函数去自动调用。

           比如:    arr.sort(function(a,b){return a-b;})

                       xhr.onreadystatechange=function(resText){}

                btn.onclick=function(){}

                str.replace(/正则/,function(kw){return xxx});

          2. 自调: 定义函数后,立刻调用自己

            何时: 几乎所有自定义的脚本,都要放在匿名函数中

            为什么: 避免使用全局变量,避免全局污染

            如何:

              1. (function(...){...})()

              2. +function(...){...}()

    (function(){
          var start=new Date();
          alert("开始加载网页内容...at:"+start.toLocaleTimeString());
        })();
    

      

  • 相关阅读:
    元学习Meta Learning/Learning to learn
    TRAINING A CLASSIFIER训练分类器(pytorch官网60分钟闪电战第四节)
    NEURAL NETWORKS神经网络(pytorch官网60分钟闪电战第三节)
    AUTOGRAD: 自动分化(pytorch官网60分钟闪电战第二节)
    WHAT IS PYTORCH?(pytorch官网60分钟闪电战第一节)
    windows找不到gpedit.msc
    The “freeze_support()“ line can be omitted if the program is not going to be frozen to produ
    torch.mul() 和 torch.mm() 的区别
    vue面试题(2)
    JS输出题练习
  • 原文地址:https://www.cnblogs.com/tanghm/p/7581731.html
Copyright © 2011-2022 走看看