学习 WSH 的理由
[UMU WSH 教程](1) Hello WSH
[UMU WSH 教程](2)输入
目前,UMU 眼中 C 是最标准的编程语言,所以遇到任何语言都要拿来和 C 比较一下!当然 ASM 是例外,因为 ASM 是标准他老爸!
1、VBS 不区分大小写,JS 有区分,UMU 觉得好的语言就应该区分大小写,比如说 UMU 眼中的标准—— C 语言,所以 VBS 在这点上就不如 JS。
2、VBS 的 And 运算符和 C 语言的 & 一样,而且 VBS 没有和 C 语言的 && 一样的运算符,JS 则同时包含 && 和 &!同理,VBS 里也只有对应 | 的 Or,没有 ||,JS 有 || 也有 |。
UMU 用 Logic.VBS 来测试:
If 0 = 1 And vbOK = MsgBox("这里会被执行!", vbOKCancel, "[UMU WSH 教程](3)与 C 语言不一样的语法") Then
MsgBox "这里不会被执行!"
End If
If 0 = 0 Or vbOK = MsgBox("这里会被执行!", vbOKCancel, "[UMU WSH 教程](3)与 C 语言不一样的语法") Then
MsgBox "这里一定会被执行!", vbInformation, "[UMU WSH 教程](3)与 C 语言不一样的语法"
End If
如果用 C 语言改写,并用 && 替换 And,|| 替换 Or,则 if 里的对话框是不会被执行的,而在本例里会被执行。
3、在 C 语言里,break 则能跳出一层循环,如果要跳出更多层只能用 goto,C++ 我没试过,大概也一样不行,Java 似乎可以,JS 的话,我可以肯定它行!
break.JS,代码如下:
Outer:
for( var i = 0; i < 10; ++i )
{
for( var j = 0; j < 10; ++j )
{
break Outer;
WScript.Echo( 'Inner' );
}
WScript.Echo( 'Outter' );
}
WScript.Echo( 'End' );
上段代码运行后只会看到一个 End 对话框。
4、再来,VBS/JS 都不支持用 goto 随意跳转,VBS 里 goto 唯一合法的用法是:On Error GoTo 0;JS 中 goto 是为将来预留的关键字,在 WSH 5.6 版本中还没什么用。
当然和 C 不一样的语法很多,这里只是举几个比较有代表性的。