zoukankan      html  css  js  c++  java
  • javascript function的浅析理解

    一、javascript里面定义函数的方法

    1、函数声明

    function ftn(){

        代码块;

    }

    2、函数表达式

    var ftn=function(){

      代码块;

    }

    3、 使用Function构造函数(不推荐使用)

    var sum =  new Function("a","b","return a+b");


    二、声明提升
    经过上面的知识,我们已经了解javascript中函数的基本写法,下面先抛问题。


          (1) ftn();//"Uncaught TypeError: undefined is not a function"
               var ftn=function(){
                   console.log("报错,不打印喽。");
                }   

          (2) ftn();
                function ftn(){
                    console.log("函数声明提升");
                }

    (1)在调用ftn()函数时会报错,"Uncaught TypeError: undefined is not a function",
    (2)在执行中不会报错,
    其原因:(1)函数表达式(var ftn = function(){}):这个会产生运行错误,原因在于函数位于一个初始化语句中,而不是一个函数声明,换句话说,在执行到函数所在语句之前,变量ftn不会保存对函数引用。

    (2)函数声明(function ftn(){}):代码执行之前,解析器就已经读取函数声明并将其添加到执行环境中。

    理解二、声明提升
          console.log(n);
            var n=100;    // var n; n=100;声明提升
    打印结果:"undefined"    /javaScript/html/声明提升.html (7);
       var n=100;
           console.log(n);
    打印结果:"100"    /javaScript/html/声明提升.html (11);
    //            ftn();
    //            function ftn(){
    //                console.log("函数声明提升");
    //            }
                
    //            ftn();//"Uncaught TypeError: undefined is not a function"
    //            var ftn=function(){
    //                console.log("报错,不打印喽。");
    //            }        //必须要在函数后面执行ftn();

    var相当于提高了声明,var ftn;相当于先提高了声明,其后的function(){},就相当于,n=100,的赋值过程。所以var ftn=function(){},在其前面调用时,报错 undefined is not a function








  • 相关阅读:
    [bzoj4721][noip2016]蚯蚓
    [bzoj1112][POI2008]砖块KLO
    [bzoj3196][tyvj1728]普通平衡树
    [bzoj1596][Usaco2008 Jan]电话网络
    [bzoj3371][poj2009][Usaco2004 Mar]Moo University
    [bzoj2208][Jsoi2010]连通数
    郑捷《机器学习算法原理与编程实践》学习笔记(第四章 推荐系统原理)(二)kmeans
    郑捷《机器学习算法原理与编程实践》学习笔记(第四章 推荐系统原理)(一)推荐系统概述
    Python_sklearn机器学习库学习笔记(四)decision_tree(决策树)
    C++STL学习笔记_(1)vector知识
  • 原文地址:https://www.cnblogs.com/breathfish/p/6650256.html
Copyright © 2011-2022 走看看