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

相关推荐
涛涛ing1 小时前
OpenAI Astra 泄露:零样本生成 3D 网页,前端开发者慌了吗?
前端
ssshooter2 小时前
现在网页都能提供 MCP 了?!
前端·人工智能·程序员
杉氧2 小时前
状态管理变迁史:为什么我们放弃了 Redux 选择 Zustand?
android·前端·react native
cidy_982 小时前
OpenCode 手动配置火山方舟 Agent Plan 教程
前端
鹏多多2 小时前
PC 网站接入微信登录,这 10 个坑我替你踩完了!
前端·javascript·vue.js
律宏阔3 小时前
微信小程序使用 Orval + OpenAPI 自动生成接口:Axios 兼容踩坑记录
前端·微信小程序
律宏阔3 小时前
微信小程序集成 TDesign 完整记录:解决 NPM packages not found
前端·微信小程序
律宏阔3 小时前
微信小程序 ECharts 瘦身实战:分包异步化 + componentPlaceholder 避开主包 2MB 限制
前端·微信小程序
夏天要喝冰可乐3 小时前
从 Idea 到开源插件:我用 Vibe Coding 做了「文章摆渡」
前端·ai编程·vibecoding
小小小小宇3 小时前
pi agent
前端