JavaScript 基础(004_作用域)
2016-09-18 10:40
260 查看
JavaScript 作用域:在 JavaScript 中,作用域为可访问变量、对象以及函数的集合。JavaScript has function scope: The scope changes inside functions.
JavaScript 局部作用域:在函数体内声明的变量,它的作用域为局部作用域。
示例代码:
JavaScript 全局作用域:在函数体外声明的变量,它的作用域为全局作用域。如果变量在函数体内没有声明(没有使用 var 关键字),该变量的作用域为全局作用域。
示例代码:
Did You Know ?
Your global variables (or functions) can overwrite window variables (or functions).
Any function, including the window object, can overwrite your global variables and functions.
示例代码:
现在,我们修改以上代码:
通过以上代码修改前后的执行结果可以看出,我们自定义的 content 变量重写了 window.content 属性(使用 Firefox 浏览器测试)。
参考网址:
http://w3schools.bootcss.com/js/js_scope.html
JavaScript 局部作用域:在函数体内声明的变量,它的作用域为局部作用域。
示例代码:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JavaScript Scope</title> <script type="text/javascript"> // 局部作用域 function myFunction() { var carName = "Volvo"; } myFunction(); console.log(carName); // carName变量为局部作用域,只在函数体内是可访问的,因此,本行代码会报错:carName is not defined </script> </head> <body> <div class="content"> <pre> // 局部作用域 function myFunction() { var carName = "Volvo"; } myFunction(); console.log(carName); </pre> </div> </body> </html>
JavaScript 全局作用域:在函数体外声明的变量,它的作用域为全局作用域。如果变量在函数体内没有声明(没有使用 var 关键字),该变量的作用域为全局作用域。
示例代码:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JavaScript Scope</title> <script type="text/javascript"> // 全局作用域 // var carName = "Volvo"; function myFunction() { carName = "Volvo"; // 全局作用域(没有使用var关键字) } myFunction(); console.log(carName); </script> </head> <body> <div class="content"> <pre> // 全局作用域 // var carName = "Volvo"; function myFunction() { carName = "Volvo"; // 全局作用域(没有使用var关键字) } myFunction(); console.log(carName); </pre> </div> </body> </html>
Did You Know ?
Your global variables (or functions) can overwrite window variables (or functions).
Any function, including the window object, can overwrite your global variables and functions.
示例代码:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JavaScript Scope</title> <script type="text/javascript"> // 全局作用域 console.log(content); // content为Window对象的属性 </script> </head> <body> <div class="content"> <pre> // 全局作用域 console.log(content); // content为Window对象的属性 </pre> </div> </body> </html>
现在,我们修改以上代码:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JavaScript Scope</title> <script type="text/javascript"> // 全局作用域 var content = ""; console.log(content); // content为Window对象的属性,即window.content </script> </head> <body> <div class="content"> <pre> // 全局作用域 var content = ""; console.log(content); // content为Window对象的属性 </pre> </div> </body> </html>
通过以上代码修改前后的执行结果可以看出,我们自定义的 content 变量重写了 window.content 属性(使用 Firefox 浏览器测试)。
参考网址:
http://w3schools.bootcss.com/js/js_scope.html
相关文章推荐
- JavaScript全面了解作用域(基础、this、闭包、继承)之一
- 【javascript基础】延长作用域链
- JavaScript基础——变量、作用域和内存问题
- 网站前端_JavaScript-基础入门.0008.JavaScript作用范围
- JavaScript 你可能会忘记的基础知识 (3)引用和作用域
- 基础决定高度:JavaScript中的作用域,JS作用域
- JavaScript 精粹 基础 进阶(6)函数和作用域(函数、this)
- JavaScript 基础函数_深入剖析变量和作用域
- Javascript中基础-词法作用域
- javascript的基础学习——Javascript组成、变量类型(类型转换)、isNaN()、作用域和闭包
- javascript面向对象技术基础(六)(作用域、闭包、模拟私有属性)
- JavaScript基础---作用域,匿名函数和闭包
- javascript基础拾遗——词法作用域
- JavaScript 基础函数_深入剖析变量和作用域
- JavaScript基础2——变量、作用域和内存
- JavaScript全面了解作用域(基础、this、闭包、继承)之二
- 【javascript基础】3、变量和作用域
- 【javascript基础】3、变量和作用域
- javaScript基础:作用域相关
- Javascript基础_11作用域与块级作用域