JavaScript Let |
您所在的位置:网站首页 › js循环table › JavaScript Let |
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 |