国产精品一久久香蕉产线看-国产精品一区在线播放-国产精品自线在线播放-国产毛片久久国产-一级视频在线-一级视频在线观看免费

avascript變量聲明的方法實例

時間:2022-06-24 14:09:22 聲明范文 我要投稿
  • 相關推薦

avascript變量聲明的方法實例

  js中使用一個變量之前應當先聲明。變量使用關鍵字var來聲明。

  如果未在var聲明語句中給變量指定初始值,則該變量值為undefined。

  不用在聲明變量時指定變量類型,js變量可以是任意數據類型。

  使用var語句重復聲明變量是合法且無害的。如果重復聲明帶有初始化器,則就和簡單的賦值語句沒啥區別。

  如果試圖讀取一個沒有聲明的變量,則js會報錯。在ECMAScript5嚴格模式下,給一個沒有聲明的變量賦值也會報錯;然而從歷史上來說,在非嚴格模式下,如果給一個未聲明變量賦值,js實際上會給全局對象創建一個同名屬性,且貌似它工作起來像一個正確聲明的全局變量。這意味著你可以僥幸不聲明全局變量,但這是一個壞習慣會造成很多bug,最好始終使用var來聲明變量。

  在函數體內,同名的局部變量會覆蓋全局變量。

  盡管全局作用域寫代碼可以不寫var語句,但聲明局部變量時必須使用var語句,參考如下代碼:

  scope = "global";function foo(){ scope="local" //fk!我們剛剛修改了全局變量!!!}

  在類似C語言的編程語言中,花括號中每一段代碼都有各自的作用域,且變量在聲明它們代碼段之外是不可見的,我們稱之為塊級作用域(block scope);而js中沒有塊級作用域,而是取而代之的使用了函數作用域(function scope):變量在聲明它們的函數體以及這個函數體嵌套的任意函數體內都是有定義的(無論是內嵌套還是外嵌套?)

  js的函數作用域指在函數內聲明的所有變量在函數體內始終是可見的,這意味著變量在聲明前甚至可以使用了。js的這個特性非正式的稱為聲明提前(hoisting),即js函數里聲明的所有變量(但沒有賦值)都被“提前”至函數體的頂部。

  var scope = "global";function f(){ console.log(scope); //輸出"undefined"而不是"global" var scope = "local"; //變量在這里賦初始值,但變量在函數體內任何地方均是有定義的 console.log(scope); //輸出"local"

  以上代碼等價于:

  function f(){ var scope; console.log(scope); scope = "local"; console.log(scope); }

  當聲明一個js全局變量時,實際上定義了全局對象的一個屬性。

  當用var聲明一個變量時,創建的這個屬性時不可配置的,即無法用運算符刪除;但當你沒有使用嚴格模式并給一個未聲明的變量賦值的話,js會自動創建一個全局變量,以這種方式創建的變量是全局對象的正常可配置屬性,是可以刪除的:

  var x = 1; y = 2;this.z = 3; //同上 x; //返回false,無法刪除變量 y; //返回true,變量被刪除 this.z //同上

  希望本文所述對大家的javascript程序設計有所幫助。

主站蜘蛛池模板: 欧美一区二区三区激情视频 | 九九九九精品视频在线播放 | 日本三级免费看 | 麻豆小说| 国产伦精品一区二区三区免 | 在线观看成人影院 | 免费在线看黄 | 欧洲色吧| 国产第一浮力影院新路线 | 国产日日干 | 天天插天天射天天干 | 黄色视屏在线免费播放 | 国产成人啪午夜精品网站 | 国产一二三区视频 | 日韩精品网 | 影音先锋最新资源网 | 黑丝视频网站 | 又爽又黄又无遮挡的视频在线观看 | 成年人视频在线免费看 | 亚洲毛片在线看 | 又www又黄又爽啪啪网站 | 欧美性受xxxx | 偷偷操视频 | 午夜在线免费视频 | 成人免费福利 | 你懂得在线看 | 最近高清中文字幕大全免费1 | 黄色3级视频| 在线看的网站 | 欧美日本在线一区二区三区 | 天天爱天天操 | 欧美在线看片 | 午夜国产大片免费观看 | www精品视频 | 91精品久久久久久久99蜜桃 | a级片视频在线观看 | 色综合综合在线 | 一级毛片免费观看不卡视频 | 日本亚洲a | 欧美性xxxxxx性 | 中国一级特黄真人毛片免 |