首页 > 其他分享 >ES6前端技术之第二讲 let和const命令

ES6前端技术之第二讲 let和const命令

时间:2023-09-05 23:01:20浏览次数:34  
标签:ES6 const log let var console PI

第二讲 let和const命令

前人栽树后人乘凉,前人挖坑后人遭殃!!!

JS是弱类型语言,当初设计者为了使用的便捷,开发人员开心,留下了不少坑。请看JS系列坑之技术细节:

var关键字挖的坑

1.可以重复声明变量

        var a=88;
        var a="张老师";
        console.log(a);

填坑:

ES,let关键字

        let a=88;
        let a="张老师";
        console.log(a);

image-20201123234511508

let用来修饰变量,const用来修饰常量

2.没有常量

//PI:不可变的量
        var PI=3.14;
        PI=5.78999;
        console.log(PI);
//使用的另外const
         const PI=3.14;
        //PI=5.78999;
        console.log(PI);

3.变量提升问题

 //3.坑3变量提升问题
        console.log(c);

image-20201126002226387

继续

        console.log(c);
        var c=10;

image-20201126002305796

但是在js编译可以

原理:

var c;
console.log(c);
c=10;

使用let

       console.log(c);
        let c=10;

效果:

image-20201126002459142


关于函数的代码

console.log(d);
d();

image-20201126002618217

继续:

console.log(d);
d(); //函数
//上面都是报错;
var d=function () {
    console.log(222);
}

image-20201126002747658

也是一种变量提升

var d;
console.log(d);
d();

使用let关键字

console.log(d);
d(); //函数
//上面都是报错;
let d=function () {
    console.log(222);
}

image-20201126002907431

总结:js编译器会在编译js之前,首先对这些代码找到声明,并用合适的作用域将他们关联起来。

4.const常量

4.1 常量名要大写(潜规则)

const PI=3.14; //const a=3.14;不太好

4.2 常量要赋值,使用之前赋初始值

 //2.赋值
        const PI=3.14;  //???
        console.log(PI);

4.3 常量具有块级作用域

 if(true){
            const MN=4.00;
            console.log(MN);
        } //MN到},块级生命周期已经结束了.
        console.log("..."+MN);

4.4 常量声明之后,不能更改

		// const HEI=8848;
        //HEI=8899; //HEI:readonly,只读,不能更改
        const stus=["张晨","李晨","王晨"];
        stus.push("尤晨光");
        console.log(stus);
        //常量是stus,代表是一个数组,数组指向一个地址,这个地址是一个常量,地址是不可以更改的,里面的内容可以更改。
        // stus=["aaa","bbb"]; 更改地址,不可以。

5.let经典案例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>let案例</title>
    <script>
        //单击复选框的时候,测试里面i值--》复选框的值;
        window.onload=function () {
            var chboxs=document.getElementsByTagName("input");
            for(let i=0;i<chboxs.length;i++){
                //重点观察;
                //2.使用了js的闭包机制,
                //闭包:内部函数可以访问其所在外部函数种的变量和参数;
                // (function (i) {
                //     chboxs[i].onclick=function () {
                //         alert(i);//猜测i值;
                //     }
                // })(i);
                //3.使用let关键字
                chboxs[i].onclick=function () {
                    alert(i);//猜测i值;
                    alert("-->"+ chboxs[i].value);
                }
            }
        }
    </script>
</head>
<body>
<!--    html内容-->
    AAAIT学院课程:
<input type="checkbox" value="JAVA">JAVA
<input type="checkbox" value="前端">前端
<input type="checkbox" value="AI">AI
<input type="checkbox" value="PYTHON">PYTHON
</body>
</html>

标签:ES6,const,log,let,var,console,PI
From: https://blog.51cto.com/teayear/7380661

相关文章

  • ES6的新特性有哪些
    1、let和const声明变量的方式,取代了var关键字。2、箭头函数(ArrowFunction),简化了函数的书写方式。3、模板字符串(TemplateString),允许在字符串中使用变量和表达式,而不需要使用字符串连接符号4、解构赋值(DestructuringAssignment),允许从数组和对象中提取值并赋值给变量。......
  • 解决代码使用CompletableFuture做异步时spring-cloud-starter-sleuth的日志追踪号为空
    产生问题原因就是异步调用,导致spanId和traceId丢失了@Async注解的异步调用是没问题的前提使用spring-cloud-starter-sleuthjar包版本2.2.8.RELEASE关于追踪号的xml配置为<pattern>%yellow(%date{yyyy-MM-ddHH:mm:ss.SSS})[%X{X-B3-TraceId:-},%X{X-B3-SpanId:-},%X{X-B......
  • dotnet 记 TaskCompletionSource 的 SetException 可能将异常记录到 UnobservedTaskEx
    本文将记录dotnet的一个已知问题,且是设计如此的问题。假定有一个TaskCompletionSource对象,此对象的Task没有被任何地方引用等待。在TaskCompletionSource被调用SetException或TrySetException方法时,将会记录一个存在异常且未捕获的Task对象。此Task对象将会在被G......
  • es6 扩展运算符 三个点(...)
         参考:https://blog.csdn.net/qq_30100043/article/details/53391308   参考:https://blog.csdn.net/snackpdd/article/details/119388250......
  • ES6前端技术课
    ES6前端技术第一章:ES6入门简介回顾:JavaScript本章内容:JavaScript和ECMAScript的关系ES的版本历史浏览器兼容性开发工具为什么要学习ES61.ES6是ES版本系列里面变化内容最多,具有里程碑意义2.ES6加入很多新的语法特性,使编程更加简单、高效3.ES6是目前前端公司比较流行......
  • 用 XDoclet 减少代码膨胀[摘]
    文章来源:http://www-900.ibm.com/developerWorks/cn/java/j-xdoclet/index.shtml发现多功能的模板驱动的代码生成器SingLi作者,WroxPress2004年11月开放源代码的XDoclet代码生成引擎,是许多领先的Java框架不可缺少......
  • javascript - 将 es5 迁移到 es6 export default
    我正在尝试将代码从es5迁移到es6,我在这两个方面都很新,如果有人能帮助我,我将非常感激。es5版本:lib.jsmodule.exports={foo1:function(){this.foo2(){...}},foo2:function(){...}}主要.jsco......
  • 致远OA wpsAssistServlet 任意文件上传漏洞
    漏洞描述致远OAwpsAssistServlet接口存在任意文件上传漏洞,攻击者通过漏洞可以发送特定的请求包上传恶意文件,获取服务器权限影响版本致远OAA6、A8、A8N(V8.0SP2,V8.1,V8.1SP1)致远OAG6、G6N(V8.1、V8.1SP1)漏洞复现fofa语法:app="致远互联-OA"&&title="V8.0SP2"登录页面......
  • servlet,jsp,jstl用到的依赖与brand.jsp简单案例
    2023-09-03<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd">&......
  • C/C++ const关键字 解读
    Thecollocationbetweenconstandoriginalpointerisconfusedtomanypeople.Therearetwousagesofit.Thefirstoneisavariablepointerthatpointsaconstantdata.i.e.constint*p#include<iostream>intmain(){ inta=1,b=2; const......