JavaScript系列从入门到精通系列第十七篇:JavaScript中的全局作用域

文章目录

前言

1:什么叫作用域

一:全局作用域

1:全局变量的声明

2:变量声明和使用的顺序

3:方法声明和使用的顺序


 

前言

1:什么叫作用域

        可以起作用的范围

function fun(){var a = 1;
}
fun();console.log(a);//会报错

        我们的作用域只有全局作用域和函数作用域。 

一:全局作用域

1:全局变量的声明

        直接编写到Script里边的代码,就是全局作用域。全局作用域在页面打开时创建在页面关闭时销毁。

        在全局作用域中有一个全局对象window,我们可以直接使用。

        对象,都是对现实对象的抽象,他依赖于一个浏览器窗口,window对象就代表是一个浏览器窗口,他由我们的浏览器创建,可以直接使用。

        window是浏览器创建的一个全局对象,在全局作用域里边,我们创建的对象都会作为window对象的属性进行保存。 如下操作可以证明:

 

        全局作用域下的对象都会作为window对象的属性保存。

        全局作用域下的函数都会违window对象的方法进行保存。 

        所以,我们说我们的方法和函数没有区别。我们定义的函数实际上就是window对象的方法。

var a = 123;b = 123;

        定义一个全局作用域变量,使用或者不使用var都是可以的。不使用var的话,本质上相当于这样:

a = 123;window.a =123;

        也就是直接往window对象当中进行添加属性和赋值。 

2:变量声明和使用的顺序

        声明需要在使用之前。

console.log(a);
var a = 123;

        这样写会将var a提前到代码前,这样的话,console不会报错,只是打印的undefined。因为赋值是在后边处理的。

console.log(b);
b = 100;

        这个没有var,所以这个不会提前,这样写执行就会报错! 

3:方法声明和使用的顺序

fun();function fun(){console.log("xxxxxxxxxxxxxxxxxx");
}

        使用函数声明形式创建的函数,会在调用前就已经被加载。会直接把这个函数创建好了。所以,我们可以在函数声明前调用函数。这是没有任何问题的。

        使用函数表达式创建的函数不会被提前,代码表达如下:

var fun function (){console.log("xxxxxxxxxxxxxxxxxx");
}fun();

        fun()调用只能在后边。因为var fun赋值实在。代码执行到的哪一行进行处理。

        函数声明会被提前,函数表达式不会被提前

        全局作用域中的变量是全局变量,在页面的任意部位都可以进行访问。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/126021.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

light client轻节点简介

1. 引言 前序博客: Helios——a16z crypto构建的去中心化以太坊轻节点 去中心化和自我主权对于Web3的未来至关重要,但是这些理想并不总适用于每个项目或应用程序。在非托管钱包和bridges等工具中严格优先考虑安全性而不是便利性的用户,可选择运行全节…

苹果mac电脑securecrt下载 附securecrt破解文件

SecureCRT for Mac是一款由VanDyke Software公司开发的终端仿真软件,专为Mac OS X系统设计,用于提供安全SSH、Telnet和其他协议的远程访问和管理。它适用于各种操作系统和设备,如Windows、Linux和UNIX等,为Mac用户提供了广泛的连接…

黑豹程序员-架构师学习路线图-百科:JSON替代XML

文章目录 1、数据交换之王2、XML的起源3、JSON诞生4、什么是JSON 1、数据交换之王 最早多个软件之间使用txt进行信息交互,缺点:纯文本,无法了解其结构;之后使用信令,如:电话的信令(拨号、接听、…

【C语言】利用数组处理批量数据(字符数组)

前言:前面已经介绍了,字符数据是以字符的ASCII代码存储在存储单元中的,一般占一个字节。由于ASCII代码也属于整数形式,因此在C99标准中,把字符类型归纳为整型类型中的一种。 💖 博主CSDN主页:卫卫卫的个人主页 &#x…

makeMakefile

一、 什么是make&Makefile ? ①make 是一条命令,makefile是一个文件,配合使用,通过依赖关系和依赖方法达到我们形成可执行程序的目的 ②makefile好处就是可以进行 自动化编译 ” ,极大的提高软件开发的效率,一旦写好,只需要一个 make 命令…

手机图片合成gif怎么操作?用这个网站试试

制作gif动图的工具越来越多,但是很多时候使用电脑并不方便,想要在手机上制作gif动图的时候应该怎么办呢?很简单,给大家分享一款无需下载手机浏览器就能操作的gif制作(https://www.gif.cn/)工具-GIF中文网&a…

【AI视野·今日Robot 机器人论文速览 第四十七期】Wed, 4 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Wed, 4 Oct 2023 Totally 40 papers 👉上期速览✈更多精彩请移步主页 Interesting: 📚基于神经网络的多模态触觉感知, classification, position, posture, and force of the grasped object多模态形象的解耦(f…

OpenCV利用Camshift实现目标追踪

目录 原理 做法 代码实现 结果展示 原理 做法 代码实现 import numpy as np import cv2 as cv# 读取视频 cap cv.VideoCapture(video.mp4)# 检查视频是否成功打开 if not cap.isOpened():print("Error: Cannot open video file.")exit()# 获取第一帧图像&#x…

练[ZJCTF 2019]NiZhuanSiWei

[ZJCTF 2019]NiZhuanSiWei 文章目录 [ZJCTF 2019]NiZhuanSiWei掌握知识解题思路代码分析1代码分析2 关键paylaod 掌握知识 ​ data伪协议和php伪协议的使用,反序列化,代码审计,文件包含,file_get_contents函数绕过 解题思路 打开题目链接&…

Scala第十八章节

Scala第十八章节 scala总目录 文档资料下载 章节目标 掌握Iterable集合相关内容.掌握Seq集合相关内容.掌握Set集合相关内容.掌握Map集合相关内容.掌握统计字符个数案例. 1. Iterable 1.1 概述 Iterable代表一个可以迭代的集合, 它继承了Traversable特质, 同时也是其他集合…

【进阶C语言】排序函数(qsort)与模拟实现(回调函数的实例)

本章大致内容目录: 1.认识回调函数 2.排序函数qsort 3.模拟实现qsort 回调函数为C语言重要知识点,以函数指针为主要知识;下面介绍回调函数的定义、回调函数的库函数举例即库函数模拟实现。 一、回调函数 1.回调函数定义 回调函数就是一…

[MIT6.824] Lab 3: Fault-tolerant Key/Value Service

[MIT6.824] Lab 3: Fault-tolerant Key/Value Service 目标 通过在Lab2中实现的Raft库,构建一个可容灾的KV数据库。 需要实现的服务有三种操作: Put(key, value) key和value都是string,put设置指定key的value. Append(key, arg) 将arg append到key对…