JS經典面試題05-變量連續聲明var a = b = 1

在這裏插入圖片描述

  • 函數裏面聲明的變量是局部變量,在函數外無法被訪問。 怎麼會有人出這麼簡單的面試題呢?

1.1-答案揭曉

在這裏插入圖片描述

1.2-原理解析

在這裏插入圖片描述

		/*本題考點 
        a.  變量作用域 : 函數裏面聲明的變量是局部變量,無法在全局訪問
        b.  冷門知識點 : 變量如果沒有使用var關鍵字聲明,則沒有作用域限制。 一定是全局變量(不標準語法)
        */
        //聲明函數
        function fn() {
            /*變量連續賦值執行原理 
            (1)   b = 1;      聲明一個全局變量b,值爲1. 因爲這裏b並沒有使用var關鍵字所以沒有作用域限制
            (2)   var a = b;  聲明一個局部變量a, 值爲1
            */
            var a = b = 1;
        };
        //調用函數 :執行函數體代碼
        fn();
        //請說出代碼結果
        console.log( b );//1
        console.log( a );//程序報錯 a is not defined        
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章