好的,所以我正在努力学习JavaScript,以便我可以编写好的,干净的客户端代码,但每当我认为我正在取得进展时,有些东西会让我陷入困境!
我想知道:
JavaScript,ECMAScript和JScript有什么不同?
我应该把重点放在学习上?
如果这些是版本化的,我应该支持哪个版本?
是否有必要/读取的真正好的参考(网络/书籍等)?
我如何确保我所写的内容符合所有主流浏览器(IE,FF,Safari,Chrome,Opera等)?
最重要的......是否有核心对象(数组,数字等)的参考,所以我知道已经实现了什么以及我自己需要做什么?
谢谢.
我需要为WinXP编写一些脚本来支持Big Financial Corp.的一些分析师.请帮我确定哪种类型的Windows脚本最适合我的需求.
我的需求看起来很简单(无论如何对我来说)
从我对我的选择的匆忙审查,看起来我的选择
我没有时间学习或深入研究这些(或者其他任何可用的标准WinXP安装).我迫切需要尽快选择和破解一些东西.
(目前的危机是需要运行给定的应用程序,传递几个日期参数).
一旦目前的危机结束,就会有更多这样的要求.
帮助我Obi Wan Stackoverflow ...你是我唯一的希望.
[edit]我目前的技能包括Perl,Javascript和Java,所以我最喜欢使用类似的东西
[编辑]好的.我将尝试在JScript中编写WSH文件.谢谢大家......一旦事情在这里安定下来,我会让你知道它是怎么回事(并想出一个接受答案).
[编辑]最终都解决了.感谢快速响应的人们.这是我给用户的内容
<job id="main">
<script language="JScript">
// ----- Do not change anything above this line ----- //
var template = "c:\\path\\to\\program -##PARAM## --start ##date1## --end ##date2## --output F:\\path\\to\\whereever\\ouput_file_##date1##.mdb";
// Handle dates
// first, figure out what they should be
dt = new Date();
var date1 = stringFromDate(dt, 1);
var date2 = stringFromDate(dt, 2);
// then insert …Run Code Online (Sandbox Code Playgroud) 我正在用JScript创建这个HTA应用程序,它写入一个BAT文件并在cmd之后打开它.
如果我从Windows手动打开创建的BAT文件,它应该像它应该的那样工作.
当我通过HTA打开它时,文件打开但只输出Echo并暂停.
请记住,我在编程时非常新.
这是JScript.
// Write the Bat file
// When run from HTA all I get is the "Echo Done" and "Pause"
// When I run from Windows without HTA, all of it works.
function writeBat() {
var fso = new ActiveXObject("Scripting.FileSystemObject");
var s = fso.CreateTextFile("C:/test/test.bat");
s.WriteLine('@echo off');
s.WriteLine('set output=C:/test/new/');
s.WriteLine('FOR %%a in (*.mkv) DO ("C:/Program Files/MKVToolNix/mkvmerge.exe" -o "%output%%%~na.mkv" "%%a")');
s.WriteLine('echo Done.');
s.WriteLine('pause');
s.Close(); }
// Run the Bat file.
function runBat() {
var MyObject = …Run Code Online (Sandbox Code Playgroud) 多年来,我一直在Windows脚本中的.JS文件和.WSF文件中使用JavaScript,但是我发现,当我将某些方法放到在网页外部执行的脚本中时,无法识别某些方法。在网页上的脚本中有效的代码。我知道不同的浏览器支持不同的JavaScript版本,MSDN的页面描述了Internet Explorer和Edge浏览器版本支持哪些功能和方法:
https://docs.microsoft.com/zh-CN/scripting/javascript/reference/javascript-version-information
但是并没有说明Windows脚本支持哪些方法。
Windows脚本中支持的JavaScript版本是否取决于Windows版本,计算机上安装的Internet Explorer版本还是其他因素或因素组合?JavaScript程序中是否有一种方法可以检测正在执行哪个JavaScript版本?
长问题
首先,我知道ECMA Script是标准的,而JavaScript和JScript是实现。我了解到这三个指标都有自己的规格,并且有很多引擎,解释器和实现,但是我的具体问题是:
假设为这三个实施了一个完美的解释器和引擎,那么您在一个中可以做什么而您却不能在另一个中做,或者哪个会与其他两个有不同的作用?
我知道这是一个广泛的问题,但是由于两种语言(JScript和JavaScript)均源于规范(ECMAScript),因此实际差异应该可以忽略不计。
同样,我不是在谈论跨浏览器的兼容性(IE8和IE9使用了不同的引擎,这些引擎对JScript的解释不同,并且标准随时间而改变),而是纯ECMA5,JavaScript(如果有正式标准,我想最接近的是W3C或MDN以及JScript(显然在MSDN上维护)(参见图)。
笔记:
这不是该问题的重复版本,该问题已经过时五年了,它处理术语的定义,而不是语言的应用,或者该问题再次说明JavaScript和JScript是ECMAScript的方言,但不是进行任何功能上的区别。
这个问题是最接近的,但是我特别希望开发人员期望X和获得Y时应注意的技术陷阱。一个很好的例子就是这个问题,下面的代码:
// just normal, casual null hanging out in the sun
var nullA = null;
// query for non existing element, should get null, same behaviour also for getElementById
var nullB = document.querySelector('asdfasfdf');
// they are equal
console.log(nullA === nullB);
// false
nullA instanceof Object;
// will throw 'Object expected' error in ie8. Black magic
nullB instanceof …Run Code Online (Sandbox Code Playgroud) 我正在调查我的范围之外的一些代码,这些代码是用我以前从未见过的风格编写的.我试图了解以下属性包的内部工作原理:
二传手:
props.Property(name) = val;
Run Code Online (Sandbox Code Playgroud)
消气:
val = props.Property(name);
Run Code Online (Sandbox Code Playgroud)
你需要实例化setter以便如上所述运行?
编辑:简化程度较低,此代码在框架内的BrowserWindow上成功运行(类似于手机环境).
var UI =
{
ready: function(oProps)
{
try
{
if (oProps)
{
window.external.Property(UI.FrameWidth) = '1000';
window.external.Property(UI.FrameHeight) = '900';
}
window.external.Ready();
}
catch (e) { }
}
};
Run Code Online (Sandbox Code Playgroud)
提前致谢,
jscript ×6
javascript ×3
batch-file ×2
scripting ×2
windows ×2
ecmascript-5 ×1
hta ×1
html ×1
properties ×1
vbscript ×1
wsh ×1