摘要:與也是用來聲明變量,但是不同于,個(gè)人理解是它是用來修復(fù)的一些神奇效果,似的變量更加規(guī)范,簡單來說定義的變量就是私有變量,有以下幾點(diǎn)作用聲明的變量只在它所在的代碼塊中生效即它的塊級(jí)作用域中生效對(duì)于循環(huán)的塊級(jí)作用域,當(dāng)聲明循環(huán)體時(shí),有兩個(gè)特點(diǎn)聲
let與const let
也是用來聲明變量,但是不同于var,個(gè)人理解是它是用來修復(fù)var的一些神奇效果,似的變量更加規(guī)范,簡單來說let定義的變量就是私有變量,有以下幾點(diǎn)作用
let聲明的變量只在它所在的代碼塊中生效(即它的塊級(jí)作用域中生效)
if (true) { let i; console.log(i); } //console.log(i); ReferenceError: i is not defined
對(duì)于for循環(huán)的塊級(jí)作用域,當(dāng)let聲明循環(huán)體i時(shí),有兩個(gè)特點(diǎn)
let聲明的i外部不能被訪問
for (let i = 0; i < 4; i ++) { console.log(i); } console.log(i); //i is not defined
之所以里面能訪問i,因?yàn)閒or循環(huán)子作用域能訪問外部作用
for循環(huán)當(dāng)在子作用域,聲明let i時(shí)與循環(huán)體i是獨(dú)立的
for (let i = 0; i < 4; i ++) { let i = 6; console.log(i); }
為什么能,簡單說就是i私有了
每次循環(huán)let都是重新申明的,正因?yàn)檫@樣,就能解決for循環(huán)時(shí)閉包帶來的問題
for (let i = 0; i < 4; i ++) { setTimeout(function () {console.log(i)}, 100) } //0 1 2 3 for (var i = 0; i < 4; i ++) { setTimeout(function () {console.log(i)}, 100) } //4 4 4 4
不存在變量提升,
//console.log(i); //console.log(typeof i); let i;
都是會(huì)報(bào)錯(cuò)的,i is not defined。
對(duì)于let聲明的變量,typeof 不再是安全形式了,并且該變量必須在聲明后才能使用,在它之前使用那就是暫時(shí)的死區(qū)
function f(x=y,y=2) {}; f(); //y is not defined let x = x; //x is not defined
同一作用域中也不能重復(fù)定義
let i; let i; //報(bào)錯(cuò)
function f(n) { let n } f(); //報(bào)錯(cuò)
不同作用域可以重復(fù)且各自獨(dú)立
function f(n) { {let n} }
let聲明的變量不屬于window
let i = 1; console.log(window.i); //undefinedconst作用是用來聲明常量
作用和let一樣,但多兩點(diǎn)
一旦聲明必須初始化,也就是必需賦值,否則報(bào)錯(cuò);
const P = 1;
一旦賦值不能被改變,其本質(zhì)是不能改變變量的內(nèi)存地址
變量是原始類型的數(shù)據(jù),其本身就是不可變的,再加上不能重新賦值,改變地址
const P = 1; P = 2; //報(bào)錯(cuò)
變量是對(duì)象類型的,其本身是可變的,所以也就能改變,要注意的是其地址并不改變
const P = {a : 1} ; P.a =2; console.log(P); //{a : 2}
想要其內(nèi)容也不變,可以凍結(jié)它
const P = {a : 1} ; Object.freeze(P); P.a =2; console.log(P);
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/98538.html
摘要:變量的解構(gòu)賦值更加便利的從匿名對(duì)象或者數(shù)組中,對(duì)變量進(jìn)行賦值數(shù)組的解構(gòu)賦值基本樣式,右邊數(shù)據(jù)類型必須是可迭代的類型。 變量的解構(gòu)賦值 更加便利的從匿名對(duì)象或者數(shù)組中,對(duì)變量進(jìn)行賦值; 數(shù)組的解構(gòu)賦值 基本樣式,右邊數(shù)據(jù)類型必須是可迭代的類型。 let a = 1, b = 2, c = 3; //等價(jià)于 //let [a, b, c] = [1, 2, 3]; 對(duì)...
摘要:阮一峰老師開源作品。書上的示例代碼可以通過在線網(wǎng)站代碼調(diào)試工具調(diào)試。 阮一峰老師開源作品。 書上的示例代碼可以通過 在線網(wǎng)站代碼調(diào)試工具 JS Bin 調(diào)試。 作用域 作用域鏈 每個(gè)變量或函數(shù)通過執(zhí)行環(huán)境 (execution context) 定義了其有權(quán)訪問的其他數(shù)據(jù),決定了他們各自的行為; 全局執(zhí)行環(huán)境是最頂層的執(zhí)行環(huán)境,根據(jù)宿主環(huán)境的不同,表示全局執(zhí)行環(huán)境的對(duì)象也不同:在瀏覽...
摘要:原文地址一個(gè)非常適合入門學(xué)習(xí)的博客項(xiàng)目前端掘金一個(gè)非常適合入門學(xué)習(xí)的項(xiàng)目,代碼清晰結(jié)構(gòu)合理新聞前端掘金介紹一個(gè)由編寫的新聞。深入淺出讀書筆記知乎專欄前端專欄前端掘金去年的一篇老文章,恰好今天專欄開通,遷移過來。 破解前端面試(80% 應(yīng)聘者不及格系列):從閉包說起 - 掘金修訂說明:發(fā)布《80% 應(yīng)聘者都不及格的 JS 面試題》之后,全網(wǎng)閱讀量超過 6W,在知乎、掘金、cnodejs ...
摘要:原文地址一個(gè)非常適合入門學(xué)習(xí)的博客項(xiàng)目前端掘金一個(gè)非常適合入門學(xué)習(xí)的項(xiàng)目,代碼清晰結(jié)構(gòu)合理新聞前端掘金介紹一個(gè)由編寫的新聞。深入淺出讀書筆記知乎專欄前端專欄前端掘金去年的一篇老文章,恰好今天專欄開通,遷移過來。 破解前端面試(80% 應(yīng)聘者不及格系列):從閉包說起 - 掘金修訂說明:發(fā)布《80% 應(yīng)聘者都不及格的 JS 面試題》之后,全網(wǎng)閱讀量超過 6W,在知乎、掘金、cnodejs ...
摘要:原文第一章主要介紹的大概情況基本語法。通過和來引用對(duì)象屬性或數(shù)組元素的值就構(gòu)成一個(gè)表達(dá)式。 原文:https://keelii.github.io/2016/06/16/javascript-definitive-guide-note-0/ 第一章 主要介紹 JavaScript 的大概情況、基本語法。之前沒有 JavaScript 基礎(chǔ)的看不懂也沒關(guān)系,后續(xù)章節(jié)會(huì)有進(jìn)一步的詳細(xì)說明...
閱讀 4242·2021-09-26 10:17
閱讀 884·2021-09-22 15:02
閱讀 3476·2021-09-06 15:00
閱讀 1067·2021-07-25 16:52
閱讀 2748·2019-08-29 16:16
閱讀 2526·2019-08-29 13:25
閱讀 1600·2019-08-26 13:51
閱讀 2195·2019-08-26 10:58