let 讲解

作者: zhang463291046 | 来源:发表于2020-08-13 10:24 被阅读0次

以下内容是引用或者借鉴别人的,自己只是做个笔记,方便学习。理解错误的地方,欢迎评论。如有侵权,私聊我删除,未经允许,不准作为商业用途

let常见错误写法

  • let定义变量必须先声明后使用,否则报错
  • let只在命令声明所在的代码块内有效,否则报错
  • let命令声明所在的代码块内会形成封闭作用域,必须先声明后使用,否则报错
  • let不允许在相同作用域内,重复声明同一个变量,否则报错
{
  console.log(a)  // ReferenceError: Cannot access 'a' before initialization
  let a = 1;
  var a = 1;  // SyntaxError: Identifier 'a' has already been declared
  console.log(a)  //  1
}
console.log(a)  // ReferenceError: a is not defined.
var a = 1
{
   a = 2      //ReferenceError: Cannot access 'a' before initialization
   let a = 3
}
function func(a) {
  let a;    //  同作用域下已经被声明为形参
}
func() // SyntaxError: Identifier 'a' has already been declared

for循环特别之处,设置循环变量的是一个父作用域,而循环体内部是一个单独的子作用域。循环变量i与函数内部的变量i不在同一个作用域,有各自单独的作用域

for (let i = 0; i < 3; i++) {
  console.log(i);  //父作用域值
}
// 0
// 1
// 2
for (let i = 0; i < 3; i++) {
  let i = 5;
  console.log(i);  //子作用域值
}
// 5
// 5
// 5

块级作用域{},每个块都有单独的作用域

// IIFE 写法
(function () {
  var tmp = ...;
  ...
}());

// 块级作用域写法
{
  let tmp = ...;
  ...
}
// 块级作用域内部的函数声明语句,建议不要使用
{
  let a = 'secret';
  function f() {
    return a;
  }
}

// 块级作用域内部,优先使用函数表达式
{
  let a = 'secret';
  let f = function () {
    return a;
  };
}

const用法与上面讲解的let基本一致,除了以下这点

  • 声明一个只读的常量,且声明时,必须立即赋值,并且不能再改变(内存地址,因为再赋值时会创建新地址)
const a   // SyntaxError: Missing initializer in const declaration
const b = 1 
b = 2  // TypeError: Assignment to constant variable
const a = {}
a.c = 1   //不会报错,因为地址没有变
a = {}  //TypeError: Assignment to constant variable.

相关文章

  • let 讲解

    以下内容是引用或者借鉴别人的,自己只是做个笔记,方便学习。理解错误的地方,欢迎评论。如有侵权,私聊我删除,未经允许...

  • JavaScript ES6 - let 与 const 使用方

    ES6 语法: let 与 const 本文主要讲解 let / const / var 关键字相关内容, 解释了...

  • var VS let

    本文主要讲解一下var与let在使用上的一些区别。 变量申明提升 var允许变量申明提前;但let不允许(即let...

  • (十二)ES6简易缩略版本

    本节重点讲解知识划分 (1) Let 和Const的区别 只能声明一次 Let能修改Const无法修改 在块级作用...

  • BlackLeft老师讲课了——javascript中const

    一.开场白 这是一篇给对const、var、let不怎么了解的人进行讲解的文章。 二.const\let\var是...

  • How to upload your project to re

    嗯..... Let's start. 我将使用几幅图加上生动的文字演说来讲解这一神圣的过程!? First, 我...

  • 2017-12-26

    NSString *const本文主要讲解亮点:OC不像是Swift,定义常量可以用let,定义变量用var,在O...

  • 关于变量提升var const let的知识讲解

    预编译四部曲:① 创建AO对象 activeobject 也就是函数的执行器上下文② 创建变量和形参的声明,赋值u...

  • ES6知识点详解

    主要会贴上代码,这样容易理解些持续更新中...1.let const 2.解构赋值主要讲解了数组解构赋值和对象解构...

  • iOS开发 - NSPredicate试探(Swift5.1版)

    最近看了一遍文章,是NSPredicate谓词的讲解。可是文章归文章,还是亲手试验一下才能转化成自己的知识。Let...

网友评论

    本文标题:let 讲解

    本文链接:https://www.haomeiwen.com/subject/lrnfdktx.html