<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

        JavaScript變量聲明var,let.const及區(qū)別淺析

        來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:15:54
        文檔

        JavaScript變量聲明var,let.const及區(qū)別淺析

        JavaScript變量聲明var,let.const及區(qū)別淺析:var聲明變量的作用域限制在其聲明位置的上下文中 var x = 0; // x是全局變量,并且賦值為0。 console.log(typeof z); // undefined,因?yàn)閦還不存在。 function a() { // 當(dāng)a被調(diào)用時(shí), var y = 2; // y被聲明成函數(shù)a作用域的變量,然后賦值
        推薦度:
        導(dǎo)讀JavaScript變量聲明var,let.const及區(qū)別淺析:var聲明變量的作用域限制在其聲明位置的上下文中 var x = 0; // x是全局變量,并且賦值為0。 console.log(typeof z); // undefined,因?yàn)閦還不存在。 function a() { // 當(dāng)a被調(diào)用時(shí), var y = 2; // y被聲明成函數(shù)a作用域的變量,然后賦值

        var聲明變量的作用域限制在其聲明位置的上下文中

        var x = 0; // x是全局變量,并且賦值為0。
        console.log(typeof z); // undefined,因?yàn)閦還不存在。
        function a() { // 當(dāng)a被調(diào)用時(shí),
         var y = 2; // y被聲明成函數(shù)a作用域的變量,然后賦值成2。
         console.log(x, y); // 0 2 
         function b() { // 當(dāng)b被調(diào)用時(shí),
         x = 3; // 全局變量x被賦值為3,不生成全局變量。
         y = 4; // 已存在的外部函數(shù)的y變量被賦值為4,不生成新的全局變量。
         z = 5; // 創(chuàng)建新的全局變量z,并且給z賦值為5。 
         } // (在嚴(yán)格模式下(strict mode)拋出ReferenceError)
         b(); // 調(diào)用b時(shí)創(chuàng)建了全局變量z。
         console.log(x, y, z); // 3 4 5
        }
        a(); // 調(diào)用a時(shí)同時(shí)調(diào)用了b。
        console.log(x, z); // 3 5
        console.log(typeof y); // undefined,因?yàn)閥是a函數(shù)的本地(local)變量。

        let 聲明的變量只在其聲明的塊或子塊中可用,var的作用域是整個(gè)封閉函數(shù)

        function varTest() {
         var x = 1;
         if (true) {
         var x = 2; // 同樣的變量!
         console.log(x); // 2
         }
         console.log(x); // 2
        }
        function letTest() {
         let x = 1;
         if (true) {
         let x = 2; // 不同的變量
         console.log(x); // 2
         }
         console.log(x); // 1
        }

        在 ECMAScript 2015 中,let綁定不受變量提升的約束,這意味著let聲明不會(huì)被提升到當(dāng)前執(zhí)行上下文的頂部。
        在塊中的變量初始化之前,引用它將會(huì)導(dǎo)致 ReferenceError(而使用 var 聲明變量則恰恰相反,該變量的值是 undefined )
        當(dāng)在塊中使用時(shí),let將變量的作用域限制為該塊。注意var的作用域在它被聲明的函數(shù)內(nèi)的區(qū)

        var a = 1;
        var b = 2;
        if (a === 1) {
         var a = 11; // the scope is global
         let b = 22; // the scope is inside the if-block
         console.log(a); // 11
         console.log(b); // 22
        } 
        console.log(a); // 11
        console.log(b); // 2

        const 常量必須在聲明的同時(shí)指定它的值.

        const聲明創(chuàng)建一個(gè)值的只讀引用。但這并不意味著它所持有的值是不可變的(如引用內(nèi)容是對(duì)象),只是變量標(biāo)識(shí)符不能重新分配一個(gè)常量不能和它所在作用域內(nèi)的其他變量或函數(shù)擁有相同的名稱

        // 注意: 常量在聲明的時(shí)候可以使用大小寫,但通常情況下全部用大寫字母。 
        // 定義常量MY_FAV并賦值7
        const MY_FAV = 7;
        // 報(bào)錯(cuò)
        MY_FAV = 20;
        // 
        輸出 7 console.log("my favorite number is: " + MY_FAV); // 嘗試重新聲明會(huì)報(bào)錯(cuò) const MY_FAV = 20; // MY_FAV 保留給上面的常量,這個(gè)操作會(huì)失敗 var MY_FAV = 20; // 也會(huì)報(bào)錯(cuò) let MY_FAV = 20; // 注意塊范圍的性質(zhì)很重要 if (MY_FAV === 7) { // 沒問題,并且創(chuàng)建了一個(gè)塊作用域變量 MY_FAV // (works equally well with let to declare a block scoped non const variable) let MY_FAV = 20; // MY_FAV 現(xiàn)在為 20 console.log('my favorite number is ' + MY_FAV); // 這被提升到全局上下文并引發(fā)錯(cuò)誤 var MY_FAV = 20; } // MY_FAV 依舊為7 console.log("my favorite number is " + MY_FAV); // 常量要求一個(gè)初始值 const FOO; // SyntaxError: missing = in const declaration // 常量可以定義成對(duì)象 const MY_OBJECT = {"key": "value"}; // 重寫對(duì)象和上面一樣會(huì)失敗 MY_OBJECT = {"OTHER_KEY": "value"}; // 對(duì)象屬性并不在保護(hù)的范圍內(nèi),下面這個(gè)聲明會(huì)成功執(zhí)行 MY_OBJECT.key = "otherValue"; // 也可以用來定義數(shù)組 const MY_ARRAY = []; // It's possible to push items into the array // 可以向數(shù)組填充數(shù)據(jù) MY_ARRAY.push('A'); // ["A"] // 但是,將一個(gè)新數(shù)組賦給變量會(huì)引發(fā)錯(cuò)誤 MY_ARRAY = ['B']

        下面介紹下在javascript中有三種聲明變量的方式:var、let、const。

        var 聲明全局變量,換句話理解就是,聲明在for循環(huán)中的變量,跳出for循環(huán)同樣可以使用。

        for(var i=0;i<=1000;i++){ 
        var sum=0; 
        sum+=i; 
        } 
        alert(sum);

        聲明在for循環(huán)內(nèi)部的sum,跳出for循環(huán)一樣可以使用,不會(huì)報(bào)錯(cuò)正常彈出結(jié)果

        let:聲明塊級(jí)變量,即局部變量。

        在上面的例子中,跳出for循環(huán),再使用sum變量就會(huì)報(bào)錯(cuò),有著嚴(yán)格的作用域,變量只作用域當(dāng)前隸屬的代碼塊,不可重復(fù)定義同一個(gè)變量,不可在聲明之前調(diào)用,必須先定義再使用,會(huì)報(bào)錯(cuò),循環(huán)體中可以用let

        注意:必須聲明'use strict';后才能使用let聲明變量否則瀏覽并不能顯示結(jié)果,

        const:用于聲明常量,也具有塊級(jí)作用域 ,也可聲明塊級(jí)。

        const PI=3.14;

        它和let一樣,也不能重復(fù)定義同一個(gè)變量,const一旦定義,無法修改。

        總結(jié)

        以上所述是小編給大家介紹的JavaScript變量聲明var,let.const及區(qū)別淺析,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        JavaScript變量聲明var,let.const及區(qū)別淺析

        JavaScript變量聲明var,let.const及區(qū)別淺析:var聲明變量的作用域限制在其聲明位置的上下文中 var x = 0; // x是全局變量,并且賦值為0。 console.log(typeof z); // undefined,因?yàn)閦還不存在。 function a() { // 當(dāng)a被調(diào)用時(shí), var y = 2; // y被聲明成函數(shù)a作用域的變量,然后賦值
        推薦度:
        標(biāo)簽: 區(qū)別 js javascript
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲AV无码一区二区三区性色| 亚洲日本乱码一区二区在线二产线 | 亚洲精品麻豆av| 污污视频网站免费观看| 亚洲AV无码成H人在线观看 | 亚洲精品乱码久久久久久蜜桃图片 | 午夜免费福利在线| 亚洲AV成人精品日韩一区| 又黄又爽的视频免费看| 一个人看的www免费高清| 亚洲午夜福利在线观看| 性色午夜视频免费男人的天堂| 久久久久亚洲Av片无码v| 国产妇乱子伦视频免费| 亚洲爆乳精品无码一区二区| 亚洲不卡AV影片在线播放| 色播在线永久免费视频网站| 亚洲综合成人网在线观看| 可以免费看的卡一卡二| 亚洲AV无码AV吞精久久| 国产亚洲午夜高清国产拍精品| 无码精品国产一区二区三区免费| 亚洲美女精品视频| 国产精品高清全国免费观看| 亚洲阿v天堂在线2017免费| 久久久久亚洲av无码尤物| 无码国产精品一区二区免费I6 | 久久国产福利免费| 亚洲成人在线免费观看| 情侣视频精品免费的国产| 你是我的城池营垒免费看| 亚洲免费人成视频观看| 亚洲国产精品一区二区第一页免 | 日本高清免费中文字幕不卡| 国产精品福利片免费看| 亚洲大香人伊一本线| 亚洲AV无码一区二区三区国产 | 亚洲成a人片在线观| 在线a亚洲v天堂网2018| 最近的中文字幕大全免费8| 曰批全过程免费视频免费看|