ES6 的let 、const

别再只会画方块了!Cesium 1.62 实战:用 Polygon、Ellipse 和 PolylineVolume 玩转复杂地理围栏与3D管道 本文深入探讨了Cesium 1.62在复杂地理围栏与3D管道开发中的高级应用,通过Polygon、Ellipse和PolylineVolume等API实现不规则禁飞区建模、椭圆围栏设计及地下管线可视化。文章结合实战代码,详细解析了性能优化技巧和工程实践,帮助开发者突破基础图形绘制局限,构建真实业务场景中的三维空间系统。 阅读详情

let :

   ES6中新增用于声明变量的关键字

  •     let 声明的变量只在所处于的块级有效(什么是块级作用域? 就是一对大括号中产生的作用域,一对大括号就代表一个块级作用域)
    <script>
        if(true){
            let a = 10;
            console.log(a); // 10
            if(true){
                let c = 20;
                console.log(c); // 20
            }
            console.log(c); // c is not defined
        }
        console.log(a) //a is not defined
    </script>

        使用 let 关键字声明的变量才具有块级作用域,使用 var 声明的变量不具备块级作用域特性;

        if(true){
            let x = 15;
            var r = 22;
        }
        console.log(r); // 22
        console.log(x); //x is not defined

        拥有块级作用域还可以防止循环变量 变成 全局变量 

       for(var i = 0; i < 2; i++){

       }
       console.log(i); // 2 

       for(let p = 0; p < 2; p++){

        }
        console.log(p);  // p is not defined
  • let 声明的变量,不存在变量提升
        console.log(m)  // underfined
        var m
        // 只能先声明 才能使用
        console.log(k); //Cannot access 'k' before initialization 初始化前无法访问“k
        let k = 1;

经典面试题:

        let arr = [];
        for(let i = 0; i < 2; i++){
            arr[i] = function(){
                console.log(i)  // 0   1
            }
        }
        arr[0]();
        arr[1]();

const:

        ES6中新增用于声明变量的关键字

    作用: 使用 const 关键字声明的变量称之为 “常量” ,所谓常量就是 值不能改变的量

  •  使用 const  关键字声明的变量具有 块级作用域  只能在声明区域里使用,在外面是使用不了的
        if(true){
            const a = 2;
            console.log(a);  // 2
        }
        console.log(a);  //a is not defined

  •  使用 const 关键字声明的常量必须赋 初始值 ,要不然会报错
        const x;  // 报错:Missing initializer in const declaration   常量声明中缺少初始值设定项
        const x = 5;
        console.log(x);
  •  使用 const  声明的常量的值 是不能进行修改的
        const m = 3;
        m = 6;  // 报错:TypeError: Assignment to constant variable.  类型错误:分配给常量值。

         但是如果声明的变量是复合类型的,则是可以修改其内部属性的,这时可以看作只是类型不可改变。

        const arr = [12 , 25];
        arr[0] = 48;
        console.log(arr);
        const arr = [12 , 25];
        arr[0] = 48;
        console.log(arr);
        arr = [33, 2]  // 报错: TypeError: Assignment to constant variable.
        console.log(arr);
        const abj = {
            name: '李梅',
            age: 18,
            height: 180
        }
        abj.name = '韩磊';
        console.log(abj);

var  let   const 之间的区别:

  1. 使用 var 声明的变量,其作用域为该语句所在的函数内,且存在变量提升现象;
  2. 使用 let 声明的变量,其作用域为该语句所在的代码块内,不存在变量提升;
  3. 使用 const 声明的是常量,在后面出现的代码中 不能在修改常量的值,但是复合数据类型 可以修改其内部属性;
论文理解【LLM-OR】——【OptiMUS】Scalable Optimization Modeling with (MI)LP Solvers and Large Language Models OptiMUS 把“自然语言→优化建模与求解”从单次生成改造成“结构化问题 + 多智能体协作 + 连接图检索”的模块化流程,并在更长更难的数据集上验证了这种结构化方法相对端到端 prompting 的优 阅读详情

相关推荐

【深大计算机网络】实验三 可靠传输机制 实验报告 附代码

【内附代码】【深大计算机网络】实验三 可靠传输机制 实验报告 附代码

m0_74268508的博客 1654

Cannot access ‘xxx‘ before initialization 以及var、let、const的区别

Cannot access ‘xxx‘ before initialization 报错原因以及var、let、const的区别简介

qq_42101569的博客 2万+

ANSYS命令流黑箱揭秘:流体渗透压力载荷的七种收敛优化策略

本文深入解析ANSYS Workbench中流体渗透压力载荷的七种收敛优化策略,重点探讨接触探测点迭代逻辑、PPCN阈值动态调整及FPAT参数优化等关键技术。通过命令流示例和实战技巧,帮助工程师有效解决流体与结构相互作用仿真中的收敛难题,提升计算效率和精度。

weixin_29274337的博客 523

【Python】解决Python报错:NameError: cannot access ‘xxx‘ before initialization

解决Python报错:NameError: cannot access 'xxx' before initialization

科技改变人类,技术成就未来 2366

深入Android构建系统:一次修改ro.vendor.build.fingerprint失败的排查与解决记录

本文深入探讨了Android构建系统中修改ro.vendor.build.fingerprint的完整解决方案。通过分析vendor分区的特殊地位和构建指纹的生成路径,提供了三种实战修改方法,并揭示了指纹修改可能遇到的陷阱与对策,帮助开发者彻底解决这一常见问题。

weixin_30621711的博客 144

【立创EDA-PCB设计基础】6.布线铺铜实战及细节详解

本文进行布线铺铜实战及详解布线铺铜的细节

嵌入式阿齐Archie 4万+

报错ReferenceError: Cannot access ‘xxxx‘ before initialization解决方案

报这个错的原因其实就是和你声明的变量有关我们都知道var存在变量提示,但是其实const和let在某种意义上也是存在变量提升的在块作用域内,let和const声明的变量被提升,但变量只是创建被提升,初始化并没有被提升,在初始化之前使用变量,就会形成一个暂时性死区。

胖儿の博客 2万+

基于STM32、HAL库的W25Q01JVZEIQ TR FLASH存储器驱动应用程序设计

1Gb (128MB),分为512个可擦除块(block),每个块256KB。:块擦除约30-50ms,芯片擦除约30s。:标准SPI (支持1/2/4线模式)// 初始化CS引脚为高电平。// 擦除扇区(4KB)// 初始化Flash。/* 状态寄存器位 *//* 指令定义 *//* 超时定义 *//* 函数声明 */

corlin6688的博客 267

Uncaught ReferenceError: Cannot access ‘obj‘ before initialization

<!DOCTYPE html> <html> <head> <title>document.write() Example</title> </head> <body> <script type="text/javascript"> let activeEffect function effect(fn) {

weixin_40945354的博客 4466

如何使用tinyalas接口从usb录音的同时从扬声器播放

3、 以上步骤确认完后,就可以修改tinyhostless.c程序,tinyhostless的本质就是边pcm_read(),边pcm_write();但原本tinyhostless只支持对同一声卡进行操作,所有需要修改其代码,改成录音和播放可支持不同声卡,如果是模拟声卡,有回环测试,可以实现边录边播放,但涉及USB声卡时,就没有现场的类似功能,有时候客户因为硬件特殊性,会有从USB录音的同时从扬声器播放出来的需求,本文简要描述如何使用tinyalsa接口实现该需求;

sdrgtywretyeruet的专栏 971

5.13华为OD机试真题 新系统 - 社交网络相同爱好好友查询 (Java/Py/C/C++/Js/Go)

5.13华为OD机试真题 新系统 - 社交网络相同爱好好友查询 (Java/Py/C/C++/Js/Go)

算法大师! 155

es6模块报错Uncaught ReferenceError: Cannot access '.' before initialization

情况描述 项目是使用typescript(js的超集)编写代码的 默认使用webpack编译采用es6模块处理方案 出现了以下错误 以下是我写的测试类 A.ts import { B } from "./B"; export class A { public static _instance: A; public static getInstance(): A { i...

from_the_star的博客 4万+

YOLOP v2!YOLOv7结合YOLOP的多任务版本 更好、更快、更强

YOLOP v2!YOLOv7结合YOLOP的多任务版本 更好、更快、更强

jacke121的专栏 2705

ES6基础:let和const

变量声明是我们在学习一门语言时,最先了解的部分之一。不要忽略它,我们一起来看看ES6中新增的两种变量声明命令吧~

余光的博客 5130

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

es6 let和const

ES6知识点let与const let与const let是更完美的var,不是全局变量,具有块级作用域,大多数情况不会发生变量提升。 const定义常量值,不能够重新赋值,如果一个值是一个对象,可以改变对象里边的属性值。 let和const都在声明所在的块级作用域内有效 let 定义的变量没有变量提升(没有预解释) let 定义的变量不能重复定义(不管是函数还是let/const定义的变量) ...

Hassan的小博客! 951

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

ES6的let、const命令

1、let命令:        ES6 新增了let命令,用来声明变量。它的用法类似于var,但是 let 所声明的变量,只在let命令所在的代码块内有效。        代码如下: { let a = 1; var b = 2; } consol...

huangfuyk.的博客 3732

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

es6 const,let详解

let:声明的是变量 1、不存在变量提升 // var 的情况 console.log(foo); // 输出undefined var foo = 2; // let 的情况 console.log(bar); // 报错ReferenceError let bar = 2; 上面代码中,变量foo用var声明,会发生变量提升,即脚本开始运行时,变量foo已经存在了,但是没有值,所以会输出und...

weixin_41766191的博客 316

ES6新特性详解:var、let、const的区别

varconst用于定义常量const声明的变量必须在声明时初始化(即必须赋值),且其值在之后的代码中不能被重新赋值。// 正确// 抛出 SyntaxError: Missing initializer in const declaration// 抛出 TypeError: Assignment to constant variable.const定义的对象属性值可以改变:尽管const保证变量的引用不变,但如果变量是一个对象,其属性值是可以改变的。age: 10。

weixin_66708577的博客 1440

ES6~ES14 之 let和const

let:适用于需要在不同作用域内重复赋值的场景。尤其在循环和异步操作中,它能够有效避免作用域污染和变量提升问题。const:适用于声明不会重新赋值的变量,尤其在定义常量、数组或对象引用时。它能有效保护数据不被意外修改。通过合理使用let和const,可以写出更易于维护、健壮且无副作用的 JavaScript 代码。

g18642885147的博客 647

ES6中var、let、const的区别

ES6新增了let和const来声明变量。var、let、const在一起搞得人头昏昏的…今天来细数这三个声明变量方法的“恩怨情仇” 标题 在ES6之前,我们都是用 var 关键字声明变量。无论声明在何处,都会被视为声明在函数的最顶部(不在函数内即在全局作用域的最顶部)。这就是函数变量提升 例如: function aa() { if(flag) { var test = 'hello man' } else { console.log(test)

keleinclude_的博客 162

ES6回顾之let、var、const区别

var命令声明的,在全局范围内都有效 var命令会发生“变量提升”现象,即变量可以在声明之前使用,值为undefined let声明的变量只在它所在的代码块有效 let命令它所声明的变量一定要在声明后使用,否则报错。在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死区” 只要块级作用域内存在let命令,它所声明的变量就“绑定”(binding)这个区...

沛沛呀、 436

ES6:let和const命令解读以及变量的解构赋值

有时候,我们需要的不是答案,而是一双倾听的耳朵。

chaosweet的博客 1327

es6的使用之let和const

ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。 { let a = 10; var b = 1; } a // ReferenceError: a is not defined. b // 1 上面代码在代码块之中,分别用let和var声明了两个变量。然后在代码块之外调用这两个变量,结果let声明的变量报错,var...

mlonly的博客 5649

ES6 中的 let 和 const

目录01.let 和 const 都是块级作用域。02.let 和 const声明不存在变量提升,只能先声明再使用,否则会报错。03.ES6中不允许重复声明,ES5允许04.const 声明的是一个只读常量,再声明时就需要赋值。05.let 与const 声明赋值问题06. const有关知识07.注意点:08.案例在 ES6 中通常用let 和 const 来声明,let 表示变量、const 表示常量,ES5用var声明 特点:以{ }代码块作为作用域范围 ,只能在代码块里面使用,而var声明的变量全局

weixin_47075145的博客 1178

【ES6】 let与const详解

【ES6】 let与const详解 ES6,全称为ECMAScript6。ES6与js的关系是:前者是后者的规格,后者是前者的实现。换句话说,ES是js的国际化版本,js是ES的子集。 1. let let命令和var命令是差不多的,都是定义变量。 let var 示例 let a=1; var a=1; 但是,let命令有4点注意点与var相区别: 【1】let的作用域...

十一月廿七风雨大作 7111

ES6中的let和const详解

大家有可能想let和const有什么可以特意去了解的呢?它们不就是ES6新出的二种变量命名方式,确实如果,但是里面的坑你们还是需要了解的,很多人认为let是可以代替var的,嘿嘿,如果你们这样理解就大错特错了 let let用来声明变量,并且会在当前作用域形成代码块 所谓代码块其实就是 { let a=1 } {}就是一个代码块. 使用let声明的变量,只能在当前代码块中访问,类似函数作...

白天不懂夜的黑 2895
上一篇: git 指令
下一篇: 你真的 真的会 《ES6 解构赋值》吗???
昨夜太平长安888
博客等级 码龄9年 1万+粉丝 176原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值