Blogger Information
Blog 11
fans 0
comment 0
visits 9073
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
JavaScript中常量与变量的声明
酿酒的人ァ
Original
698 people have browsed it

首先,我们声明一个变量:

  1. //定义一个变量num,并赋值为10;
  2. let num = 10;
  3. //进行打印
  4. console.log(num);

let与var有所不同:

语法特点1:let变量只能在当前代码块使用

  1. (function(){
  2. {
  3. let i = 2;
  4. }
  5. alert(i);
  6. })();

代码块是什么呢?

我们的大括号就属于一个代码块,只要是代码块以内的都可以使用到,如果在外面就获取不到了,此时输出的i是没有值的。

语法特点2:同一代码块不允许出现重名let变量

  1. (function(){
  2. var i = 9;//不允许
  3. let i = 10;//不允许
  4. let i = 11;
  5. console.log(i);
  6. })();

下面来看下一个小测试:

  1. var arr3 = [];
  2. for(var i = 0;i<10;i++){
  3. arr3[i] = function(){
  4. alert(i)
  5. }
  6. }
  7. arr3[3]();

变量i是var声明的,在全局内都有效,
所以每次循环,新值都会覆盖旧值,导致最后输出的是最后一轮的i的值。
我们如何解决这种问题呢?
以下通过闭包解决

  1. var arr = [];for(var i = 0;i<10;i++){
  2. (function sum(val){
  3. arr[i] = function(){
  4. alert(val);
  5. }
  6. })(i)
  7. }
  8. arr[9]();

当然,这种方法是不是麻烦了点!我们可以通过let定义变量来解决这个问题

以下是let解决

  1. var arr2 = [];
  2. for(let i = 0;i<10;i++){
  3. arr2[i] = function(){
  4. alert(i)
  5. }
  6. }
  7. arr2[3]();

变量i是let声明的,当前的i只在本轮循环有效,
所以每一次循环的i其实都是一个新的变量,所以最后输出的是3.

那我们如何引入JavaScript呢,通常都会使用以下方式

  1. <script type="module" src="./js/index.js"></script>
Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post