ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

【Javascript】之作用域与预解析

2020-11-29 16:33:10  阅读:129  来源: 互联网

标签:function console 函数 作用域 Javascript var 解析 log


一. 作用域

作用域指变量和函数可以被读写的范围,通常由函数来进行划分, 也叫作函数作用域。

1. 作用域的分类

全局作用域 : 

  • script标签下的就是全局
  • var声明的变量叫做全局变量
  • function声明的函数叫做全局函数

全局变量和全局函数可以在整个作用域的任何位置被读取和写入

局部作用域:

  • 函数中{}的区域就是局部作用域
  • var声明的变量叫做局部变量
  • function声明的函数叫做局部函数

局部变量和局部函数只能作用于当前的局部作用域中, 但凡出了{}就会被销毁

var a = 20;  // 全局变量
function sum(){ // 全局函数
    // 局部作用域
    console.log(a); // 全局的a
}
sum(); // 全局的sum


function s(){
    // 局部作用域
    var num = 30;
    console.log(num); // 局部变量的num

    function m(){
        console.log(1);
    }
    m();
}
s();

// console.log(num); // num is not defined  num未定义   报错
// m(); // 报错: m is not defined  m未定义

2. 作用域链

 作用域链是js中的一种查找方式, 决定了变量和函数向上查找的方式。

 先在自身作用域范围中查找变量和函数, 如果找到就直接返回, 如果找不到就往上一级作用域查找, 如果一直找到全局作用域都没有, 就会报错。

var a = 20;
function sum(){
    console.log(a); // 20
    // console.log(c);
}
sum();


var b = 30;
function s(){
    var b = 21;
    console.log(b); // 21
}
s();

 

标签:function,console,函数,作用域,Javascript,var,解析,log
来源: https://blog.csdn.net/qq_37086980/article/details/110323206

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有