日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

石川es6课程---3、变量let和常量const

發布時間:2025/7/14 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 石川es6课程---3、变量let和常量const 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

石川es6課程---3、變量let和常量const

一、總結

一句話總結:

let非常好用,尤其是let的塊級作用域可以解決之前要(function(){})()立刻執行函數做的塊級作用域

?

1、js中var聲明變量會伴隨哪些問題?

- 可以重復聲明,沒有報錯和警告
- 無法限制修改(也就是沒有常量的概念)
- 沒有塊級作用域, { }

?

2、js中如何實現塊級作用域?

函數:普通js只有函數才有作用域(function(){})()立刻執行函數
//普通js只有函數才有作用域(function(){})()立刻執行函數 // for(var i=0;i<aBtn.length;i++){ // (function(i){ // aBtn[i].οnclick=function(){alert(i)} // })(i) // }

?

?

3、let 和 const的優點?

· 不能重復聲明
· 都是塊級作用域, { } 塊內聲明的,塊外無效
· let 是變量,可以修改,const 是常量,不能修改

?

4、let塊級作用域應用舉例?

+ 本來需要(function(){})()立刻執行函數做塊級作用域的地方的應用可以輕松被let代替
+ 直接 var 改 let,解決作用域問題
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><script>window.onload= function () {/*var aBtn = document.getElementsByTagName('input')for (var i=0; i < aBtn.length; i++) {aBtn[i].onclick = function () {alert(i)}}*/var aBtn = document.getElementsByTagName('input')for (let i = 0; i < aBtn.length; i++) {aBtn[i].onclick = function () {alert(i)}}/*var aBtn = document.getElementsByTagName('input')for (var i = 0; i < aBtn.length; i++) {// 封裝到函數里,限制作用域(function (i) {aBtn[i].onclick = function () {alert(i)}})(i)}*/}</script> </head> <body><input type="button" value="按鈕1"><input type="button" value="按鈕2"><input type="button" value="按鈕3"> </body> </html>

?

?

?

二、變量let和常量const

?- var 的問題
- 可以重復聲明,沒有報錯和警告
- 無法限制修改
- 沒有塊級作用域, `{ }`

- let 和 const
- 不能重復聲明
- 都是塊級作用域, `{ }` 塊內聲明的,塊外無效
- let 是變量,可以修改
- const 是常量,不能修改

- 塊級作用域舉例
- 原來用 var 的方式,結果彈出的都是 3
- 或者將變量 封裝到函數里,限制作用域,但比較麻煩
- 用 let 最簡單,直接 var 改 let,解決作用域問題

?

let做塊級作用于應用

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 7 <title>Document</title> 8 <script> 9 window.onload= function () { 10 /* 11 var aBtn = document.getElementsByTagName('input') 12 for (var i=0; i < aBtn.length; i++) { 13 aBtn[i].onclick = function () { 14 alert(i) 15 } 16 }*/ 17 var aBtn = document.getElementsByTagName('input') 18 for (let i = 0; i < aBtn.length; i++) { 19 aBtn[i].onclick = function () { 20 alert(i) 21 } 22 } 23 /* 24 var aBtn = document.getElementsByTagName('input') 25 for (var i = 0; i < aBtn.length; i++) { 26 // 封裝到函數里,限制作用域 27 (function (i) { 28 aBtn[i].onclick = function () { 29 alert(i) 30 } 31 })(i) 32 }*/ 33 } 34 </script> 35 </head> 36 <body> 37 <input type="button" value="按鈕1"> 38 <input type="button" value="按鈕2"> 39 <input type="button" value="按鈕3"> 40 </body> 41 </html>

?普通js只有函數才有作用域(function(){})()立刻執行函數

?

塊級作用域

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 7 <title>塊級作用域</title> 8 </head> 9 <body> 10 <script> 11 { 12 var a=12 13 let b=13 14 b=16 15 const c=16 16 // c=18//報錯Uncaught TypeError: Assignment to constant variable. 17 // const c=17//塊級作用域內 18 //報錯Uncaught SyntaxError: Identifier 'c' has already been declared 19 } 20 let b=13 21 const c=19 22 alert(a)//正常 23 alert(b)//報錯a is not defined 24 alert(c) 25 // let a=19//塊級作用域外 26 //報錯Uncaught SyntaxError: Identifier 'a' has already been declared 27 </script> 28 </body> 29 </html>

?

?

?

?

?

?

轉載于:https://www.cnblogs.com/Renyi-Fan/p/11589900.html

總結

以上是生活随笔為你收集整理的石川es6课程---3、变量let和常量const的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。