通过使用全局对象,可以访问所有其他所有预定义的对象、函数和属性。
全局对象不是任何对象的属性,所以它没有名称。
2.内部对象是编写自定义代码所用语言的基础, 该代码基于想象实现自定义功能。
JavaScript 有许多 将其定义为语言的内部对象。本文介绍了一些 最常用的对象,
并简要介绍了它们有哪些功能以及如何使用这些功能。
3.预定义对象这个像是select,Array等这个都是预定义对象。
如果你的 var obj={abc:"123",def:"888" } 在一个函数块(function)里面,obj就不是全局变量哦,所以,如果你确定要obj定义一个全局变量,很简单,这样写:obj={abc:"123",def:"888" }
这样,obj彻底是个全局变量了,哪里都可以用到!
如还有疑问,请联系我哦
楼下说的不对吧!首先:第一个,第一行定义了一个全局的var01,再在方法里定义了一个var01,首先搞清楚什么是var ,这是个变量声明关键字,他出现在哪和你全局不全局没有任何关系!
第一个之所以undefind是因为你将一个变量名定义两次,这个是不允许的,undefind在这里本质是声明错误,内存中不存在,即声明时发生错误,内存没有记录!不存在的东西js统一报错undefind!
第二个:输出1,是因为,js是脚本语言,在执行时按照顺序加载,当执行到write时,var01的值是1,此时还没执行到var01=0,这一步,所以先到先得,取出为1,然后在将var01赋值为0,但是此前js就已经输出了,所以0不会被输出!
关于全局和非全局,等你做久了你其实会发现,把全局叫做作用域会更好,他作用于谁,取决于你在何处声明(var关键字),比如你在页面的js第一行就写一个var var01,那这个var01就只作用于这个页面,那我是不是可以理解,所谓全局是整个程序,那我虽然定义了一个var,却不能延伸到整个程序,那我是不是就可以推翻这个var看起来像全局,但在我的语境中其实并非全局,他只是我这个页面的全局,对于我整个程序来说,这个页面又是个局部!所以用作用域来解释会更好!
如果确实需要区分的话,那你可以这样理解
根据js 的执行顺序是逐行执行的特点,那么在js中,首先出现的var就是全局(顺带一提,function某种程度上等同var,再此与var并论!)所以简单理解就是,方法体外的var都是这个js的全局,方法体内的都是这个方法体的全局(你没听错,是这个方法体的全局!!!!!),但是,方法体是js 的全局,方法体内的var是方法的全局,而var var01的作用域又限定为方法体,所以,方法体内的var相对于js来说只能是局部.
其实这还漏了一个知识点:叫做,方法私有属性,即:方法体内定义的任何属性和方法都只归其父方法所有!!!!!
理解:某个页面的js文件理解为一个大方法,这个方法里又有其他方法,而子方法里的属性因为只归其父,所以父方法的父方法无权调用,父父方法若要调用只有通知其子方法,让子方法通知其子属性并暴露给其父父方法!
但愿你听懂了,哈利路亚!自己都绕了