js小筆記 -- let const的理解
ES6 增加let命令宣告變數,類似於var,但是所宣告的變數,只在let宣告的變數只在宣告所在的程式碼塊內有效,無法變數提升,可以解決for塊中條件變數的使用問題。
如:
var a = [];
for (var i = 0; i < 10; i++) {
a[i] = function () {
console.log(i);
};
}
a[6] () // 顯示10
let解決塊中變數提升帶來的麻煩
for (let i = 0; i < 10; i++) {
// ...
}
const實際上保證的,並不是變數的值不得改動,而是變數指向的那個記憶體地址所儲存的資料不得改動。所以對於結構體或陣列,指向記憶體地址所儲存的值是一個地址地址,所以其中包含的其他元素值可以發生改變:
const a = [];
a.push('Hello'); // 可執行
a.length = 0; // 可執行
a = ['Dave']; // 報錯,a為產量是不能賦予前他新的陣列地址值
相關推薦
js小筆記 -- let const的理解
ES6 增加let命令宣告變數,類似於var,但是所宣告的變數,只在let宣告的變數只在宣告所在的程式碼塊內有效,無法變數提升,可以解決for塊中條件變數的使用問題。 如: var a = [];for (var i = 0; i < 10; i++) {a[i] = function ()
Js--小筆記
reat 參數 etime src length 讀取 ray http text 做個學習小筆記 1. var d=new Date(); 得到當前時間2. var n=d.toLocaleTimeString(); 根據本地時間把 Date 對象的時間部分轉換為
ES6學習筆記一之js發展、let、const、解構賦值
ECMAScript和JavaScript的關係? 1996年11月,JavaScript的創造者—-Netscape公司,決定將JavaScript提交給國際標準化組織ECMA,希望這種語言能成為國際標準。次年,ECMA釋出262號檔案(ECMA-262)的
每天一個JS 小demo之原生數組splice方法書寫。主要知識點:鍛煉思維邏輯能力,對於數組方法的理解和各種情況的考量
scrip charset 是否 isn 如果 情況 del 當前 cti <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <titl
每天一個JS 小demo之韓雪冬輪播圖。主要知識點:html,css布局,對於數組和對象的理解和運用
身高 全局 borde ava ebo 空間 use mouseout desc 1 @charset "utf-8"; 2 /* CSS Document */ 3 4 * { padding: 0; margin: 0; } 5 li { list-st
[js高手之路]var, let, const詳解
兩種 控制 ghost 花括號 pre 內部 span lec 同名 1 function show( flag ){ 2 console.log( a ); 3 if( flag ){ 4
深入理解ES6 - var-let-const
sting fun ret 全局 key 聲明 mas 剛才 syn 知識點 var 聲明變量: 1、存在變量提升,實際上var無論在哪裏聲明,都會被當做當前的作用域頂部聲明變量。 2、可以重復聲明,後聲明的變量會覆蓋前聲明的變量。 let 聲明變量: 1、不存在變量提升。
es6 入坑筆記(一)---let,const,解構,字串模板
let 全面取代var 大概相似於C++的定義,一個變數必須得先定義後使用,沒有預編譯 注意let的作用域,一個{}就是一個作用域,上述規則須在一個作用於內 坑:for(let i =0;i < 10; i++){ let i=20; } 這
【學習筆記】深入理解js原型和閉包(3)——prototype原型
既typeof之後的另一位老朋友! prototype也是我們的老朋友,即使不瞭解的人,也應該都聽過它的大名。如果它還是您的新朋友,我估計您也是javascript的新朋友。 在咱們的第一節(深入理解js原型和閉包(1)——一切皆是物件)中說道,函式也是一種物件。他也是屬性的集合,你也可以
【學習筆記】深入理解js原型和閉包(8)——簡述【執行上下文】上
什麼是“執行上下文”(也叫做“執行上下文環境”)?暫且不下定義,先看一段程式碼: 第一句報錯,a未定義,很正常。第二句、第三句輸出都是undefined,說明瀏覽器在執行console.log(a)時,已經知道了a是undefined,但卻不知道a是10(第三句中)。 在一段js程式碼拿過來真正一句一
【學習筆記】深入理解js原型和閉包(9)—— 簡述【執行上下文】下
繼續上一篇文章(https://www.cnblogs.com/lauzhishuai/p/10078231.html)的內容。 上一篇我們講到在全域性環境下的程式碼段中,執行上下文環境中有如何資料: 變數、函式表示式——變數宣告,預設賦值為undefined; this——賦值; 函式宣告
【學習筆記】深入理解js原型和閉包(11)——執行上下文棧
繼續上文的內容。 執行全域性程式碼時,會產生一個執行上下文環境,每次呼叫函式都又會產生執行上下文環境。當函式呼叫完成時,這個上下文環境以及其中的資料都會被消除,再重新回到全域性上下文環境。處於活動狀態的執行上下文環境只有一個。 其實這是一個壓棧出棧的過程——執行上下文棧。如下圖: 可
【學習筆記】深入理解js原型和閉包(12)——簡介【作用域】
提到作用域,有一句話大家(有js開發經驗者)可能比較熟悉:“javascript沒有塊級作用域”。所謂“塊”,就是大括號“{}”中間的語句。例如if語句: 再比如for語句: 所以,我們在編寫程式碼的時候,不要在“塊”裡面宣告變數,要在程式碼的一開始就宣告好了。以避免發生歧義。如: &nbs
【學習筆記】深入理解js原型和閉包(15)——閉包
前面提到的上下文環境和作用域的知識,除了瞭解這些知識之外,還是理解閉包的基礎。 至於“閉包”這個詞的概念的文字描述,確實不好解釋,我看過很多遍,但是現在還是記不住。 但是你只需要知道應用的兩種情況即可——函式作為返回值,函式作為引數傳遞。 第一,函式作為返回值 如上程式碼,bar函式作為返回值,賦
【學習筆記】深入理解js原型和閉包(17)——補this
本文對《深入理解js原型和閉包(10)——this》一篇進行補充,原文連結:https://www.cnblogs.com/lauzhishuai/p/10078307.html 原文中,講解了在javascript中this的各個情況,寫完之後發現還落下一種情況,就此補充。 原文中thi
【學習筆記】深入理解js原型和閉包(18)——補充:上下文環境和作用域的關係
本系列用了大量的篇幅講解了上下文環境和作用域,有些人反映這兩個是一回兒事。本文就用一個小例子來說明一下,作用域和上下文環境絕對不是一回事兒。 再說明之前,咱們先用簡單的語言來概括一下這兩個的區別。 00 上下文環境: 可以理解為一個看不見摸不著的物件(有若干個屬性),雖然看不見
記個小筆記,js字串加減運算
今天在做分頁封裝的時候發現一個以前忽略的問題: 字串減法運算:正常, 字串加法運算:拼接, 所以在獲取到字串的時候將加法轉化一下,變成減法運算,就省事多了 比如下面程式碼中,將this.innerText += 10 變為 this.inner
Java中過載、重寫、覆蓋、隱藏的理解小筆記
過載Overloading 發生要素如下: 1. 在同一作用範圍內(同一個類,同一個介面) 2. 方法名必定相同 3. 形參組成不同(型別、個數均不相同 or 個數相同但型別不同 or 型別相
【Vue.js學習筆記】7:v-for渲染,Vue的小Demo
v-for渲染 v-for是Vue中常用的列表渲染方法, 可以將一個列表渲染為一系列的HTML元素,也可以用來遍歷物件內的k-v對。另外關於模板元素渲染在官方文件上見這裡。 index.html <!DOCTYPE html> <html lang="en"
【phaser.js學習筆記(3)】開發H5遊戲“穿越小行星”並適配微信小遊戲
這篇筆記主要記錄使用phaser.js開發一個完整HTML5遊戲的整個過程,並將web端程式適配到微信小遊戲。 1、遊戲基本架構由於phaser社群目前僅有phaser2對微信小程式的支援,因此我選擇phaser v2.6.2作為遊戲的引擎。為便於開發除錯,以單獨的phas