【ES】笔记-let 声明及其特性

这篇具有很好参考价值的文章主要介绍了【ES】笔记-let 声明及其特性。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

let 声明及其特性

  1. 声明变量
    • 变量赋值、也可以批量赋值
        let a;
        let b,c,d;
        let e=100;
        let f=521,g='iloveyou',h=[];
  1. 变量不能重复声明
         let star='罗志祥';
         let star='小猪';

【ES】笔记-let 声明及其特性,# ECMAScript,笔记,es,let

  1. 块级作用域,let声明的变量只在块级作用域内有效
        {
            let girl='周杨青';
        }
        console.log(girl)

注意:在 if else while for 中使用let都是块级作用域
【ES】笔记-let 声明及其特性,# ECMAScript,笔记,es,let

  1. 不存在变量提升

使用var(存在变量提升)

	console.log(girl);
    var  girl = "小刘同学"
 	// 打印结果:undefined

使用let(不存在变量提升)

 	console.log(girl);
    let  girl = "小刘同学"
    // 报错:ncaught ReferenceError: Cannot access 'girl' 

注:变量提升就是在变量创建之前使用(比如输出:输出的是默认值),let不存在,var存在

  1. 不影响作用域链
        {
            let school='德仔同学';
            function fn(){
                console.log(school);
            }
            fn();
            // 打印结果:小刘同学
        }

注:作用域链是代码块内有代码块,跟常规编程语言一样,上级代码块中的局部变量下级可用

  1. let使用案例:
    html代码
   <style>
        .item {
            width: 100px;
            height: 50px;
            border: solid 1px rgb(42, 156, 156);
            float: left;
            margin-right: 10px;
        }
    </style>
    
	<body>
	    <div class="container">
	        <h2 class="page-header">let案例:点击div更改颜色</h2>
	        <div class="item"></div>
	        <div class="item"></div>
	        <div class="item"></div>
	    </div>
	</body>

JavaScript代码

// 获取class名为item的元素
let items = document.querySelectorAll(".item")

// 遍历绑定元素
for(let i=0;i<items.length;i++){
    items[i].onclick = function(){
        // 修改当前元素的背景颜色
        // 写法一
        // this.style.background = 'pink'
        // 写法二:
        items[i].style.background = "pink"
    }
}

写法二注意事件
在for循环是使用的 i 必须要使用let声明
如果使用var就会报错(原因:var是全局变量)
经过循环之后i的值会变成3,items[i]就会下表越界
let是局部变量
我们要知道点击的时候 i 是那个值

   //使用var相当于是:
    { var i = 0; }
    { var i = 1; }
    { var i = 2; }
    { var i = 3; }
    // 下面的声明会将上面的覆盖掉,所以点击事件每次找到的都是3

    // 而使用let使用var相当于是:
    { let i = 0; }
    { let i = 1; }
    { let i = 2; }
    { let i = 3; }
    
    // 由于let声明的是局部变量,每一个保持着原来的值
    // 点击事件调用的时候拿到的是对应的 i

总结:let声明的变量更加规范合理,尽量使用let来声明和使用变量文章来源地址https://www.toymoban.com/news/detail-634993.html

到了这里,关于【ES】笔记-let 声明及其特性的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ES6 新特性(详细复习笔记)--下

    应用实例-声明对象简写 1. 需求: 演示声明对象简写 代码演示 2-需求: 演示对象方法简写 3-应用实例-对象拓展运算符 需求: 演示对象拓展运算符使用 拷贝对象(深拷贝)的用法和理解 对象拓展运算符是比较新的特性,低版本的浏览器不支持 火狐/谷歌浏览器没有问题 基本介绍

    2024年02月15日
    浏览(36)
  • 前端框架学习-ES6新特性(尚硅谷web笔记)

    ECMASript 是由 Ecma 国际通过 ECMA-262 标准化的脚本程序设计语言。javaScript也是该规范的一种实现。 笔记出处:b站 尚硅谷Web前端ES6教程,涵盖ES6-ES11 阮一峰大佬的:ECMAScript 6 入门 ES6 let 使用let声明变量的特点: 不允许重复声 块儿级别作用域 不存在变量提升 不影

    2024年02月12日
    浏览(27)
  • 【React系列】ES6学习笔记(一)let与const、解构赋值、函数参数默认值\rest参数\箭头函数、数组和对象的扩展、Set和Map等

    本文参考自电子书《ECMAScript 6 入门》:https://es6.ruanyifeng.com/ 尽量使用 let 声明变量,而不是 var 。 let 声明的变量是 块级作用域 , var 声明的变量是 全局作用域 。 使用 let 变量 必须先声明再使用,否则报错,不存在变量提升 。相对的 var 声明的变量如果提前使用,不会报错

    2024年02月03日
    浏览(37)
  • ES6(ECMAScript 2015)有哪些新属性,如何判断当前浏览器是否支持?

    ES6(ECMAScript 2015)引入了许多新的语法和特性,以增强 JavaScript 编程语言的功能。以下是一些常见的 ES6 语法和特性以及它们的解释: let 和 const 声明 : let 和 const 用于声明变量,代替了旧的 var 。 let 声明的变量具有块级作用域,而 const 声明的变量是不可变的(常量

    2024年02月07日
    浏览(47)
  • ES6知识点汇总(1)--var/let/const

    1、var 在ES5中,顶层对象的属性和全局变量是等价的,用var声明的变量既是全局变量,也是顶层变量 注意:顶层对象,在浏览器环境指的是window对象,在 Node 指的是global对象 使用var声明的变量存在变量提升的情况 在编译阶段,编译器会将其变成以下执行 使用var,我们能够对

    2024年02月12日
    浏览(37)
  • ES6系列之let、const、箭头函数使用的坑

    变量提升 块级作用域的重要性 箭头函数this的指向 rest参数和arguments Babel是一个广泛使用的ES6转码器,可以将ES6代码转为ES5代码,从而在老版本的浏览器执行。这意味着,你可以用ES6的方式编写程序,又不用担心现有环境是否支持。  上面的原始代码用了箭头函数,Babel将其转

    2024年02月14日
    浏览(32)
  • ES6中let和const关键字与var关键字之间的区别?

    前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发者,这里都将为你提供一个系统而又亲切的学习平台。在这个

    2024年02月09日
    浏览(40)
  • ES6如何声明一个类?类如何继承?

    引言 在ES6(ECMAScript 2015)中,引入了类(class)的概念,使得JavaScript的面向对象编程更加直观和易于理解。类提供了一种结构化的方式来定义对象的属性和方法,并且支持继承。在本文中,我们将深入探讨如何在ES6中声明一个类以及如何实现类的继承。 1. 声明一个类 在ES6中

    2024年02月08日
    浏览(24)
  • ES新特性系列(一)—— ES的简介与ES6

          前几天在BOSS上了解现在的前端工作的情况和各个公司要求的技术栈情况,看到一条非常有意思的要求:“能够理解并使用ES6、ES7、ES8、ES9、ES10新特性,都2024年了你总不能只知道ES6吧?”       各位彦祖现在现在就回忆一下,自己是否能把上述的ES系列的常用新特性都

    2024年04月29日
    浏览(21)
  • ES6、ES7、ES8、ES9、ES10、ES11、ES12都增加了哪些新特性?

    前端开发的都知道,JavaScript经历了不同标本的迭代,从1到12的不断完善中会添加不同的新特性来解决前一个阶段的瑕疵,让我们开发更加便捷与写法更加简洁! 我记得我第一次接触js的时候是从大学的《21天精通JavaScript》,名字很好听,但是现在还在学,还没有精通!哈哈哈

    2024年02月16日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包