【JS001】ES6的学习笔记之变量声明

日期:2021年8月8日
作者:Commas
注释:如果您觉得有所帮助,帮忙点个赞;如果有不对的地方,还望各位大佬不吝赐教,谢谢^ - ^
(ง •_•)ง 积跬步以致千里,ES6的学习笔记
1.01365 = 37.7834;0.99365 = 0.0255
1.02365 = 1377.4083;0.98365 = 0.0006



一、变量声明与赋值

这里就不用var演示,直接用let,其实声明与赋值的过程都一样;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //(1)单个变量声明:
        let a;
        //(2)多个变量声明:
        let b,c,d,e;
        //(3)单个变量声明并赋初始值:
        let f = "god";
        //(4)多个变量声明并赋初始值:
        let g = 99,h = "very good";
    </script>
</body>
</html>

知识加油站:现代浏览器<script></script>中默认脚本语言为javascript,所以不需要写成<script type="text/javascript"></script>

二、let与var的比较

内容letvar
是否可以重复声明不可以可以
是否存在块级作用域存在不存在
是否存在变量提升不存在存在
是否影响作用域链不影响不影响
全局变量是否为顶层对象属性不是

1)变量重复声明

1-1)var可以重复声明

//(1)首次声明
var a;
//(2)再次声明
var a = 1;
//正常运行,不会报错

1-2)let不可以重复声明

//(1)首次声明
let a;
//(2)再次声明
let a = 1;
//报错,如下所示:
//Uncaught SyntaxError: Identifier 'a' has already been declared

2)块级作用域

2-1)var不存在块级作用域

if(true){
    var name = "Commas";
    console.log("name=" + name);
    //控制台输出:name=Commas
}
console.log("name=" + name);
//控制台输出:name=Commas

2-2)let存在块级作用域

ifelsewhilefor

if(true){
    let name = "Commas";
    console.log("name=" + name);
    //控制台输出:name=Commas
}
console.log("name=" + name);
//控制台输出:name=

3)变量提升

3-1)var存在变量提升

console.log("name=" + name);
var name = "Commas";
//正常运行,不会报错
//控制台输出:name=Commas

3-2)let不存在变量提升

console.log("name=" + name);
let name = "Commas";
报错,如下所示:
//ncaught ReferenceError: Cannot access 'name' before initialization at js001.html:20

4)作用域链

//var name = "Commas"; 
let name = "Commas";
function hello(){
	console.log("Hello " + name);
}
hello();
//无论var,还是let,
//控制台均输出:Hello Commas

解析:hello()函数中找不到变量name,就会向上查找该变量,找到了name = "Commas",接着输出,通常我们可以归纳为【就近原则】。

5)顶层对象属性

var name = "Commas";
// 如果在 Node 的 REPL 环境,可以写成 global.name
// 或者采用通用方法,写成 this.name

console.log(window.name);
//控制台输出:Commas

let name = "Commas";
console.log(window.name);
//控制台输出:undefined

版权声明:本文为博主原创文章,如需转载,请给出:
原文链接:https://blog.csdn.net/qq_35844043/article/details/118150852

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Commas.KM

码路共同进步,感恩一路有您

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值