JavaScript学习第五天笔记(作用域)

JavaScript学习第五天笔记(作用域)JavaScript学习第五天笔记(作用域)

大家好,又见面了,我是你们的朋友全栈君。

作用域

概述

变量和函数都具有作用域 作用域就是变量和函数的可被访问的范围 控制着变量和函数的可见性和生命周期。
变量的作用域可被分为全局作用域和局部作用域(函数作用域) 如果变量是被定义在全局作用域的话 在JavaScript代码中的任何位置都可以访问该变量 如果变量被定义在指定函数内部 在JavaScript代码中只能在该函数内部访问该变量。
函数的作用域也可被分为全局作用域和局部作用域(函数作用域) 被定义在指定函数内部的函数被称为局部函数或内部函数。

全局变量

在所有函数之外声明的变量,叫做全局变量,因为他可被当前文档中的其他代码所访问。

局部变量

在函数内部声明的变量被成为局部变量,它只能在函数的内部进行访问。

声明提前

JavaScript变量的另一个特别之处是,可以小猴声明的变量,而不会引发异常,这一概念被称为生命提前。
示例代码

console.log(num);// undefined
var num = 100;/* 定义全局变量 */
/* 定义函数 */
function fun(){
    // 全局变量与局部变量同名时 - 在当前函数作用域中只能访问局部变量
    console.log(num);// undefined

    var num = 200;/* 定义局部变量 */
    // 就近原则
    console.log(num);// 200
}
/* 调用函数 */
fun();
// 局部变量在全局作用域中无法访问 - 只能访问全局变量
console.log(num);// 100

按置传递

按置传递就是指将实参变量的值复制一份副本给函数的形参变量。JavaScript中为函数传递参数时,都是按值传递的。如果向函数传递的参数时原始类型数据,则在函数中修稿参数变量的值,不会影响外部实参的变量。
示例代码

var num = 100;/* 定义一个全局变量 */
function fun(num){
    num++;
    console.log('函数内部的值: ' + num);// 101
}
fun(num);/* 实参 */
/* 调用指定全局变量 */
console.log('全局作用域的值: ' + num);// 100 101


var v = 200;
function fn(){
    v++;
}
fn();
console.log(v);// 201
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107365.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 华为三层交换机配置不同网段互通[通俗易懂]

    华为三层交换机配置不同网段互通[通俗易懂]CSDN上看到这样一个问题,回答后所以顺便整理一下,一般情况下,三层交换机不直接连终端端,太浪费了,可以连一个交换机然后再连终端

    2025年10月27日
    4
  • linux 解压 -zxvf 与-xvf解压方式的区别

    linux 解压 -zxvf 与-xvf解压方式的区别

    2021年7月18日
    208
  • 专业函数绘图软件Origin

    专业函数绘图软件Origin首先:Origin软件已经是科研院所等单位的必备工作软件之一,之所以大家讨论得较少,有可能并不是其上手难度低,而是这些使用人群的学习理解能力要相对高一点吧;其次:Excel不垃圾,但在函数绘图方面,比起Origin差远了,用垃圾来形容并不过分,可以问问任何高校老师,他们还会使用Excel出图么?那简直是自己找死。当然Origin也只是在绘图方面比Excel厉害,其它的方面还是比Excel差

    2022年5月31日
    99
  • leetcode 回溯算法_leetcode有效的括号

    leetcode 回溯算法_leetcode有效的括号原题链接数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例 1:输入:n = 3输出:[“((()))”,”(()())”,”(())()”,”()(())”,”()()()”]示例 2:输入:n = 1输出:[“()”] 提示:1 <= n <= 8题解回溯class Solution {public: vector<string>res; string t = “”; voi

    2022年8月9日
    7
  • 在ubuntu中pycharm2021.12.13最新激活码-激活码分享

    (在ubuntu中pycharm2021.12.13最新激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~41MD9IQHZL-eyJsaWNlbnNlSWQiOi…

    2022年3月30日
    180
  • cmd命令如何切换盘符_请输入windows所在盘符

    cmd命令如何切换盘符_请输入windows所在盘符MS-DOS(/ˌɛmˌɛsˈdɒs/MicrosoftDiskOperatingSystem)isanoperatingsystemforx86-basedpersonalcomputersmostlydevelopedbyMicrosoft.1.开始->运行->cmd->Enter2.切换到D盘3.切换到E盘4.切换到C盘5.退出cmdhttps://yongqiang.blog.csdn.net/…

    2022年10月3日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号