码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript-作用域与作用域链

时间:2019-12-22 18:17:49      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:形参   可靠   执行   访问   查找   div   效果   标签   提高   

一、JavaScript作用域:

   1.就是代码名字(变量)在某个范围内起作用和效果,目的是为了提高程序的可靠性更重要是减少命名冲突。

    2.js的作用域(es6)之前,分为全局作用域、局部作用域 

    全局作用域:整个script标签,或者是一个单独的js文件 。

 var num=全局作用域;

    局部作用域:在函数内部就是局部作用域,这个代码的名字再在函数内部起效果和作用

function fn(){
 //局部作用域
var num=10;
}

 

 

二、变量作用域:

      1.根据作用域的不同,变量可以分为全局变量和局部变量

      全局变量:1.1在全局作用域下的变量

                           注意:在函数内部,没有声明var直接赋值的也是全局变量

var num=1
console.log(num);
function fn(){
console.log(num);
}
fn();

     局部变量:1.2在局部作用域下的变量,在函数内部的变量是局部变量

                      注意:函数的形参也可以看做是局部变量

function fn(){
 var num=10;//num就是局部变量,只能在函数内使用
 num1=20;//在函数内部没有var声明,直接赋值的变量属于全局变量
 console.log(num);
}
fn();

 2.从执行效率来看全局变量和局部变量

   2.1 全局变量只有在浏览器关闭时才会销毁,比较占内存资源

   2.2 局部变量当程序执行完毕就会销毁,比较节约内存资源

注:js中没有块级作用域,js作用域:全局作用域,局部作用域。现阶段没有,但js在es6新增了块级作用域

       块级作用域{ } if{ } for{ }

 

三、作用域链:

     内部函数访问外部函数的变量,采取的是链式查找的方式来取那个值,就近原则查找,这种结构称为作用域链。

 var num=10function fn(){//外部函数
  var num=20;
  function fn1(){//内部函数
  console.log(num);//输出的时20
  }
}

 

 

JavaScript-作用域与作用域链

标签:形参   可靠   执行   访问   查找   div   效果   标签   提高   

原文地址:https://www.cnblogs.com/CheungKaHo/p/12080269.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!