国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

javascript 用函數語句和表達式定義函數的區別詳解

2024-05-06 15:59:22
字體:
來源:轉載
供稿:網友
本篇文章主要介紹了javascript 用函數語句和表達式定義函數的區別。需要的朋友可以過來參考下,希望對大家有所幫助

使用javascript多年,寫過無數函數,今天卻才真正弄明白兩種函數定義的區別,真是悲劇,寫下這個隨筆, 以時刻提醒自己要打好基礎 , 一大把年紀了, 不能繼續懵懵懂懂了。

通常我們會看到以下兩種定義函數的方式:

復制代碼 代碼如下:


// 函數語句
function fn(str)
{
  console.log(str);
};

// 表達式定義
var fnx=function(str)
{
  console.log(str+ ' from fnx');
};


以前都是憑借自己手指的感覺隨心所欲使用兩者 -_- || ,今天看了js基礎, 總算是解決了心中對他們的困惑:

兩種方式都創建了新的函數對象, 但函數聲明語句的函數名是一個變量名, 變量指向函數對象, 和通過var聲明變量一樣,函數定義語句中的函數被顯示地提前到了腳本或函數的頂部, 因此它們在整個腳本和函數內都是可見的,但是使用var 表達式定義函數, 只有變量聲明提前了,變量初始化代碼仍然在原來的位置, 用函數語句創建的函數, 函數名稱和函數體均被提前,所以我們可以在聲明它之前就使用它。

代碼例子如下:

復制代碼 代碼如下:


   console.log(typeof(fn)); // function
    fn('abc'); // abc


    console.log(typeof(fnx)); // undefined

    if(fnx)
        fnx('abc');  // will not execute
    else
        console.log('fnx is undefined'); // fnx is undefined

    // 函數語句
    function fn(str)
    {
        console.log(str);
    };

    // 表達式定義
    var fnx=function(str)
    {
        console.log(str+ ' from fnx');
    };


代碼很簡單, 希望和我之前一樣沒有弄明白兩者區別的同學能有所收獲 。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 阿合奇县| 莎车县| 卓资县| 全椒县| 日照市| 阿拉善盟| 平武县| 吉首市| 多伦县| 香港| 唐河县| 江安县| 沙坪坝区| 吉木乃县| 万安县| 德兴市| 昌江| 南投县| 任丘市| 武宁县| 乌恰县| 临漳县| 汉川市| 馆陶县| 星子县| 醴陵市| 湄潭县| 泾川县| 南皮县| 阿合奇县| 永登县| 综艺| 鄂托克前旗| 吴江市| 清水河县| 延安市| 昭通市| 会泽县| 邹城市| 馆陶县| 博湖县|