2012-01-14 49 views
2

我正在编写一个小型控制台应用程序,它是具有不良参数的一组批处理文件的智能前端。JScript.NET vs ECMA

我决定使用JScript.Net来做这件事,虽然它可能比C#更糟糕,因为我发现它的灵活性非常有用,而且它比C#更感觉RAD有点像这种事情。

我现在的问题是无法在网上找到足够的资源,显示JScript.Net!= ECMA何时进入螺母和螺栓级别。我必须时刻保持警惕,并且实际上如何实施有点令人费解。

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

Edit--

具体而言,我想要的资源,这将阻止我写这样的测试 - ,它可以编译和运行,尽管古怪的synax事情:

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 
// 

你看?

而且

// 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 
+3

JScript.NET已过时。它会越来越难找到有关它的资源。我不会开始任何新的发展。 – 2012-01-14 14:39:52

回答

2

当你在Windows上,只需要运行你的js文件与cscript.exe:此是来自Microsft的Windows脚本宿主(WSH)环境,它使用其他Microsoft实现(目前标准的Windows 7系统在IE9中有3个:JScript,JScript.NET和JavaScript)。 WSH中的JScript是在IE8以前使用的JScript,因此可能具有更少的.NET-ISM。

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

-1

你的意思是ECMAScript的? ECMAScript是一种标准的脚本语言,由ECMA标准化,并且JScript.Net是由Microsoft(实际上基于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

+3

我很欣赏你的意见,但是真的 - 我是这么说的,原因是*不是*,我无法找到关于我在MSDN上编程的语言的信息。在那里,dunnit。对不起,听起来很不公平,但严重吗? 我正在寻找从这个环境的经验中得到的实际问题,而不是它在收缩包装下说的。 – 2012-01-14 14:19:04