国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Js基礎(chǔ)——變量聲明 var let const

djfml / 446人閱讀

摘要:而聲明一個(gè)變量,如果沒有明顯的賦值操作,那么默認(rèn)為賦值中有三種變量聲明的方式,和。而這后兩種聲明方式,是在里才出現(xiàn)的。函數(shù)的參數(shù)不要用聲明,嘛,就用來聲明常量,或是不改變初值的變量參考資料和命令深入淺出和

Js的變量特點(diǎn)是松散型,就是說值跟類型是沒有關(guān)系的,變量只是一個(gè)存值的占位符,不會(huì)根據(jù)初始化存入的值類型,給變量設(shè)置特定的類型,所以變量在初始化后,可以在改變值的同時(shí)改變值類型。而聲明一個(gè)變量,如果沒有明顯的賦值操作,那么默認(rèn)為賦值undefined
Js中有三種變量聲明的方式:var ,let和const。而這后兩種聲明方式,是在es6里才出現(xiàn)的。他們可以說是彌補(bǔ)var在變量聲明的遺憾,解決了在使用過程中出現(xiàn)的一些問題

var聲明
var的特點(diǎn)如下:

作用域范圍為封閉的全局函數(shù)或是局部函數(shù)

同一個(gè)作用域里重復(fù)聲明同名變量,不會(huì)報(bào)錯(cuò)

在嵌套的子函數(shù)里,重新聲明外層函數(shù)中同名的變量,不會(huì)改變外層函數(shù)中變量的值

變量可以提升到全局代碼或是函數(shù)頂端執(zhí)行,所以打印變量值可以在書寫聲明變量之前執(zhí)行,也不會(huì)報(bào)錯(cuò),而賦值只有等到執(zhí)行到賦值那一句才會(huì)執(zhí)行

沒有聲明的變量,會(huì)被隱式創(chuàng)建為全局變量,即全局對(duì)象的屬性(獨(dú)有)
非聲明的變量,只有在賦值的時(shí)候才會(huì)被創(chuàng)建
非聲明的變量,因?yàn)槭侨謱?duì)象的屬性,所以可以用delete刪除

栗子?
這個(gè)例子說明非聲明的變量,變?yōu)槿謱?duì)象的屬性,可以delete刪除

let聲明
let聲明變量又稱更精確的var,主要應(yīng)用于塊作用域,也就是if for switch以及{}這樣的塊里,可以出現(xiàn)在它自己聲明所在的塊和它包含的子塊里。
它有這樣的特點(diǎn):

在同一個(gè)塊作用域里,重新聲明一個(gè)同名變量,會(huì)報(bào)錯(cuò)

在嵌套中的子塊作用域里,重新聲明一個(gè)與外層塊作用域相同的同名變量,不會(huì)保留外層塊的變量值,因?yàn)閷儆诓煌淖兞孔饔糜?/p>

沒有提升作用,所以在變量聲明之前使用會(huì)報(bào)錯(cuò),這一個(gè)現(xiàn)象,也稱為:暫存死區(qū)

不能作用全局對(duì)象的屬性

應(yīng)用:因?yàn)榭梢允菈K作用域,所以let的出現(xiàn),可以代替立即執(zhí)行函數(shù)
栗子?
這個(gè)例子說明,var可以提升變量聲明,但是let不可以
這個(gè)例子說明,同名的變量子塊中的變量跟外層塊中的變量,是不同的兩個(gè)變量

這個(gè)例子說明,即便是有全局變量,但是在塊的作用域里,有l(wèi)et聲明的同名作用域起作用,而且在聲明之前不可用
這個(gè)例子說明,不能用let聲明跟參數(shù)同名的變量
這個(gè)例子說明,let的使用,替換了立即執(zhí)行函數(shù)

const聲明
const也有l(wèi)et的特點(diǎn)3和4,也是一個(gè)塊作用域的變量聲明方式,除此以外還有自己的特點(diǎn)

必須在聲明的同時(shí)賦值初始值

一旦賦值就不能改變,而且聲明的變量通常是常量,用大寫表示

也是因?yàn)?的原因,所以不能作為for循環(huán)的循環(huán)變量

栗子?
這個(gè)例子說明const不能作為for循環(huán)的變量
這個(gè)例子說明const聲明的變量賦值后不能改,只是同名變量不能再賦值,但是可以給變量的屬性賦值

最后來個(gè)小總結(jié):
var嘛,能用let的時(shí)候就不用var,比如用let的很好的場景:for的循環(huán)變量,可以保證每一次循環(huán)都是一個(gè)新變量,而不是用var時(shí)候的同一個(gè)變量,if或是switch里面,但是注意一種情況就是let x = x + 1這個(gè)時(shí)候是會(huì)報(bào)錯(cuò)的,因?yàn)橐彩欠噶宋绰暶骶褪褂玫腻e(cuò),賦值操作是從右到左的,也就是說會(huì)先計(jì)算好右邊的值,才會(huì)把最終結(jié)果賦值給左邊。函數(shù)的參數(shù)不要用let聲明,
const嘛,就用來聲明常量,或是不改變初值的變量

參考資料:https://developer.mozilla.org...
https://developer.mozilla.org...
https://developer.mozilla.org...
http://voidcanvas.com/es6-var...
let 和 const 命令
Let It Be - How to declare JavaScript variables
深入淺出ES6:let和const

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/94268.html

相關(guān)文章

  • 前端基礎(chǔ)_ES6

    摘要:聲明三大關(guān)鍵字聲明變量語法語法聲明常量語法聲明變量特性支持函數(shù)作用域支持預(yù)解析所謂變量提升支持重復(fù)聲明同域同名變量函數(shù)作用域局部作用域預(yù)解析重復(fù)聲明聲明變量推薦特性支持塊作用域不支持預(yù)解析不支持重復(fù)聲明同域同名變量塊作用域局部作用域不支持預(yù) 聲明 三大關(guān)鍵字 聲明變量: var (ES5語法) let (ES6語法) 聲明常量: const (ES6語法) var 聲明變量...

    wuyangnju 評(píng)論0 收藏0
  • 【重溫基礎(chǔ)】1.語法和數(shù)據(jù)類型

    摘要:語法和數(shù)據(jù)類型正文開始本章節(jié)復(fù)習(xí)的是中的基本語法,變量聲明,數(shù)據(jù)類型和字面量。聲明一個(gè)塊作用域的局部變量,可賦一個(gè)初始值。變量聲明有三種方式如,聲明局部變量和全局變量。 最近開始把精力放在重新復(fù)習(xí)JavaScript的基礎(chǔ)知識(shí)上面,不再太追求各種花枝招展的前端框架,框架再多,適合實(shí)際項(xiàng)目才是最重要。 上星期在掘金發(fā)布了幾篇文章,其中最大塊算是 【復(fù)習(xí)資料】ES6/ES7/ES8/ES...

    Darkgel 評(píng)論0 收藏0
  • es6基礎(chǔ)0x002:varletconst、塊級(jí)作用域、暫存死區(qū)

    摘要:但是如果使用,作用域塊級(jí)作用域內(nèi),在還沒使用聲明一個(gè)變量的時(shí)候,訪問該變量,將會(huì)獲得,從作用域開始到語句之間,就是暫存死區(qū)。 0x001 var 語法 var varname1 [= value1 [, varname2 [, varname3 ... [, varnameN]]]]; 使用 var a, b=2 // 聲明多個(gè)變量,可以賦值,也可以不賦值 a=1 // 先聲...

    scola666 評(píng)論0 收藏0
  • Javascript基礎(chǔ)之-varletconst深入解析(二)

    摘要:規(guī)范對(duì)其是這樣進(jìn)行的描述的。聲明定義了在正在運(yùn)行的執(zhí)行上下文作用域內(nèi)的變量環(huán)境中的變量。在執(zhí)行時(shí),由帶有的定義的變量被賦其設(shè)定項(xiàng)的的值。由于變量已經(jīng)被聲明,是可訪問的,因此會(huì)打印出正確的結(jié)果。 你想在在變量聲明之前就使用變量?以后再也別這樣做了。 新的聲明方式(let,const)較之之前的聲明方式(var),還有一個(gè)區(qū)別,就是新的方式不允許在變量聲明之前就使用該變量,但是var是可以...

    XiNGRZ 評(píng)論0 收藏0
  • JS基礎(chǔ)入門篇(四十三)— ES6(一)

    摘要:已經(jīng)被聲明了舉例說明塊級(jí)作用域報(bào)錯(cuò),常量初始化之后內(nèi)部值不可改必須初始化賦值的問題。不支持預(yù)解析不允許重復(fù)聲明支持塊級(jí)作用域舉例說明報(bào)錯(cuò),。解決地址引用的方法通過轉(zhuǎn)化為字符串,再轉(zhuǎn)化為對(duì)象。此方法存在問題中缺少 1.var , let , const var 1.預(yù)解析(變量提升) 2.可以重復(fù)聲明變量 let 1.不支持預(yù)解析(必須先聲明,后使用...

    AaronYuan 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<