- html>
- <html>
- <head>
- <meta charset = "UTF-8"/>
- <title>title>
- head>
- <body>
- <p>函数作用域p>
- <p id = "前端">p>
- <p id = "后端">p>
- <script>
- myFunction();
- function myFunction(){
- var 后端 = "李白";
- document.getElementById("前端").innerHTML =
- typeof 后端 + " " + 后端;
- }
- document.getElementById("后端").innerHTML =
- typeof 后端;
- script>
- body>
- html>
函数作用域
局部(函数内)声明的变量拥有函数作用域
局部变量只能在它们被声明的函数内访问
- html>
- <html>
- <head>
- <meta charset = "UTF-8"/>
- <title>title>
- head>
- <body>
- <p>JavaScript 块作用域p>
- <p id = "KJYS">p>
- <p id = "html">p>
- <script>
- {
- var x,k;
- var x = 3;
- var k = 9;
- }
- document.getElementById("KJYS").innerHTML =
- x * 3;
- document.getElementById("html").innerHTML =
- k * 9;
- script>
- body>
- html>
JavaScript 块作用域
通过 var 关键词声明的变量没有块作用域。
在块 {} 内声明的变量可以从块之外进行访问
- html>
- <html>
- <head>
- <meta charset = "UTF-8"/>
- <title>title>
- head>
- <body>
- <p>可以使用 let 关键词声明拥有块作用域的变量p>
- <p id = "哈哈">p>
- <p id = "铠甲勇士">p>
- <script>
- {
- let x,k;
- x = 9;
- k = 10;
- }
- document.getElementById("哈哈").innerHTML = x * 3;
- document.getElementById("铠甲勇士").innerHTML = k * 3;
- script>
- body>
- html>
可以使用 let 关键词声明拥有块作用域的变量。
在块 {} 内声明的变量无法从块外访问
- html>
- <html>
- <head>
- <meta charset = "UTF-8"/>
- <title>title>
- head>
- <body>
- <p>使用 var 关键字重新声明变量会带来问题p>
- <p id = "铠甲勇士刑天">p>
- <p id = "铠甲勇士帝皇侠">p>
- <script>
- var h;
- h = 300;
- {
- var h = 900;
- document.getElementById("铠甲勇士帝皇侠").innerHTML = h;
- }
- document.getElementById("铠甲勇士刑天").innerHTML = h;
- script>
- body>
- html>
重新声明变量
使用 var 关键字重新声明变量会带来问题。
在块中重新声明变量也将重新声明块外的变量
- html>
- <html>
- <head>
- <meta charset = "UTF-8"/>
- <title>title>
- head>
- <body>
- <p>使用 let 关键字重新声明变量可以解决这个问题p>
- <p id = "换行">p>
- <p id = "铠甲勇士拿瓦">p>
- <script>
- var hh = 300;
- {
- let hh = 900;
- document.getElementById("铠甲勇士拿瓦").innerHTML = hh;
- }
- document.getElementById("换行").innerHTML = hh;
- script>
- body>
- html>
使用 let 关键字重新声明变量可以解决这个问题。
在块中重新声明变量不会重新声明块外的变量