`
yanghongxia9
  • 浏览: 115065 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

js全局变量

 
阅读更多
这里所说的JavaScript指浏览器环境中的包括宿主环境在内的。第一种是ECMAScript Global Object,第二种是宿主环境(Host)下的全局对象/函数。

一、核心JavaScript内置对象,即ECMAScript实现提供的不依赖于宿主环境的对象。
这些对象在程序执行之前就已经(实例化)存在了。ECMAScript称为The Global Object,分为以下几种
1, 值属性的全局对象(Value Properties of the Global Object)。有NaN,Infinity,undefined。

2, 函数属性的全局对象(Function Properties of the Global Object)。有eval,parseInt,parseFloat,isNaN,isFinite,decodeURI,encodedURI,encodeURIComponent

3,构造器(类)属性的全局对象(Constructor Properties of the Global Object)。有Object,Function,Array,String,Boolean,Number,Date,RegExp,Error,EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError。

4,其它属性的全局对象(Other Properties of the Global Object),可以看出成是Java中的静态类,可以直接用类名+点号+方法名使用。有Math,JSON。

ECMAScript规范提到这些全局对象(The Global Object)是具有Writable属性的,即Writable为true,枚举性(Enumerable)为false,即不能用for in枚举。ECMAScript有这么一段
Unless otherwise specified, the standard built-in properties of the global object have attributes {[[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true}.

虽然规范提到The Global Object是可以被重写的,但不会有谁去重写它们的。这里仅仅做个测试。

Js代码 
1.NaN    = 11;  
2.eval   = 22;  
3.Object = 33;  
4.Math   = 44;  
5. 
6.alert(NaN);  
7.alert(eval);  
8.alert(Object);  
9.alert(Math); 
NaN    = 11;
eval   = 22;
Object = 33;
Math   = 44;

alert(NaN);
alert(eval);
alert(Object);
alert(Math);

分别取值属性的全局对象, 函数属性的全局对象,构造器(类)属性的全局对象,其它属性的全局对象NaN,eval,Object,Math。结果如下:
IE6/7/8 Firefox/Chrome/Opera IE9/Safari
alert(NaN) 11 NaN
alert(eval) 22 22
alert(Object) 33 33
alert(Math) 44 44

结果可以看出除了NaN在IE9(pre3)/Safari不能被重写外,其它都被重写了。

这里只是列举了四个,感兴趣的可以将以上所有的The Global Object一一测试下。这里想表达的是核心JavaScript内置对象一般是可以被重写的 ,虽然没人这么干
分享到:
评论

相关推荐

    JavaScript全局变量的本质及页面共享问题 -页面.pdf

    JavaScript全局变量的本质及页面共享问题 -跨页面访问变量的问题

    JavaScript全局变量的本质及页面共享问题 -页面

    JavaScript全局变量的本质与页面共享问题是一个重要的编程概念,尤其是在网页开发中。JavaScript是一种广泛使用的脚本语言,它的全局变量在程序中的角色独特,且与页面的生命周期和浏览器环境紧密相关。 首先,我们...

    javascript全局变量说明示例

    看看有帮助,全局变量,与局部变量的差异!

    JavaScript声明全局变量访问方法

    在JavaScript中,全局变量是一种可以在整个程序中任何地方访问的变量,它们的作用域跨越函数和代码块。本篇文章将深入探讨JavaScript声明全局变量的几种方法以及如何访问这些变量。 1. **全局变量的声明方式** - ...

    微信小程序全局变量改变监听的实现方法

    当时想到的就是使用全局变量,在 app.js 中定义好全局变量,点击组件页面时就修改全局变量的值,父页面同样使用全局变量的值,这样一来就可以动态打开/关闭弹出层且传递值了。 下面先看看 app.js 中怎么定义的: ...

    JavaScript实现IFrame子窗口调用父窗口的全局变量

    JavaScript实现IFrame子窗口调用父窗口的全局变量

    javascript全局变量封装模块实现代码

    JavaScript全局变量封装模块是一种编程实践,它旨在减少全局命名空间污染,提高代码可维护性和防止命名冲突。在JavaScript中,全局变量是所有作用域都可以访问的,这可能导致意外的覆盖和错误,尤其是在大型项目中...

    全局变量的控制与修改:在函数中操作全局变量的技巧

    全局变量是编程中一个双刃剑,它为程序提供了极大的灵活性,同时也可能导致代码难以理解和维护。在许多编程语言中,全局变量可以在程序的任何地方被访问和修改。本文将探讨如何在函数中修改全局变量,包括这种做法的...

    浅谈JavaScript的全局变量与局部变量_.docx

    本文将深入探讨JavaScript的全局变量与局部变量。 首先,我们要明白JavaScript的作用域划分标准。不同于其他一些语言,JavaScript的作用域不是基于代码块(如if、while、for等),而是基于函数(function block)。...

    JS全局变量和局部变量最新解析

    在JavaScript编程中,理解和掌握全局变量与局部变量的概念至关重要。全局变量在整个脚本或函数作用域内都可访问,而局部变量只在其所在的函数内部有效。本文将深入解析这两种变量的特性,并通过实例代码来演示它们的...

    uni-app 全局变量的几种实现方式代码示例.zip

    uni-app是基于Vue.js构建的多端开发框架,因此其全局变量的实现方式也深受Vue的影响。下面我们将详细探讨几种在uni-app中实现全局变量的方法,并以代码示例进行说明。 1. **Vuex** Vuex是Vue.js的一个状态管理库,...

    超全面javaweb教程28天day2- 22 js的全局变量和局部变量

    超全面javaweb教程28天day2-_22_js的全局变量和局部变量

    详解nuxt sass全局变量(公共scss解决方案)

    以上这种通用的变量抽出来,方便你在其他scss的样式里面调用 比如 li { background: nth($colour,6) } 只存储变量,别放公共的样式进去切记公共的样式 你可以参考我之前的博客那种写法  我直接上案例吧sass_jb...

    Python全局变量-全局变量命名的建议

    Python还被语言流行指数的编译器Tiobe将它被评为最受欢迎的编程语言,20多年来首次将Python置于Java、C和JavaScript之上,真的非常荣幸了. 自从20世纪90年代初Python语言诞生至2022年,它已被逐渐广泛应用于系统...

    JavaScript防止全局变量污染的方法总结

    使用模块化系统,如CommonJS(Node.js)、AMD(RequireJS)或ES6的`import`和`export`,可以有效地管理作用域和依赖关系,降低全局变量的使用。 4. **闭包**: 利用闭包特性,可以在函数内部定义变量,这些变量仅...

    浅谈在vue项目中如何定义全局变量和全局函数

    本篇文章主要介绍了浅谈在vue项目中如何定义全局变量和全局函数,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    js隐式全局变量造成的bug示例代码.docx

    // 全局变量,掩盖了外部作用域的pageNo, 相当于在js顶部写 var pageNo = 1 // 正确的做法应该是使用 var pageNo = 1; // do something... } function paginate(pageNo, pageSize){ window.location.href = ...

    vue2 全局变量的设置方法

    Vue2 全局变量的设置方法 Vue2 中设置全局变量有两种方法:全局变量专用模块和全局变量模块挂载到 Vue.prototype 里。 1. 全局变量专用模块 全局变量专用模块是以一个特定模块来组织管理这些全局量,需要引用的...

    Python全局变量-global关键字修改全局变量

    Python还被语言流行指数的编译器Tiobe将它被评为最受欢迎的编程语言,20多年来首次将Python置于Java、C和JavaScript之上,真的非常荣幸了. 自从20世纪90年代初Python语言诞生至2022年,它已被逐渐广泛应用于系统...

Global site tag (gtag.js) - Google Analytics