一般我们都知道直接在任何方法外面使用var关键字声明的变量就是全局变量,但是还有另外两种方法可以定义全局变量。全局变量是存在于window对象下的对象,我们使用在firefox下按F12打开firebug,然后点击“脚本”,在firebug右侧的window下必须可以看到的对象,才是真正的全局对象。
一种是在任何方法任何地方中定义的不带 var 关键字的变量。
而是直接使用window对象来定义全局变量
我们可以测试一下:
<script type="text/javascript">
// 定义全局变量的三种方法
var globalVar1 = "globalVar1 ";
globalVar2 = "globalVar2";
window.globalVar3 = "globalVar3";
function fun(){
globalVar4 = "globalVar4";
}
fun(); // 调用fun()函数
</script>
上面我们就使用三种定义全局变量的方法,定义了4个全局变量。
注意,如果fun()函数没有被调用,那么globalVar4就不是全局变量。
我们一定要注意类似于在fun()函数中也会定义全局变量。防止这种无意思的全局变量的存在。
个人感觉使用window定义全局变量最好。
分享到:
相关推荐
当你在JavaScript中声明一个变量或函数而没有使用任何特定的作用域(如`var`或`function`关键字)时,它们默认会被附加到全局对象上。在浏览器环境中,这个全局对象通常是`window`;而在Node.js中,它是`global`。 ...
在JavaScript编程中,全局对象是一个非常重要的概念,它为JavaScript程序提供了一个可供访问的全局命名空间。全局对象包含了一些基本的属性和方法,使得开发者可以在任何地方方便地访问这些资源。本文将详细介绍...
在JavaScript中,全局变量是一种可以在整个程序中任何地方访问的变量,它们的作用域跨越函数和代码块。本篇文章将深入探讨JavaScript声明全局变量的几种方法以及如何访问这些变量。 1. **全局变量的声明方式** - ...
在JavaScript中,全局对象是一个特殊的存在,它包含了所有全局变量和函数,以及一些预定义的属性和方法。在标题和描述中提到的“JavaScript定义全局对象的方法”,实际上是在讨论如何创建和使用全局变量和函数。 在...
- 如果对象中有循环引用(即一个对象引用了另一个,而另一个又引用了第一个),`JSON.stringify()`会抛出一个错误。 - 当使用`replacer`函数时,可以通过返回undefined来排除某个属性不被包含在JSON字符串中。 ### ...
1. **全局对象Global**: JavaScript中的全局对象提供了许多内置函数,如`Math`(数学运算)、`Date`(日期和时间操作)、`JSON`(JSON解析和序列化)等。全局变量默认会成为全局对象的属性。 2. **对象创建与原型...
在V8引擎中,全局对象是执行上下文的一部分,当执行新的JavaScript脚本时,V8会创建一个新的全局执行上下文,并在这个上下文中初始化全局对象。这个对象在每个独立的执行环境中都是独一无二的,这意味着在浏览器的多...
JavaScript中的Math对象的与众不同之处在于,它是一个全局对象。在使用Math对象之前,既不需要将一个变量声明为Math对象,也不需要定义一个新的Math对象,JavaScript将自动地创建好Math对象,我们只须直接使用它即可...
Math对象是JavaScript中的一个全局对象,它提供了一系列的数学常数和函数,用于执行各种数学计算。这些方法包括基本的算术运算、三角函数、指数和对数运算等。本文将详细探讨Math对象提供的常用方法,并通过示例代码...
需要注意的是,在提及这些类型时,并非指代JavaScript中的全局对象如`NaN`、`Boolean`、`Number`、`String`等,而是指这些数据类型的名称。 #### 三、对象 对象是JavaScript中最基础且重要的数据结构之一,它是一...
函数在JavaScript中是一种特殊的对象类型,可以作为值赋给变量、作为参数传递给另一个函数、或作为其它函数的返回值。函数对象可以具有arguments、caller和callee等属性。 在JavaScript中,我们可以使用函数的...
2. **导出C函数**: 要将C函数导出到JavaScript,你需要首先定义C函数,然后使用`duk_push_c_function()`将其转换为Duktape函数指针,最后使用`duk_put_prop_string()`将其绑定到全局对象的一个属性上。这样,...
- **继承**:JavaScript中可以通过设置一个对象的原型为另一个对象来实现继承。此外,ES6引入了`class`语法糖,使得继承更加直观。 ```javascript class Student extends Person { constructor(name, age, grade...
JavaScript有全局对象、内置对象、宿主对象等层次结构,如DOM(文档对象模型)和BOM(浏览器对象模型)。 8.3.2 客户端对象层次介绍 客户端对象层次主要涉及浏览器提供的对象,如window、document等。 8.3.3 ...
原型(prototype)是JavaScript中实现继承的关键,每个函数都有一个prototype属性,这个属性指向一个对象,该对象的属性和方法会被实例继承。当你创建一个新对象时,如果没有指定构造函数,那么这个新对象就会从...
这意味着每个对象都有一个`__proto__`属性,指向它的构造函数的原型对象。通过原型链,对象可以访问并继承其构造函数原型上的属性和方法。 2. **函数作为一等公民**: 在JavaScript中,函数不仅是可调用的数据类型...
实际上是在全局对象上创建了一个名为a的属性,其值为10。 2. 函数上下文中的变量对象:当一个函数被调用时,一个活动对象(Activation Object, AO)会被创建,它作为变量对象来使用。活动对象除了存储变量和函数...
全局对象在JavaScript中是特殊的,因为它实际上并不作为一个独立的实体存在,而是通过其方法如`isNaN()`、`isFinite()`、`parseInt()`和`parseFloat()`来间接访问。`encodeURI()`和`encodeURIComponent()`用于编码...