广告
返回顶部
首页 > 资讯 > 前端开发 > html >ES6中let怎么用
  • 718
分享到

ES6中let怎么用

2024-04-02 19:04:59 718人浏览 泡泡鱼
摘要

这篇文章给大家分享的是有关es6中let怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。ECMAScript是什么?很多人都很困惑,哪怕是工作3至5年前端工程师也困惑,ECM

这篇文章给大家分享的是有关es6中let怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

ECMAScript是什么?

很多人都很困惑,哪怕是工作3至5年前端工程师也困惑,ECMAScript是什么?它跟javascript有什么关系?

题目:JavaScript由3部分组成,分别是:ECMAScript,BOM和(?)。

从题目中我们就可以看出来了,ECMAScript是JavaScript的组成部分。

ECMAScript就是JavaScript中的语法规范!ECMAScript是属于国际标准化的语言,所有浏览器开发商都要按照它制定的标准来开发浏览器。开发者也一样,按照它的规定来编程代码。

ECMAScript的作用

  • 语法 – 解析规则,关键字,语句,声明,操作等

  • 类型 – 布尔型,数字,字符串,对象等

  • 原型和继承

  • 内置对象和函数的标准库 – JSON,数字(Math),数组方法,对象内省的方法等等。

了解了ECMAScript之后,那什么是ES6呢?

ES6是ECMAScript 6的缩写简称,这个好理解。顾名思义,它是ECMAScript的第6个版本,也就是说它有更早的版本,以后还会有更多版本。

ECMAScript 的历史

  • 1996 年 11 月,Netscape 公司,决定将 JavaScript 提交给国际标准化组织 ECMA。次年,ECMA发布 ECMAScript。这个版本就是 ECMAScript 1.0 版。

  • 1998 年 6 月,ECMAScript 2.0 版发布。

  • 1999 年 12 月,ECMAScript3.0 版发布,成为 JavaScript 的通行标准,得到了广泛支持。

  • 2007 年10 月,ECMAScript4.0 版草案发布,对 3.0 版做了大幅升级,但是,以 Yahoo、Microsoft、Google为首的大公司,反对 JavaScript 的大幅升级,主张小幅改动,各方分歧太大,争论过于激进,ECMA 开会决定,中止 ECMAScript 4.0 的开发

  • 2009 年 12 月,ECMAScript5.0 版正式发布。

  • 2015 年 6 月,ECMAScript 6 正式通过,成为国际标准。

ES6 为什么受欢迎

  • 确实是这样的,对于很多开发者来说,ES6带来的新功能涵盖面很广,还有很多很便利的功能等(如:箭头的功能和简单的字符串插值,不懂没关系,后续陆续介绍),确实令人兴奋。

  • 综合上述ECMAScritpt的介绍,我们认识到了,要学好JavaScript,就必须先学好ECMAScritpt,而且是最新的版本ECMAScritpt 6。

let 的用途

  • ES6 给开发者带来很多令人激动的特性,其中let关键字就是其中之一。

  • 我们平时在写代码的时候,用var来声明一个变量,除此之外,好像也没用其他的关键字了,不管我们声明的是字符串类型、数组类型还是数字类型等,都用一个var 搞点(因为JavaScript拥有动态类型),很方便。但现在,ES6告诉你,除了var,不妨试试用let来声明变量试试看。

  • 咦,这么说,let关键字是用了声明变量的咯?是的,let的用途就是用来声明变量的。

  • 好端端的用var声明就可以了,为什么要用新的let关键字来声明啊?难道用var有什么不足的地方吗?是的,还真有。

var 的不足之处一

  • 如下代码

var arr = [ ];
for(var i=0;  i<10;  i++){
    arr [i] = function(){
         alert(i)
    }
}
arr [8](); //结果:10
  • 用let替换var后,我们再看看:

var arr = [ ];
for(let i=0;  i<10;  i++){
  arr[i] = function(){
    alert(i)
  }
}
arr[8](); //结果:8
  • 因为let声明的变量仅仅在自己的块级作用域起作用,出了这个块级作用域就不起作用。就好比,小明在国内考的“高级程序员”证,去到国外应聘,别人就不承认你的文凭了,小明只能乖乖待在国内持证上岗。而let声明的变量也一样,出不了自己的块级作用域。

那么,什么是块级作用域,怎么才算一个块级作用域?

任何一对花括号(这玩意:{ })中的语句都属于一个块,在花括号里面用let定义的所有变量在花括号外都是不可见的,我们称之为块级作用域。
  • 代码中,for循环含有有{ },也就是含有了块级作用域,每个变量 i 都只是在自己的作用域起作用,例如:第10次循环中的 i 的值不会影响到到第9次循环。

  • 如果用var声明的变量,就不是这种情况了,i 的值会影响到各个块里面的 i,等循环完后 i 等于10,所有块的i都变成了10了。这就是为什么第一段代码运行后会弹出数字10了,这并不是我们想要的。

  • 就好比小明陆陆续续去了10个国家玩,每到一个国家都给自己弄了一个不同的身份,但是小明被告知以后只能用在第10个国家取得的那个身份,那么之前9个国家认识小明的朋友都会不认识他的,小明当场就懵逼了。

var 的不足之处二

  • 用var 声明变量的时候会出现“变量提升“的现象

var a = 1;
function show(){
  alert(a);
  var a = 2;
}
show();//结果:undefined
  • 原因就在于我们在代码块(函数内)里面还声明并定义了一个变量a,导致变量提升了,实际的代码执行顺序是这样的,仔细看完你就知道什么叫变量提升了。

var a = 1;
function show(){
  var a;
  alert(a);
  var a = 2;
}
show();//结果:undefined
  • 如果你用let这样重写刚刚那段代码的话

var a = 1;
function show(){
  alert(a);
  let a = 2;
}
show();// 结果:报错a is not defined

用let关键字来定义a;这样a在代码块内就不会提升了。

那为什么又报错了呢,因为用let声明的变量,在其块级作用域内是封闭的,是不会受到外面的全局变量a影响的,并且要先声明再使用,所以a的值即不是1(因为不受外面的影响),也不是undefined(因为先声明后使用),更不是2,未声明定义就使用,报错。

  • 用let关键字也算是提醒我们,平时记得先声明定义再使用的好习惯。

let使用注意点

注意1:同一个块级作用域内,不允许重复声明同一个变量。

{
  var a =1;
  let a =2;  //报错,因为a已经用var声明过
}

{
  let a =1;
  let a= 2; //还是报错,a已经用let声明过。
}

注意2:函数内不能用let重新声明函数的参数

function say(Word){
  let word = 'hello Jack';  //报错:用let重新声明word参数
  alert(word)
}
say('hello Lili');

感谢各位的阅读!关于“ES6中let怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: ES6中let怎么用

本文链接: https://www.lsjlt.com/news/83487.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • ES6中let怎么用
    这篇文章给大家分享的是有关ES6中let怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。ECMAScript是什么?很多人都很困惑,哪怕是工作3至5年前端工程师也困惑,ECM...
    99+
    2022-10-19
  • es6中let如何使用
    本篇内容介绍了“es6中let如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在es6中,let关键字用于声明变量;但是所声明的变量,...
    99+
    2023-07-04
  • ES6的let和const命令怎么用
    今天小编给大家分享一下ES6的let和const命令怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1. let 命令①...
    99+
    2023-06-17
  • es6中let指的是什么
    这篇文章主要介绍“es6中let指的是什么”,在日常操作中,相信很多人在es6中let指的是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”es6中let指的是什么”的疑惑...
    99+
    2022-10-19
  • es6中怎么用关键字let声明变量
    小编给大家分享一下es6中怎么用关键字let声明变量,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!用关键字let声明变量let&...
    99+
    2022-10-19
  • ES6中let和const命令有什么用
    这篇文章将为大家详细讲解有关ES6中let和const命令有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言在javascript中,我们都知道使用var来声明变...
    99+
    2022-10-19
  • ES6新增关键字let和const怎么用
    这篇文章主要介绍了ES6新增关键字let和const怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。ES6新增加了两个重要的JavaScript关键字:let和const...
    99+
    2023-06-29
  • ES6中let、const的区别是什么
    这篇文章将为大家详细讲解有关ES6中let、const的区别是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。let和const相同点都存在块级作用域都不存在变量声明提...
    99+
    2022-10-19
  • es6引用let的原因是什么
    这篇文章主要讲解了“es6引用let的原因是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“es6引用let的原因是什么”吧! ...
    99+
    2022-10-19
  • ES6中如何使用let声明变量以及let loop机制
    这篇文章主要为大家展示了“ES6中如何使用let声明变量以及let loop机制”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ES6中如何使用let声明变量以及...
    99+
    2022-10-19
  • ES6 let和const中怎么定义变量与常量
    ES6 let和const中怎么定义变量与常量,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。关于 letlet是小作用域的变量的声明{ &...
    99+
    2022-10-19
  • ES6中let和const的特性是什么
    这篇文章主要介绍了ES6中let和const的特性是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。let的特性:1.不存在变量提升现象:...
    99+
    2022-10-19
  • es6中let和const的区别是什么
    这篇“es6中let和const的区别是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“...
    99+
    2022-10-19
  • es6中不用var而是用let的原因是什么
    本文小编为大家详细介绍“es6中不用var而是用let的原因是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“es6中不用var而是用let的原因是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深...
    99+
    2022-10-19
  • es6中let声明可不可以重名
    这篇文章主要介绍“es6中let声明可不可以重名”,在日常操作中,相信很多人在es6中let声明可不可以重名问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”es6中let声明可...
    99+
    2022-10-19
  • es6中let和const的区别有哪些
    这篇文章主要介绍“es6中let和const的区别有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“es6中let和const的区别有哪些”文章能帮助大家解决问题...
    99+
    2022-10-19
  • es6中let和var的区别有哪些
    本篇内容介绍了“es6中let和var的区别有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-19
  • es6中let与var的区别有哪些
    这篇文章主要介绍“es6中let与var的区别有哪些”,在日常操作中,相信很多人在es6中let与var的区别有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”es6中le...
    99+
    2022-10-19
  • JavaScript ES6语法中let,const ,var 的区别
    一、变量声明的方式let / const let / const 共同点1.都是块级作用域2.在同一个作用域下,变量名不允许重复3.他们声明的全局变量并没有挂在 window对象上4...
    99+
    2022-11-12
  • JavaScript ES6语法中let,const ,var的区别是什么
    JavaScript ES6语法中let,const ,var的区别是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、变量声明的方式let / con...
    99+
    2023-06-26
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作