<font id="zqva1"></font>
<rt id="zqva1"></rt>
  • <tt id="zqva1"></tt>
    <cite id="zqva1"></cite>

    <cite id="zqva1"><noscript id="zqva1"></noscript></cite>
      <rp id="zqva1"><meter id="zqva1"></meter></rp>

        <cite id="zqva1"></cite>
          <b id="zqva1"></b>
          <rp id="zqva1"></rp>
          <cite id="zqva1"></cite>

          <rt id="zqva1"></rt>

        1. <rp id="zqva1"></rp>

          JS的變量作用域問題,理解js全局變量和局部變量問題

          時間:?2017-11-30閱讀:?1083標簽:?js知識

          js的變量分為2種類型:局部變量和全局變量。主要區別在于:局部變量是指只能在變量被聲明的函數內部調用,全局變量在整個代碼運行過程中都可以調用。值得注意的js中還可以隱式聲明變量,而隱式聲明的變量千萬不能當做全局變量來使用。下面將通過一些例子做詳細說明:


          例子一:

          var a="Hello";  
           function test(){  
              var a;  
              console.log(a);  //輸出undefined
              a = "World";  
              console.log(a);  //輸出World
              console.log(this.a);//輸出Hello
              console.log(this === window);//true
          } 
          test();
          console.log(a);//輸出Hello

          從上面代碼可以看出:當局部變量跟全局變量重名時,局部變量在函數內部有聲明,同時在函數內部輸出時會覆蓋掉全局變量,當使用this調用的時候,this默認指向的是window,所以輸出的是全局變量的值。

            

          例子二:

          var a = "Hello";
          function test(){
              console.log(a);//undefined
              var a = "world";
              console.log(a);//World
          }
          test();

          這里并沒有輸出“Hello”,我們在第一已經定義了全局變量a,這是由于:js在執行test()方法時聲明部分已經完成了,在執行過程中才進行賦值,所以在這個函數中,執行第3行前,可以認為已經聲明了局部變量a,但是并沒有定義(這里即賦值),所以第3行輸出結果為undefined,執行第4行a 賦值為“world”,所以打印局部變量a的值是world 。


          例子三:

          var a = "Hello";
          function test(){
              console.log(a);//Hello
              a = "World";
              console.log(a);//World
          }
          test();
          console.log(a);//World

          這是由于在函數內部,一般用var聲明的為局部變量,沒用var聲明的一般為全局變量,所以沒聲明的a賦值為“World”,這里的a是全局變量。


          例子四:

          function test(){
              var a=b=c=d="World";
          }
          test();
          console.log(b+c+d);//而b、c、d都能輸出World
          console.log(a);//輸出時候報錯(not defined)

          這是由于Js的賦值是從右向左結合: var a=b=c=d="World"; 等價于 var a=(b=(c=(d="World")));,其中只有a被聲明了,b,c和d都是自動解析為全局變量了。


          站長推薦

          1.阿里云: 本站目前使用的是阿里云主機,安全/可靠/穩定。點擊領取2000元代金券、了解最新阿里云產品的各種優惠活動點擊進入

          2.騰訊云: 提供云服務器、云數據庫、云存儲、視頻與CDN、域名等服務。騰訊云各類產品的最新活動,優惠券領取點擊進入

          3.廣告聯盟: 整理了目前主流的廣告聯盟平臺,如果你有流量,可以作為參考選擇適合你的平臺點擊進入

          鏈接: http://www.modern-decoration.com.cn/article/detial/203

          base91 for javascript

          原理和 base64 是一樣的,ASCII 共有94個可打印字符,base64 使用了其中 64 個,base91 使用了 91 個。

          javascript中什么是句柄?

          一個句柄是指使用的一個唯一的整數值,即一個4字節(64位程序中為8字節)長的數值,來標識應用程序中的不同對象和同類中的不同的實例。

          javascript不可變性是什么?

          不可變性即某個變量在進行了某個操作之后,其本身沒有發生變化,比如對于字符串而言,對字符串的任何操作都會改變字符串本身的值,而是在字符串的基礎上復制出來一個然后再改變,這樣我們就說是不可變的

          為什么javascript不起作用?

          JavaScript是一種屬于網絡的腳本語言,已經被廣泛用于Web應用開發,常用來為網頁添加各式各樣的動態功能,為用戶提供更流暢美觀的瀏覽效果。通常JavaScript腳本是通過嵌入在HTML中來實現自身的功能的。

          javascript怎么判斷按鈕被點擊?

          JavaScript可以通過Event對象的target事件或srcElement(IE瀏覽器支持)來判斷按鈕是否被點擊。Event對象代表事件的狀態,比如事件在其中發生的元素、鍵盤按鍵的狀態、鼠標的位置、鼠標按鈕的狀態。

          javascript由幾部分組成?

          JavaScript有三部分組成。分別為核心(ECMAScript) 、文檔對象模型(DOM)、瀏覽器對象模型(BOM)。這三部分分別描述了該語言的語法和基本對象、處理網頁內容的方法和接口、與瀏覽器進行交互的方法和接口。

          Js輸出方式有哪些?

          在編寫JavaScript代碼的時候, 一定要記住每一句代碼后面都需要添加一個分號, 并且這個分號必須是英文的分號,我們會發現有時候不寫分號程序也能夠運行, 這里并不是因為不需要分號, 而是瀏覽器自動幫助我們添加了分號

          7個常見的 JavaScript 測驗及解答

          我相信學習新事物并評估我們所知的東西對自己的進步非常有用,可以避免了我們覺得自己的知識過時的情況。在本文中,我將介紹一些常見的 JavaScript 知識。請享用!

          JavaScript中“javascript:void(0) ”是什么意思

          expression 是一個要計算的 Javascript 標準的表達式。表達式外側的圓括號是可選的,鑒于規范化,以及養成好習慣,建議寫上去。當我們使用 void 操作符指定超級鏈接時,表達式會被計算但是不會在當前文檔處裝入任何內容。

          Js中constructor指向問題

          首先用一個例子指出來constructor存在形式。由上面的代碼我們總結出結論1:上面的代碼在控制臺可以看出constructor是指向構造器Fruit的引用。這個地方就有點奇怪了。這個constructor到底指向的是那個實例的構造器?

          內容以共享、參考、研究為目的,不存在任何商業目的。其版權屬原作者所有,如有侵權或違規,請與小編聯系!情況屬實本人將予以刪除!

          文章投稿關于web前端網站點搜索站長推薦網站地圖站長QQ:522607023

          小程序專欄: 土味情話心理測試腦筋急轉彎幽默笑話段子句子語錄成語大全運營推廣

          国产精品高清视频免费 - 视频 - 在线观看 - 影视资讯 - 唯爱网