包含淺析js中const的詞條

本文目錄一覽:

javascript的常量相關問題【const】

如果你看過,並且明白這倆是啥意思,類比到const就行了。

所謂常量的值就是指基本類型常量,而常量指向的值就是指引用類型常量。

常量的意義當然就是值不可變。基本類型常量的值不可變很容易理解,但是對於引用類型常量,這類常量的值也不可變,但是是計算機意義上的值不可變,它本質上的值記錄的是所引用數據的內存地址。所以對於這類常量而言,const的效果僅限於引用不可變,但是其實際指向的值是可變的。

舉個例子,下面這倆操作,上面是非法的,而下面是合法的:

const obj = {a: 1};

// 非法操作

obj = {a: 2};

// 合法操作

obj.a = 2;

js const 和 var 的區別

const用於定義常量,不可以修改,而且必須初始化。var用於定義變量

js 的 const聲明常量不是不能修改嗎,為什麼循環裏面可以修改

for…in每次循環中的value並不是同一個value,

for(const value in iterable){

console.log(value)

}

相當於每次都用const重新定義了一個新的value存儲iterable中的值,並打印到控制台上;

如果你這樣寫就會報錯,告知你const不可以修改

const value = 1; //const定義常量必須有默認值

for(value in iterable){

}

var、let、const三者之間的區別和聯繫有哪些?

var 是es5之前當然之後也可以這麼寫的寫法!

es5之後又細分出了let(變量)const(常量)這兩種類型。

但是const的出現也表示js腳本開始走向類如java,c#那種重型語言的編寫方式,明確細分了常量和變量。

然後let對比var都是變量(var沒有變量常量一說,但ES5之後其行為與let類似),但是,var和let有很大區別,簡單理解就是作用域變了,如果你學過後端語言的話,你會知道,使用變量需要先聲明在賦值後使用的流程,let繼承了這種流程,而var沒有,在代碼里的體現就是,let只在定義它的上一個大括號內及其所有子方法體起作用,比如方法中定義let則出了這個方法就沒法使用到這個let,同級別的兩個方法,可以各自定義一個同名let變量。

其實說起來,你可能沒有感覺,因為你用var的時候可能也是這麼用的,但是let是被嚴格約束可以這麼用,而var其實是無約束的,在某些時候是亂竄。也就是你看到的是你想看的,但它裏面的運行不是你所想的!簡單來說,var的作用域是混亂的,同父子作用域下var可以被多次定義。而let不能!

const也是繼承了後端的常量思想,一旦定義,無法被修改,也不能被修改,也不應該被修改,如果你想改變以上3條中的任何一條,都不要使用const!所以const一般用於存儲固定不變的內容,比如系統信息里的名字啊,系統風格啊,審批號啊之類的,不是不能變,而是應該通過人為干預手寫的方式來改變其值,不能不應通過代碼的方式來賦值(初值除外)!

原創文章,作者:ANMXI,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/325390.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ANMXI的頭像ANMXI
上一篇 2025-01-13 13:24
下一篇 2025-01-13 13:24

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • 解析js base64並轉成unit

    本文將從多個方面詳細介紹js中如何解析base64編碼並轉成unit格式。 一、base64編碼解析 在JavaScript中解析base64編碼可以使用atob()函數,它會將b…

    編程 2025-04-29
  • Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的解決方法

    本文將解決Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的問題。同時,給出一些相關示例代碼,以幫助讀者更好的理解並處理這個問題。 一、問題解…

    編程 2025-04-29
  • t3.js:一個全能的JavaScript動態文本替換工具

    t3.js是一個非常流行的JavaScript動態文本替換工具,它是一個輕量級庫,能夠很容易地實現文本內容的遞增、遞減、替換、切換以及其他各種操作。在本文中,我們將從多個方面探討t…

    編程 2025-04-28
  • JS圖片沿着SVG路徑移動實現方法

    本文將為大家詳細介紹如何使用JS實現圖片沿着SVG路徑移動的效果,包括路徑製作、路徑效果、以及實現代碼等內容。 一、路徑製作 路徑的製作,我們需要使用到SVG,SVG是可縮放矢量圖…

    編程 2025-04-27
  • 如何使用JS調用Python腳本

    本文將詳細介紹通過JS調用Python腳本的方法,包括使用Node.js、Python shell、child_process等三種方法,以及在Web應用中的應用。 一、使用Nod…

    編程 2025-04-27
  • 如何反混淆美團slider.js

    本文將從多個方面詳細闡述如何反混淆美團slider.js。在開始之前,需要明確的是,混淆是一種保護JavaScript代碼的方法,其目的是使代碼難以理解和修改。因此,在進行反混淆操…

    編程 2025-04-27
  • Python要學JS嗎?

    Python和JavaScript都是非常受歡迎的編程語言。然而,你可能會問,既然我已經學了Python,是不是也需要學一下JS呢?在本文中,我們將圍繞這個問題進行討論,並從多個角…

    編程 2025-04-27
  • 解決js ajax post 419問題

    對於使用ajax post請求時出現的419問題,我們需要進行以下幾個方面的闡述,包括返回碼的含義、可能出現的情況、解決方案等內容。 一、解析419返回碼 419返回碼錶示用戶超時…

    編程 2025-04-27
  • Three.js實現室內模型行走

    在本文中,將介紹如何使用Three.js創建室內模型,並在場景中實現行走。為了實現這一目標,需要完成以下任務: 加載室內模型及材質貼圖 實現攝像機控制,支持用戶自由行走 添加光源,…

    編程 2025-04-25

發表回復

登錄後才能評論