一、ES6-let声明变量【解刨分析最详细】

一、块级作用域

javascript 复制代码
{
let Tim="Tim是靓仔!"
}
console.log("Tim:",Tim)

打印结果: Tim未进行任何定义!
**原因:**因为Tim定义再块级{}里面,它的声音Tim只服务于该块级里面。而打印结果是再块级外面,无法打印出Tim变量。

二、无法重复声明

javascript 复制代码
let Tim="Tim肯定是一个靓仔!"

let Tim="Tim一条粉肠仔!"

**打印结果:**报错无法重复声明Tim!

**原因:**因为第一条声明已经说明"Tim肯定是一个靓仔!"就不能重复声明Tim是一套粉肠仔了。

三、变量没有提升

javascript 复制代码
let Tim="我在外面"

funtion(){

console.log("Tim:"Tim)
let Tim="我在块级里面"

}

这种情况是会报错未声明Tim变量,虽然块级里外都声明了Tim变量,但是变量处于块级里面,相当于在块级里面从新开始,无法于外面变量又关联。
正确如下:

javascript 复制代码
let Tim="我在外面"

funtion(){

console.log("Tim:"Tim)
let Tim="我在块级里面"

}

**打印结果:**Tim:我在块级里面

四、不与顶层对象挂钩

javascript 复制代码
let Tim = "我是Tim"

console.log(window.Tim)

**打印结果:**undefined

五:额外例子

为什么ES6会出现let呢?

举例1:

javascript 复制代码
funtion(){


var Tim="我在块级里面"

}
console.log("Tim:"Tim)

var不区分块级内部,很容易导致数据污染,没有层次分明。

举例2:

javascript 复制代码
var Tim;

console.log("var:", Tim); // 输出: var: undefined

Tim = "我是Tim";

console.log("var:", Tim); // 输出: var: 我是Tim

举例3:

javascript 复制代码
var Tim = "我在块级外面";

function testFunction() {
    var Tim = "我在块级里面";
}

testFunction(); // 这将执行函数,但不会返回或打印任何内容

console.log("Tim:", Tim); // 这将打印全局作用域中的Tim变量的值

打印结果:Tim: 我在块级外面

相关推荐
xiaogg36783 分钟前
vue+elementui 网站首页顶部菜单上下布局
javascript·vue.js·elementui
weixin_5275504012 分钟前
初级程序员入门指南
javascript·python·算法
小小小小宇22 分钟前
前端小tips
前端
小小小小宇31 分钟前
二维数组按顺时针螺旋顺序
前端
钡铼技术ARM工业边缘计算机32 分钟前
千元级PLC平台支持梯形图+Python双开发
javascript
安木夕1 小时前
C#-Visual Studio宇宙第一IDE使用实践
前端·c#·.net
努力敲代码呀~1 小时前
前端高频面试题2:浏览器/计算机网络
前端·计算机网络·html
高山我梦口香糖1 小时前
[electron]预脚本不显示内联script
前端·javascript·electron
神探小白牙1 小时前
vue-video-player视频保活成功确无法推送问题
前端·vue.js·音视频
Angel_girl3192 小时前
vue项目使用svg图标
前端·vue.js