javascript中作用域
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script type="text/javascript"> // 什么叫作用域 ?? // 从字面意思来理解: 起作用的那块区域 // 作用域是限制什么的? 变量 还是 代码逻辑 // 一般说的作用域, 就是指: 变量的作用域 // 作用域主要由两种作用域: // 1 块级作用域 (JS不支持) // 2 词法作用域 // 1 什么叫做块级作用域? // 常见的支持块级作用域的语言: // C 语言( C系,如:Java、Object-C/Swift、C# / C++) // 在支持块级作用域的语言里面, 一个代码块就能来限制变量的使用 // if( true ) { // var num = 123; // } // console.log(num); // for(var i = 0; i < 10; i++) { // console.log(i); // } // console.log(i); // 在支持块级作用域的语言中,在for循环的外部是访问不到i的值 // 2 词法作用域 // 一个变量的作用范围, 在代码写出来的那一刻就定下了, 不会根据代码的运行 // 而受影响. // 换句话说: 变量的作用范围只与代码声明的位置有关, 而与运行时无关 // 函数也是同样的道理, 只与函数声明的位置有关, 而与调用的位置无关 // var num = 123; // 面试题 var num = 123; function f1() { console.log(num); // 123?? } function f2() { var num = 456; f1(); } f2(); // /*var i; for(i = 0; i < 10; i++) { // console.log(i); } // 在js中能在for循环的外部来访问到 循环内部定义的变量 console.log(i); // ??? 10*/ </script> </body> </html>