JS(JavaScript)
作用域;
一.作用域是什么;
就是变量和函数所被访问范围,控制变量和函数的可见性和生命周期
作用域分为全局作用域和局部作用域
全局作用域;是指在所有函数之外声明的变量,因为当前文档中的其他代码可以访问它
局部作用域;是指在函数内部声明的变量,因为该函数只能在它内部访问
二.变量的作用域;
1.全局变量和局部变量;
全局变量;是指在所有函数之外声明的变量,因为当前文档中的其他代码可以访问它
局部变量;是指在函数内部声明的变量,因为该函数只能在它内部访问
/*
全局作用域(函数作用域之外的范围) - 全局变量
* 全局变量的作用域 - 全局作用域 + 函数作用域
*/
var v1 = 100;
console.log(v1);
function fun(){
/*
函数作用域 - 局部变量
* 局部变量的作用域 - 当前函数作用域
*/
var v2 = 200;
console.log(v1);
console.log(v2);
}
console.log(v1);
fun();
// 全局作用域不能访问局部变量
// console.log(v2);
function fn(){
console.log(v2);
}
fn();
2.声明提前;
先调用变量而结果不会出错同时变量会返回(undefinen)值
console.log(v);// undefined
var v = 100;
console.log(v);// 100
// 当全局变量与局部变量同名时 - 在函数作用域中只能访问局部变量
function fn(){
console.log(v);// undefined
var v = 200;
console.log(v);// 200
}
fn();
console.log(v);// 100
3.按值传递;
是值实参变量的值同样的值给函数的形参变量,表示相同的变量
var q = 100;/* 全局变量 */
function fn(q){
// 参数与局部变量的用法类似 - 只能作用于当前函数的内部
q++;
return q;
}
var result = fn(q);
console.log(result);// 101
console.logq);// 100
三.函数的作用域;
全局函数和内部函数;
全局函数;被定义在任何位置都可以访问和调用函数
局部函数;将一个函数定义在另一个函数之内,只可在函数的内部访问,而不能访问全局作用域中访问
function fn(){
console.log('this is fn');
/* 函数作用域 - 内部/私有函数 */
function n(){
console.log('this is n');
}
n();
}
/* 全局作用域 */
fn();
// n();// n is not defined
function fun(){
/* 另一个函数作用域 */
fn();
n();// n is not defined
}
fun();
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。