周星星在唐伯虎点秋香里说“谁说没有枪头就捅不死人?”,嗯,其实套用过来用在这篇文章里也非常好。谁说没有浏览器就跑不起来javascript?
首先,多的不说,看图,本地文件,js和wsf文件2个。我们没有用浏览器哈……

test.wsf中的代码:分析一下其实很好理解,构建一个windows系统的脚本文件.wsf。然后包含一个外部js文件,执行使用vbs和wsh的对象和方法,调用包含的js文件的定义函数getfreespace();然后输出结果使用wsh的echo方法。

fso中的js代码,启用ax控件中的sf对象,获得本地磁盘可用空间返回字符串。

执行后的结果,啊哈,成功执行。

看到这里你该恍然大悟了吧?啊?javascript还可以这么用呢?确实,很多人,都不太了解这是怎么一回事。其实道理不难理解,javascript说白了,一个脚本语言,而这里上面的例子是调用的微软的jscript和wsh对象完成的,中间引用了一个外部js脚本。唔,别晕。下面看这个解释词条,它列出了我们所理解的各种javascript概念:
javascript脚本语言:一种语言的统称,由ECMAScript262规范,涵盖core javascript,jscript,actionscript等,而非特指其一。
浏览器javascript:包括DOM,BOM模型等在内的对象体系支持的浏览器javascript脚本,不特指具体脚本环境(因为有太多的浏览器内核也就是javascript解释引擎),是目前最广泛的应用,也叫做cliet-side javascript。
corejavascript:也叫javascript,主要是指Netscape/Mozilla系列的浏览器下的javascript,是该语言的主要规范之一。
Jscript:也包含上面那个小破例子中的AX控件对象,泛指微软开发的javascript比如支持的浏览器IE系列。
通过上面的解释,我觉得你该明白了,也当你明白了,javascript是有多少种称呼和版本品牌和叫法啊,完全是历史的原因造成的。不同公司,不同环境,不同宿主对象的结果。幸好,最后他们都归于一个标准EMAC262,基于他的语法和规则,我们的到了各种不同演变后的javascript。
嗯,javascript这个动态脚本语言,他需要一个宿主对象的支持才可以运行,也就是一个语言的运行环境,在浏览器里是windows窗口对象还有dom提供的xml节点对象等,然后使用他们各自浏览器提供的javascript解释器解释翻译执行。
群里今天还在讨论了这个问题,javascript引擎技术。嗯好吧,我也google到了,特此总结下常用的几款:
spiderMonkey(C语言编写应用在Mozilla下),javascriptCore(C++编写运行在safari下),Rhino(java编写),JScript(windows环境以及IE)等。———(其实actionscript应该也算是另类中的一个)
啊哦,说到这里,那么至少我们的javascript离开了我们的可爱的浏览器,他还可以在哪运行呢?嗯,那就是有它解释器的环境下运行了,比如java平台环境下的Rhino,比如我们的windows系统,如本文最开始的WSH例子。他们都属于各自的不同属性和方法,但是本质都还是符合EMAC规范的javascript。
噢,噢,噢。绕了一大圈。好了,这说了半天,javascript还是一个脚本语言啊。嗯哼,对了,他就是一门需要宿主解释器,轻型灵活,弱面向对象的脚本语言。(但看过此文后您可以把“浏览器下”这4个字儿去掉了~)
最后给出一个windowsscripthost手册并借用Michael和我的一段经典语QQ聊天记录结束本文:
Faquir 21:22:26
现代语言基本都要你所说的宿主
Faquir 21:22:33
JAVA要JVM & JDK
Faquir 21:22:39
.NET要framework
小爝 21:22:44
对。。
Faquir 21:22:48
由此可见,
小爝 21:22:52
咋?
Faquir 21:22:54
js与.NET,JAVA平起平坐
Read More
Comments