一、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: 我在块级外面

相关推荐
李少兄2 分钟前
网页应用化部署指南:基于 Edge 浏览器创建桌面快捷方式
前端·edge
IT_陈寒3 分钟前
Python的异步陷阱:我竟然被await坑了一整天
前端·人工智能·后端
光影少年3 分钟前
Android和iOS原生开发的基础知识对RN开发的重要性,RN打包发布时原生端需要做哪些配置?
android·前端·react native·react.js·ios
Fanfffff7206 分钟前
从 6s 到 3s:一次电商前端性能优化实践的系统性总结
前端·性能优化
cypking7 分钟前
npm 依赖包版本扫描提示插件Version Lens
前端·npm·node.js
还是大剑师兰特9 分钟前
Vue3 Mixin 与 Vue2 Mixin 核心区别
前端·javascript·vue.js
188号安全攻城狮11 分钟前
【前端基础知识】JavaScript 数组方法总结:从表格速查到分类详解
开发语言·前端·javascript·网络安全
qq_3813385012 分钟前
微前端架构深度实践:从 qiankun 到 Module Federation 的企业级方案
前端·架构
鱼干~16 分钟前
【全栈知识点】全栈开发知识点
前端·人工智能·c#
英俊潇洒美少年16 分钟前
迷你 React 调度器(带优先级+时间切片)手写实现
前端·javascript·react.js