0


【ES6】let、const关键字和解构赋值

🐚作者简介:苏凉(专注于网络爬虫,数据分析,正在学习前端的路上)
🐳博客主页:苏凉.py的博客
🌐系列专栏:ES6基础语法
👑名言警句:海阔凭鱼跃,天高任鸟飞。
📰要是觉得博主文章写的不错的话,还望大家三连支持一下呀!!!
👉关注✨点赞👍收藏📂

文章目录

es介绍

ES全称EcmaScript,是脚本语言的规范,而平时经常编写的JavaScript,是EcmaScript的一种实现,所以ES新特性其实指的就是JavaScript的新特性

为什么要学习新特性?

  1. 语法简洁,功能丰富
  2. 框架开发应用
  3. 前端开发职位要求

为什么要学习es6

  1. ES6 的版本变动内容最多,具有里程碑意义
  2. ES6加入许多新的语法特性,编程实现更简单、高效
  3. S6是前端发展趋势,就业必备技能

let关键字

let关键字与var关键字一样是用于声明变量的,只不过与var有以下不同之处:

变量不能重复声明

在es6中let关键字不允许重复声明变量,如下图所示就会报错:

Uncaught SyntaxError SyntaxError: Identifier 'name' has already been declared
let name ='suliang';let name ='xiaoming';

块级作用域

使用let在代码块中声明变量时,只在代码块中生效。

{var name ='su'let age =21;}
console.log(name);//su
console.log(age);//ReferenceError: age is not defined

不存在变量提升

使用var关键字定义一个变量时,可以在定义变量之前输出该变量,数据类型为未定义,但使用let关键字定义变量时,不允许在声明变量前调用该变量。

console.log(age);//ReferenceError: Cannot access 'age' before initializationlet age =21;

不影响作用域链

functionfun1(){let num =10;functionfun2(){let num1 = num +15;
         console.log(num1);}returnfun2();}fun1();//25

let关键字小案例

<htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>Document</title><script>//let 案例
        window.onload=function(){let items = document.getElementsByClassName('item');for(let i =0;i<items.length;i++){
                items[i].onclick=function(){
                    items[i].style.backgroundColor ='yellow'}}}</script><style>div{width: 150px;height: 80px;border: 2px solid lightblue;display: inline-block;}</style></head><body><divclass="item"></div><divclass="item"></div><divclass="item"></div></body></html>

当使用for循环遍历元素时,使用var关键字声明变量i,则会报错:

TypeError: Cannot read properties of undefined

,因为此时var 声明的i并没有块级作用域,最后i的值为3,而item[3]不存在,因此就会报错。而用let可以解决这个问题。

window.onload=function(){let items = document.getElementsByClassName('item');for(var i =0;i<items.length;i++){
         items[i].onclick=function(){
             items[i].style.backgroundColor ='yellow'}}}

在这里插入图片描述

const关键字(声明常量)

在es6中怎加了对常量的声明方式,那就是用

const

关键字,其中使用

const

关键字,有以下特性。

声明时必须赋予初始值

在声明常量时必须赋予初始值,否则报错:

SyntaxError: Missing initializer in const declaration

声明常量时尽量使用大写字母

constNAME='suliang';

常量的值不能被修改

常量的值一旦定义就不能被修改,否则报错:

TypeError: Assignment to constant variable.
constNAME='suliang';NAME='xiaoming';

块级作用域

和let一样,const一样有块级作用域

{constAGE=15;}
console.log(AGE)//ReferenceError: AGE is not defined

对于数组/对象的元素来说,不算对常量的修改

constLIST=['gala','xiaohu','wei','ming'];LIST.push('breath');
console.log(LIST);//(5) ['gala', 'xiaohu', 'wei', 'ming', 'breath']

解构赋值

在es6中可以将一个常量中的各个值赋给多个变量。

数组的解构赋值

constRNG=['xiaohu','ming','gala'];let[a,b,c]=RNG;
   console.log(a);//xiaohu
   console.log(b);//ming
   console.log(c);//gala

对象的解构赋值

最常用的通常为对象的解构赋值,这样调用对象的方法时更简便。

//对象的解构赋值const su ={
    name:'suliang',
    age :21,
    sayName:function(){
        console.log(name)}}let{name,age,sayName}= su;
console.log(name);//suliang
console.log(age);//21
console.log(sayName);//ƒ (){console.log(name) }//调用对象方法
su.sayName();//不适用解构赋值sayName();//使用解构赋值
标签: javascript es6 前端

本文转载自: https://blog.csdn.net/weixin_46277553/article/details/125746591
版权归原作者 苏凉.py 所有, 如有侵权,请联系我们删除。

“【ES6】let、const关键字和解构赋值”的评论:

还没有评论