分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

JS中的块级作用域,var、let、const三者的区别

发布时间:2023-09-06 02:22责任编辑:沈小雨关键词:作用域

1. 块作用域{ }

<script type="text/javascript"> ???{ ???????var a = 1; ???????console.log(a); // 1 ???} ???console.log(a); // 1 ???// 可见,通过var定义的变量可以跨块作用域访问到。 ???(function A() { ???????var b = 2; ???????console.log(b); // 2 ???})(); ???// console.log(b); // 报错, ???// 可见,通过var定义的变量不能跨函数作用域访问到 ???if(true) { ???????var c = 3; ???} ???console.log(c); // 3 ???for(var i = 0; i < 4; i ++) { ???????var d = 5; ???}; ???console.log(i); // 4 ??(循环结束i已经是4,所以此处i为4) ???console.log(d); // 5 ????for(let j = 0; j< 4; j ++) { ???????let f = 5; ???}; ????console.log(j); // 报错 ???console.log(f); // 报错 ???// if语句和for语句中用var定义的变量可以在外面访问到, ???// 可见,if语句和for语句属于块作用域,不属于函数作用域。</script>

  

2. var、let、const的区别

  1. var定义的变量,没有块的概念,可以跨块访问, 不能跨函数访问。
  2. let定义的变量,只能在块作用域里访问,不能跨块访问,也不能跨函数访问。
  3. const用来定义常量,使用时必须初始化(即必须赋值),只能在块作用域里访问,而且不能修改。
<script type="text/javascript"> ???// 块作用域 ???{ ???????var a = 1; ???????let b = 2; ???????const c = 3; ???????// c = 4; // 报错 ???????var aa; ???????let bb; ???????// const cc; // 报错 ???????console.log(a); // 1 ???????console.log(b); // 2 ???????console.log(c); // 3 ???????console.log(aa); // undefined ???????console.log(bb); // undefined ???} ???console.log(a); // 1 ???// console.log(b); // 报错 ???// console.log(c); // 报错 ???// 函数作用域 ???(function A() { ???????var d = 5; ???????let e = 6; ???????const f = 7; ???????console.log(d); // 5 ???????console.log(e); // 6 ?(在同一个{ }中,也属于同一个块,可以正常访问到) ???????console.log(f); // 7 ?(在同一个{ }中,也属于同一个块,可以正常访问到) ???})(); ???// console.log(d); // 报错 ???// console.log(e); // 报错 ???// console.log(f); // 报错</script>

  

JS中的块级作用域,var、let、const三者的区别

原文地址:https://www.cnblogs.com/longbky/p/9949402.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved