函数的全局变量和局部变量

// 在函数内部定义的变量,在函数外部是不可以访问   这是局部变量  是该函数的私有变量只归该函数占有
// 函数内的变量只能在函数以内访问
// function fn() {
//   var num = 5;
// }
// // num is not defined
// console.log(num);
// 
// 作用域:变量或者函数可以起作用的访问


//全局变量和全局作用域指的是变量或者函数的位置  
// 全局变量:  在script之间或者一个独立的js文件中,在全局作用域中定义的变量  全局变量。在任何位置都可以访问

// 全局作用域:在script之间或者一个独立的js文件   script之间或者一个独立的js文件里的内容区域,在全局作用域中定义的作用域  全局作用域。   在任何位置都可以访问  


// 局部变量:在函数作用域之间里的一个或者多个函数或者作用域,在局部作用域中定义的变量  局部变量。只有在该作用域内可以访问

// 局部作用域:任何一个函数的内部都有一个局部作用域,在局部作用域中定义的变量 局部变量。局部变量只有在定义该变量的函数中可以访问

// 函数  作用域的全局和局部  是相对的




// ECMAScript
// 全局作用域:在script之间或者一个独立的js文件中,在全局作用域中定义的变量  全局变量。在任何位置都可以访问
// var num = 15;
// function fn() {
//   // 全局变量   不建议这样,这样是不规范的
//   str = 'abc';
//   console.log(num);
//   console.log(str);
// }
// fn();
// console.log(str);
// 局部作用域:任何一个函数的内部都有一个局部作用域,在局部作用域中定义的变量 局部变量。局部变量只有在定义该变量的函数中可以访问
// function fn() {
//   // 局部变量
//   var num = 5;
// }
// // num is not defined
// console.log(num);
// 
// 
// 块级作用域:在ECMAScript中没有块级作用域。
// 代码块
{
  // 代码块
  var num = 5;
  console.log(num);
}
console.log(num);


// js 可以层层嵌套   多个函数的层层嵌套构成了多个作用域的层层嵌套   这成为js的作用域链

//原型链: js 作用域链的访问规则;  如果当前作用域内存在要访问的变量   则使用当前作用域内的变量   否则去上一层作用域内寻找  直到全局作用域   如果找不到  则改变未声明
发布了68 篇原创文章 · 获赞 0 · 访问量 1307

猜你喜欢

转载自blog.csdn.net/zmmsdk/article/details/100799260