JavaScript Let

您所在的位置:网站首页 js循环table JavaScript Let

JavaScript Let

2023-11-19 07:22| 来源: 网络整理| 查看: 265

w3school 在线教程 HTML 系列教程 浏览器脚本 服务器脚本 编程教程 XML 系列教程 建站手册 参考手册 JS 教程 JS 教程 JS 简介 JS 使用 JS 输出 JS 语句 JS 语法 JS 注释 JS 变量 JS Let JS Const JS 运算符 JS 算数 JS 赋值 JS 数据类型 JS 函数 JS 对象 JS 事件 JS 字符串 JS 字符串方法 JS 字符串搜索 JS 字符串模板 JS 数字 JS BigInt JS 数字方法 JS 数字属性 JS 数组 JS 数组方法 JS 数组排序 JS 数组迭代 JS 数组 Const JS 日期 JS 日期格式 JS 日期获取方法 JS 日期设置方法 JS 数学 JS 随机 JS 逻辑 JS 比较 JS 条件 JS Switch JS Loop For JS Loop For In JS Loop For Of JS Loop While JS Break JS typeof JS 类型转换 JS 位运算 JS 正则表达式 JS 运算符优先级 JS 异常 JS 作用域 JS Hoisting JS 严格模式 JS this 关键词 JS 箭头函数 JS 类 JS 模块 JS JSON JS 调试 JS 样式指南 JS 最佳实践 JS 错误 JS 性能 JS 保留词 JS 版本 JS 版本 JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS 2019 JS 2020 JS 2021 JS IE / Edge JS 历史 JS 对象 JS 对象定义 JS 对象属性 JS 对象方法 JS 对象显示 JS 对象访问器 JS 对象构造器 JS 对象原型 JS 可迭代对象 JS Set JS Map JS 对象引用 JS 函数 JS 函数定义 JS 函数参数 JS 函数调用 JS 函数 Call JS 函数 Apply JS 函数绑定 JS 闭包 JS 类 JS 类简介 JS 类继承 JS Static JS Async JS 回调 JS 异步 JS Promise JS Async JS HTML DOM DOM 简介 DOM 方法 DOM 文档 DOM 元素 DOM HTML DOM 表单 DOM CSS DOM 动画 DOM 事件 DOM 事件监听程序 DOM 导航 DOM 节点 DOM 集合 DOM 节点列表 JS Browser BOM JS Window JS Screen JS Location JS History JS Navigator JS 弹出框 JS Timing JS Cookies JS Web API Web API 简介 Web Form API Web History API Web Storage API Web Worker API Web Fetch API Web Geolocation API JS AJAX AJAX 简介 AJAX XMLHttp AJAX 请求 AJAX 响应 AJAX XML 文件 AJAX PHP AJAX ASP AJAX 数据库 AJAX 应用程序 AJAX 实例 JS JSON JSON 简介 JSON 语法 JSON vs XML JSON 数据类型 JSON 解析 JSON 字符串化 JSON 对象 JSON 数组 JSON 服务器 JSON PHP JSON HTML JSON JSONP JS vs jQuery jQuery 选择器 jQuery HTML jQuery CSS jQuery DOM JS 图形 JS 图形 JS Canvas JS Plotly.js JS Chart JS 谷歌图表 JS D3.js JS 实例 JS 实例 JS HTML DOM JS HTML 输入 JS HTML 对象 JS HTML 事件 JS Browser JS 测验 JS 参考手册 JavaScript 对象 HTML DOM 对象 建站手册 网站构建 万维网联盟 (W3C) 浏览器信息 网站品质 语义网 职业规划 网站主机 关于 W3School 帮助 W3School JavaScript Let JS 变量 JS Const ECMAScript 2015

ES2015 引入了两个重要的 JavaScript 新关键词:let 和 const。

这两个关键字在 JavaScript 中提供了块作用域(Block Scope)变量(和常量)。

在 ES2015 之前,JavaScript 只有两种类型的作用域:全局作用域和函数作用域。

全局作用域

全局(在函数之外)声明的变量拥有全局作用域。

实例 var carName = "porsche"; // 此处的代码可以使用 carName function myFunction() { // 此处的代码也可以使用 carName }

亲自试一试

全局变量可以在 JavaScript 程序中的任何位置访问。

函数作用域

局部(函数内)声明的变量拥有函数作用域。

实例 // 此处的代码不可以使用 carName function myFunction() { var carName = "porsche"; // code here CAN use carName } // 此处的代码不可以使用 carName

亲自试一试

局部变量只能在它们被声明的函数内访问。

JavaScript 块作用域

通过 var 关键词声明的变量没有块作用域。

在块 {} 内声明的变量可以从块之外进行访问。

实例 { var x = 10; } // 此处可以使用 x

在 ES2015 之前,JavaScript 是没有块作用域的。

可以使用 let 关键词声明拥有块作用域的变量。

在块 {} 内声明的变量无法从块外访问:

实例 { let x = 10; } // 此处不可以使用 x 重新声明变量

使用 var 关键字重新声明变量会带来问题。

在块中重新声明变量也将重新声明块外的变量:

实例 var x = 10; // 此处 x 为 10 { var x = 6; // 此处 x 为 6 } // 此处 x 为 6

亲自试一试

使用 let 关键字重新声明变量可以解决这个问题。

在块中重新声明变量不会重新声明块外的变量:

实例 var x = 10; // 此处 x 为 10 { let x = 6; // 此处 x 为 6 } // 此处 x 为 10

亲自试一试

浏览器支持

Internet Explorer 11 或更早的版本不完全支持 let 关键词。

下表定义了第一个完全支持 let 关键词的浏览器版本:

Chrome 49 IE / Edge 12 Firefox 44 Safari 11 Opera 36 2016 年 3 月 2015 年 7 月 2015 年 1 月 2017 年 9 月 2016 年 3 月 循环作用域

在循环中使用 var:

实例 var i = 7; for (var i = 0; i < 10; i++) { // 一些语句 } // 此处,i 为 10

亲自试一试

在循环中使用 let:

实例 let i = 7; for (let i = 0; i < 10; i++) { // 一些语句 } // 此处 i 为 7

亲自试一试

在第一个例子中,在循环中使用的变量使用 var 重新声明了循环之外的变量。

在第二个例子中,在循环中使用的变量使用 let 并没有重新声明循环外的变量。

如果在循环中用 let 声明了变量 i,那么只有在循环内,变量 i 才是可见的。

函数作用域

在函数内声明变量时,使用 var 和 let 很相似。

它们都有函数作用域:

function myFunction() { var carName = "porsche"; // 函数作用域 } function myFunction() { let carName = "porsche"; // 函数作用域 } 全局作用域

如果在块外声明声明,那么 var 和 let 也很相似。

它们都拥有全局作用域:

var x = 10; // 全局作用域 let y = 6; // 全局作用域 HTML 中的全局变量

使用 JavaScript 的情况下,全局作用域是 JavaScript 环境。

在 HTML 中,全局作用域是 window 对象。

通过 var 关键词定义的全局变量属于 window 对象:

实例 var carName = "porsche"; // 此处的代码可使用 window.carName

亲自试一试

通过 let 关键词定义的全局变量不属于 window 对象:

实例 let carName = "porsche"; // 此处的代码不可使用 window.carName

亲自试一试

重新声明

允许在程序的任何位置使用 var 重新声明 JavaScript 变量:

实例 var x = 10; // 现在,x 为 10 var x = 6; // 现在,x 为 6

亲自试一试

在相同的作用域,或在相同的块中,通过 let 重新声明一个 var 变量是不允许的:

实例 var x = 10; // 允许 let x = 6; // 不允许 { var x = 10; // 允许 let x = 6; // 不允许 }

在相同的作用域,或在相同的块中,通过 let 重新声明一个 let 变量是不允许的:

实例 let x = 10; // 允许 let x = 6; // 不允许 { let x = 10; // 允许 let x = 6; // 不允许 }

在相同的作用域,或在相同的块中,通过 var 重新声明一个 let 变量是不允许的:

实例 let x = 10; // 允许 var x = 6; // 不允许 { let x = 10; // 允许 var x = 6; // 不允许 }

在不同的作用域或块中,通过 let 重新声明变量是允许的:

实例 let x = 6; // 允许 { let x = 7; // 允许 } { let x = 8; // 允许 }

亲自试一试

提升

通过 var 声明的变量会提升到顶端。如果您不了解什么是提升(Hoisting),请学习我们的提升这一章。

您可以在声明变量之前就使用它:

实例 // 在此处,您可以使用 carName var carName;

亲自试一试

通过 let 定义的变量不会被提升到顶端。

在声明 let 变量之前就使用它会导致 ReferenceError。

变量从块的开头一直处于“暂时死区”,直到声明为止:

实例 // 在此处,您不可以使用 carName let carName; JS 变量 JS Const JavaScript 和 HTML DOM 参考手册 JavaScript 实例 JavaScript 测验 JavaScript 高级教程

W3School 简体中文版提供的内容仅用于培训和测试,不保证内容的正确性。通过使用本站内容随之而来的风险与本站无关。版权所有,保留一切权利。

使用条款 隐私条款 技术支持:赢科 蒙ICP备06004630号



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3