首页 > 其他分享 >20. JS作用域(全局作用域+局部作用域)

20. JS作用域(全局作用域+局部作用域)

时间:2022-10-10 15:47:18浏览次数:53  
标签:20 作用域 JS write window str 全局 document

1. 前言

在 JavaScript 中,您可以在任意位置声明变量,但不同的位置会影响变量的可用范围,这个范围称为作用域。作用域可以大致分为两种类型,分别是全局作用域和局部作用域。下面就来分别介绍一下。

2. JS 全局作用域

全局作用域是指变量可以在当前脚本的任意位置访问,拥有全局作用域的变量也被称为“全局变量”,一般情况下拥有以下特征的变量具有全局作用域:

  • 最外层的函数和在最外层函数外面定义的变量拥有全局作用域;
  • 所有未定义直接赋值的变量拥有全局作用域;
  • 所有 window 对象的属性拥有全局作用域,例如 window.name、window.location、window.top 等。

示例代码如下:

var str = "Hello World!";
function myFun(){
    document.write(str);    // 输出:Hello World!
}
myFun();
document.write(str);        // 输出:Hello World!

实际情况下,所有具有全局作用域的变量都会被绑定到 window 对象中,成为 window 对象的一个属性,如下例所示:

var str = "JavaScript";
document.write(str);                    // 输出:JavaScript
document.write(window.str);             // 输出:JavaScript
document.write(str === window.str);     // 输出:true

3. JS 局部作用域

在函数内部声明的变量具有局部作用域,拥有局部作用域的变量也被称为“局部变量”,局部变量只能在其作用域中(函数内部)使用。示例代码如下:

function myFun(){
    var str = "Hello World!";
    document.write(str);    // 输出:Hello World!
}
document.write(str);        // 报错:str is not defined

在函数内定义的局部变量只有在函数被调用时才会生成,当函数执行完毕后会被立即销毁。

标签:20,作用域,JS,write,window,str,全局,document
From: https://www.cnblogs.com/jiajunling/p/16775941.html

相关文章

  • 2022.10.10 POI
    POI与easyExcel应用场景将用户信息导出为excel表格将Excel表中的信息录入到网站数据库,大大减小网站数据的录入量!开发中经常会涉及到excel的处理,如导出Excel到......
  • 函数及名称空间和作用域
    目录函数参数之位置参数默认参数可变长形参可变长实参命名关键字参数(了解)名称空间名称空间存活周期及作用范围(域)名字的查找顺序查找顺序案例作业函数参数之位置参数位置......
  • TMS320LF2407数字采样
    1引言模数(AD)转换通常是数字信号处理应用中的第一步,依据应用的不同,对模数转换器(ADC)也有不同的要求,衡量模数转换器的最重要的标准是它的转换速率、分辨率和精度。应......
  • JavaScript高级程序设计笔记04 变量、作用域与内存
    变量、作用域与内存变量特定时间点一个特定值的名称。分类原始值:按值访问复制:两个独立使用、互不干扰引用值(由多个值构成的对象):按引用访问操作对象时,实际上......
  • TZOJ 7685: 最短路径 (dijstra/输出路径pre)
    描述  给定n个顶点的带权有向图,若从顶点x到顶点y之间存在一条路径,那么这条路径的长度定义为路径上各条边的权值之和。现在请你找出从顶点1到顶点n的一条最短路径。......
  • 习题11-5 指定位置输出字符串 (20分)
    本题要求实现一个函数,对给定的一个字符串和两个字符,打印出给定字符串中从与第一个字符匹配的位置开始到与第二个字符匹配的位置之间的所有字符。函数接口定义:char*match(......
  • 2022第一次学习任务
    2022第一次学习任务内容比较多:)A.环境配置安装虚拟机(这部分我很早就完成了,具体步骤就不详细说明了)安装vm及Linux系统镜像这一部分步骤比较清晰,主要参考VMware虚拟......
  • 16. JS for of循环语句的用法
    1.前言JSforof循环是ECMAScript6中新添加的一个循环方式,与 forin 循环类似,也是普通 for 循环的一种变体。使用forof循环可以轻松的遍历数组或者其它可遍历......
  • Matlab R2022b 到底香不香?
     11时隔半年,又到了更新Matlab的季节了......R2022b看着挺香的:2345看下我们所重点关注的AppBuilding和DeepLearningToolbox:AppBuilding87DeepLearnin......
  • CentOS 7.9 安装 docker-20.10.12
    一、CentOS7.9安装docker-20.10.12地址https://www.docker.comhttps://hub.docker.com 二、环境查看系统内核是3.10以上的[root@ecs-65685~]#uname-aLi......