摘要:和命令命令所聲明的變量只在命令所在的代碼塊內(nèi)有效。在相同作用域中不允許重復聲明塊級作用域?qū)嶋H上為新增了塊級作用域允許塊級作用域的任意嵌套。規(guī)定,函數(shù)只能在頂層作用域和函數(shù)作用域中聲明,不能再塊級作用域中聲明。
let和const命令 let 命令:
所聲明的變量只在let命令所在的代碼塊內(nèi)有效。
for循環(huán)的計數(shù)器就很適合使用let命令。
不存在變量提升
暫時性死區(qū):只要塊級作用域內(nèi)存在let命令,它所聲明的變量就“綁定“在這個區(qū)域,不在受外部的影響。
在相同作用域中不允許重復聲明
塊級作用域let實際上為javascript新增了塊級作用域
ES6允許塊級作用域的任意嵌套。
ES5規(guī)定,函數(shù)只能在頂層作用域和函數(shù)作用域中聲明,不能再塊級作用域中聲明。
ES6引入了塊級作用域,明確允許在塊級作用域之中聲明函數(shù)。在塊級作用域中,函數(shù)聲明語句的行為類似于let,在塊級作用域之外不可引用。
do表達式在塊級作用域之前加上do,使它變?yōu)閐o表達式,然后就會返回內(nèi)部最后執(zhí)行的表達式的值。
const命令聲明一個只讀常量,一旦聲明,常量的值就不能改變。
實際上const保證的并不是變量的值不得改動,而是變量指向的那個內(nèi)存地址不得改動。
對于簡單類型的數(shù)據(jù),值就保存在變量指向的那個內(nèi)存地址。
而對于復合類型的數(shù)據(jù),變量指向的內(nèi)存地址,保存的只是一個指針,const保證這個指針固定,而它指向的數(shù)據(jù)結(jié)構(gòu)是不能控制的。
ES6聲明變量的六種方法ES5:var 和 function
ES6:let, const, import, class
頂層對象,在瀏覽器環(huán)境指的是window對象,在node指的是global對象。ES5之中,頂層對象的屬性與全局變量是等價的。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/92616.html
摘要:外層作用域不報錯正常輸出塊級作用域與函數(shù)聲明規(guī)定,函數(shù)只能在頂層作用域和函數(shù)作用域之中聲明,不能在塊級作用域聲明。規(guī)定,塊級作用域之中,函數(shù)聲明語句的行為類似于,在塊級作用域之外不可引用。同時,函數(shù)聲明還會提升到所在的塊級作用域的頭部。 前言:最近開始看阮一峰老師的《ECMAScript 6 入門》(以下簡稱原...
摘要:聲明的變量存在變量提升,聲明的變量不存在變量提升。聲明的變量允許重新賦值,聲明的變量不允許重新賦值。注意跨腳本聲明重復變量也會報錯。中出現(xiàn)的任何元素在聲明中出現(xiàn),語法錯誤。中的是如此的怪異。對中的聲明進行實例化。 我在上一篇文章javascript中詞法環(huán)境、領(lǐng)域、執(zhí)行上下文以及作業(yè)詳解中的最后稍微提到了有關(guān)var、let、const聲明的區(qū)別,在本篇中我會重點來分析它們之間到底有什么...
showImg(https://segmentfault.com/img/remote/1460000017757580); let和const是 ES6 新增的命令,用于聲明變量,這兩個命令跟 ES5 的var有許多不同,并且let和const也有一些細微的不同,再認真閱讀了阮一峰老師的文檔后,發(fā)現(xiàn)還是有一些不知道的細節(jié)... 博客、前端積累文檔、公眾號、GitHub 內(nèi)容: var和let...
摘要:聲明變量不存在變量提升。臨時死區(qū),而且不能在聲明之前訪問它。禁止重復聲明相同的變量,否則報錯。不存在變量提升,一旦執(zhí)行快外就會立即銷毀。聲明不允許修改綁定,但允許修改值,也就是說用創(chuàng)建對象后,可以修改該對象的屬性值。 知識點 var 聲明變量: 1、存在變量提升,實際上var無論在哪里聲明,都會被當做當前的作用域頂部聲明變量。 2、可以重復聲明,后聲明的變量會覆蓋前聲明的變量。 let...
摘要:聲明一個只讀的常量。的作用域與命令相同只在聲明所在的塊級作用域內(nèi)有效。這在語法上,稱為暫時性死區(qū),簡稱。暫時性死區(qū)也意味著不再是一個百分之百安全的操作。重復聲明是允許在相同作用域內(nèi)重復聲明同一個變量的,而與不允許這一現(xiàn)象。 轉(zhuǎn)載自阮一峰老師的ES6入門,稍有修改 1.基本概念MDN var聲明了一個變量,并且可以同時初始化該變量。let語句聲明一個塊級作用域的本地變量,并且可選的賦予...
摘要:概述發(fā)布前,只能通過聲明變量的方式,常量塊級變量函數(shù)變量這些概念的差別都不能很好的體現(xiàn)出來,于此同時,加入你要使用或者提供一個,聲明的變量可隨時被修改和重新分配的問題,會讓你時刻擔心代碼是否能正常運行。 1. var、let、const概述 ES6發(fā)布前,Javascript只能通過var聲明變量的方式,常量、塊級變量、函數(shù)變量這些概念的差別都不能很好的體現(xiàn)出來,于此同時,加入你要使用...
閱讀 2077·2021-09-22 15:43
閱讀 8759·2021-09-22 15:07
閱讀 1092·2021-09-03 10:28
閱讀 2067·2021-08-19 10:57
閱讀 1080·2020-01-08 12:18
閱讀 2985·2019-08-29 15:09
閱讀 1537·2019-08-29 14:05
閱讀 1649·2019-08-29 13:57