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)
上一篇 2022年4月20日 下午1:00
下一篇 2022年4月20日 下午1:00


相关推荐

  • 7. MyBatisCodeHelperPro 插件[通俗易懂]

    7. MyBatisCodeHelperPro 插件[通俗易懂]MyBatisCodeHelperPro插件       之前介绍了MyBatis的逆向工程生成实体类、自定义接口以及Mapper.xml的操作过程,很显然这样的配置工作非常繁琐且复杂,本文在介绍MyBatis动态SQL之前,先分享一款实用的MyBatisGenerator插件(MyBatisCodeHelperPro),使用这个插件可以简化开发过程,提高开发者的编码效率。第一步:File→Settings

    2025年11月25日
    7
  • shell if语句和test命令

    shell if语句和test命令在shell中if条件判断语句和我们的C、C++、Java等语言是不同的,shell的if语句条件必须用[]括起来,另外[]里外都需要用空格与周围隔开(例如[a==b]),否则报错;另外与if配对的有elseif和else,如果我们要写这两个必须后面跟有东西,否则也会报错,在编程中不跟是可以的:if(a==b)printf("a=b");else{//什么都没有}但是s…

    2022年7月27日
    7
  • SpringBoot集成kafka测试

    SpringBoot集成kafka测试本文是 SpringBoot Kafka 的实战讲解 如果对 kafka 的架构原理还不了解的读者 建议先看一下 大白话 kafka 架构原理 秒懂 kafkaHA 高可用 两篇文章 一 生产者实践 普通生产者 带回调的生产者 自定义分区器 kafka 事务提交 二 消费者实践 简单消费 指定 topic partition offset 消费 批量消费 监听异常处理器 消息过滤器 消息转发 定时启动 停止监听

    2026年3月26日
    4
  • 逻辑回归算法原理实例_逻辑回归算法案例

    逻辑回归算法原理实例_逻辑回归算法案例逻辑回归算法的原理

    2022年8月21日
    9
  • keras conv(keras中文手册)

    Conv2D:图像空间的2维卷积keras.layers.Conv2D(filters,kernel_size,strides=(1,1),padding=’valid’,data_format=None,dilation_rate=(1,1),activation=None,use_bias=True,kernel_initializer=’glo…

    2022年4月12日
    79
  • java pfx 证书_java 证书 .cer 和 .pfx[通俗易懂]

    java pfx 证书_java 证书 .cer 和 .pfx[通俗易懂]作为文件形式存在的证书一般有这几种格式:1.带有私钥的证书由PublicKeyCryptographyStandards#12,PKCS#12标准定义,包含了公钥和私钥的二进制格式的证书形式,以pfx作为证书文件后缀名。2.二进制编码的证书证书中没有私钥,DER编码二进制格式的证书文件,以cer作为证书文件后缀名。3.Base64编码的证书证书中没有私钥,BASE64编码格式的证书文件…

    2022年5月27日
    75

发表回复

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

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