首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JScript.NET vs ECMA

JScript.NET vs ECMA
EN

Stack Overflow用户
提问于 2012-01-14 16:52:47
回答 2查看 598关注 0票数 3

我正在编写一个小的控制台应用程序,这是一个智能前端的一组批处理文件与邪恶的参数。

我决定在这方面使用JScript.Net,尽管与C#相比,它可能是不明智的,因为我发现它的灵活性很有用,而且对于这种事情,它感觉更像是RAD而不是C#。

我遇到的问题是,在网上找不到足够的资源,显示出JScript.Net != ECMA是如何深入到具体细节的。我必须时刻警惕这些问题,而事情实际上是如何实现的有点令人费解。

有没有人有很好的链接到这个主题的信息?

编辑--

具体地说,我想要一个能阻止我编写这样的测试的资源--它可以编译并运行,尽管synax中发生了一些奇怪的事情:

代码语言:javascript
复制
var int16:Int16=0;
w_(typeof int16);                // =number
//w_(int16.getType());    //runtime error function expected
//
var ds:String="dot,net,class";
w_(typeof ds);                   // =string
var da1:Array=ds.Split(',');  // proper case
var da2:Array=ds.split(',');  // camel case !works too!
w_(typeof da1);                 // =object
var ds1_:String=da1.join(',');// NOT proper. "Join" is **runtime error**
var ds2_:String=da2.join(',');// NOT proper. "Join" is **runtime error**
w_('ds1_:'+ds1_); // prints dot,net,class
w_('ds2_:'+ds2_); // prints dot,net,class
//
var js="jscript.object";
w_(typeof js);                   // =string
var ja1=js.split(','); // camel case
var ja2=js.Split(','); // proper case
w_(typeof ja1);                   // =object
var js1_=ja1.join(',');// camel
var js2_=ja2.join(',');// camel
w_('js1_:'+js1_);  // prints jscript.object
w_('js2_:'+js2_);  // prints jscript.object
//
// and then
//
var dss:System.String="dot,net,sys,class";
w_('dss:'+(typeof ds));                   // =undefined !!!
//w_('dss:'+dss.getType());    //runtime error function expected
var daa:Array=dss.Split(',');// proper case  ???? what is this object type!
var daa2:Array=dss.split(',');// camel case  ???? what is this object type!
w_(daa.join(','));       // prints dot,net,sys,class
w_(daa2.join(','));       // prints dot,net,sys,class
//

你看?

也是

代码语言:javascript
复制
// in library 'package' JLib_Test.jsc
import System;
import System.IO;
import System.Diagnostics;
import System.Text;
import System.Drawing;
package JLib_Test{
  class Test{
    public function Test(){
      //var re=new RegExp('^s$','gi'); // **runtime error** !
    }
  }
//
// in main 'exe' module
var re=new RegExp('^s$','gi'); // no errors
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-14 22:47:20

在Windows上,只需使用cscript.exe运行.js文件:这是微软的Windows Scripting Host (WSH)环境,使用其他微软实现(标准Windows7系统目前有3个:IE9中的JScript、JScript.NET和JavaScript )。来自WSH的JScript是在IE中使用的,直到IE8,因此可能没有太多的.NET-isms。

请注意,您可能会在I/O和参数解析方面遇到问题,因为.NET和WSH中的API是不同的,所以我建议使用一个通用的API包装器。

票数 2
EN

Stack Overflow用户

发布于 2012-01-14 18:09:24

你是说ECMAScript吗?ECMAScript是由ECMA标准化的标准脚本语言,JScript.Net是微软公司(实际上是基于JScript)创建的用于.Net平台的EMCAScript的“实现”。这意味着JScript.Net支持所有ECMAScript规范:http://msdn.microsoft.com/en-us/library/49zhkzs5(v=vs.71).aspx

还为用户提供了一些额外的非ECMA特性:http://msdn.microsoft.com/en-us/library/894hfyb4(v=vs.71).aspx

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8861164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档