網(wǎng)站首頁 編程語言 正文
ES6新增加了兩個(gè)重要的JavaScript關(guān)鍵字:let和const
一、let關(guān)鍵字
let聲明的變量只在let命令所在的代碼塊內(nèi)有效。
1、基本語法
let a='123'
2、let和var的區(qū)別
?var也是用來聲明變量,let和var有什么區(qū)別呢?區(qū)別主要是以下三點(diǎn):
2.1、同一作用域內(nèi)let不能重復(fù)定義同一個(gè)名稱,var可以重復(fù)定義
看下面的例子:
// 同一個(gè)作用域內(nèi)let不能重復(fù)定義同一個(gè)名稱 let a='123';let a='456'; // 錯(cuò)誤 // var可以重復(fù)定義 var a=10; var a=20;
2.2、兩者作用域不同
let屬于塊級作用域,只在當(dāng)前塊內(nèi)有效。
var屬于全局作用域。
看下面的示例:
ES6
效果:
打印str1的時(shí)候會報(bào)錯(cuò),因?yàn)槌隽藄tr1的作用域。
2.3、不存在變量提升
var聲明的變量存在變量提升,即可以在變量聲明之前就使用該變量,值為undefined;而let不存在變量提升,必須先聲明變量才能使用。看下面的例子:
ES6
?效果:
二、const
const與let的相同點(diǎn):都是塊級作用域。
不同點(diǎn):const聲明的是一個(gè)只讀的常量,聲明之后就不允許改變。意味著,聲明的同時(shí)必須初始化。看下面的例子:
const pi='3.1415926'; pi='3.1415927'
查看控制臺結(jié)果:
聲明的同時(shí)必須初始化,看示例:
ES6
控制臺結(jié)果:
注意:
const 如何做到變量在聲明初始化之后不允許改變的?其實(shí) const 其實(shí)保證的不是變量的值不變,而是保證變量指向的內(nèi)存地址所保存的數(shù)據(jù)不允許改動(dòng)。此時(shí),你可能已經(jīng)想到,簡單類型和復(fù)合類型保存值的方式是不同的。是的,對于簡單類型(數(shù)值 number、字符串 string 、布爾值 boolean),值就保存在變量指向的那個(gè)內(nèi)存地址,因此 const 聲明的簡單類型變量等同于常量。而復(fù)雜類型(對象 object,數(shù)組 array,函數(shù) function),變量指向的內(nèi)存地址其實(shí)是保存了一個(gè)指向?qū)嶋H數(shù)據(jù)的指針,所以 const 只能保證指針是固定的,至于指針指向的數(shù)據(jù)結(jié)構(gòu)變不變就無法控制了,所以使用 const 聲明復(fù)雜類型對象時(shí)要慎重。
ES6
控制臺結(jié)果:
原文鏈接:https://www.cnblogs.com/dotnet261010/p/10805516.html
相關(guān)推薦
- 2022-07-10 深拷貝的三種實(shí)現(xiàn)方式
- 2022-05-06 Python學(xué)習(xí)之模塊化程序設(shè)計(jì)示例詳解_python
- 2022-10-01 React?hooks?useState異步問題及解決_React
- 2022-05-19 C++實(shí)現(xiàn)職工工資管理系統(tǒng)課程設(shè)計(jì)_C 語言
- 2022-09-29 C語言開發(fā)實(shí)現(xiàn)通訊錄管理系統(tǒng)_C 語言
- 2022-09-29 react嵌套路由實(shí)現(xiàn)TabBar的實(shí)現(xiàn)_React
- 2022-08-23 Python利用VideoCapture讀取視頻或攝像頭并進(jìn)行保存_python
- 2023-05-17 Kotlin開發(fā)中open關(guān)鍵字與類名函數(shù)名和變量名的使用方法淺析_Android
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支