js和vbs区别比较

vbs是出自vb,javascript用的是java的语法,这儿就不说了!


vbs不需要区分大小写,而js需要区分大小写,这点相信是很多人讨厌js的原因,我以前也是很讨厌js的这点,不过学习vbs一段时间后,做网页都用vbs,发现很多地方不如意,渐渐的就习惯了js的语法。

js也可以像vbs一样独立存在:

//js
var fso=new ActiveXObject("scripting.filesystemobject")
fso.createfolder("2/")

'vbs
set fso=createobject("scripting.filesystemobject")
fso.createfolder("2/")

上面两个的结果都是一样的,运行后创建一个名为“2”的文件夹。

像wscript.shell,wscript.Arguments等等对象,js都能调用,不过js用的是 new ActiveXObject,而vbs用的是 set 而已。

正则表达式,这东西太繁复了,不过正则表达式确实很强大!
本来是js的东西,vbs也能调用,vbs调用时,还是用了一个 new 的!
Set regEx = New RegExp
不过js用起来比较方便,vbs要麻烦一点。
我用这东西比较机械,还不是很熟练,在这儿就不多说了。

但是,vbs的默认对象,像wscript,js就不能调用了。

还有,集合,vbs和js有点不一样

'vbs
str="
set fso=createobject("scripting.filesystemobject")
set ds=fso.drives
for each d in ds
str=str+d.driveletter+chr(13)
next

//js
var str=""
var fso=new ActiveXObject("scripting.filesystemobject")
var ds=new Enumerator(fso.drives) //集合的定义
for (; !ds.atEnd(); ds.moveNext())
str=str+ds.item()+"/b"
}
alert(s)

抛开vbs和js的来源和语法不谈,其实vbs和js在很多地方还是大同小异的。vbs能做到,js大多数也能做到,不过有的只是模拟效果,稍微麻烦一点而已。反之,js能做到的,vbs大多数也能做到。


再说嵌入到html

<script language=vbsript>
'vbs
</script>

<script langage=javascript>
//js
//不用language属性,或者用javascript加上版本也行,像javascript1.2
//如果一个页面js,vbs混杂,最好加上language属性
</script>

vbs的on error resume next很强大,大家觉得很方便,尤其是做网页时,状态栏不显示错误,呵呵!
其实js也行,直接 window.οnerrοr=return true 就行,和 on error resume next 差不多

vbs在html中,有所谓的“事件驱动”,这玩意儿js就没有

<script language=vbscript>
funtion object_event
end function
</script>

object_event,即对象加“_”加事件,如window_onload表示窗体被加载;a_ondblclick表示a对象被双击,不过要事先用id定义个a。

还有,在html中很多东西用js比较方便:

<body onselectstart="return false"><!--禁止选择-->
οncοntextmenu="return fasle" 禁止右键菜单
οncοpy="return false" 禁止复制

用vbs就麻烦点了。不过也有一些东西,用vbs要比用js方便。

说到这儿,再说说eval函数,js和vbs中都有这个函数,这个函数功能很强大。

vbs中,eval用来检验一个表达式是否为真,返回bool值:trur或false。js中也有这个功能。

eval还有一个功能,把字符串转或为对象,(独立的vbs不行)

<!--js+html-->
<div id=a3 οnclick=ch()>单击改变内容</div>
<script language=javascript>
function ch(){
eval("a"+3).innerText="a3对象的innerText"
}
</script>


'vbs(html中)
for zz=0 to document.links.length-1
document.links(zz).className=""
next
document.links(eval(amount)).className="a"

这段的意思检测所有的超链接,没检测一次并且把第amout个超链接的class属性改为a,这段是我用html写的中华诗词中的一段,能让所有的超链接中除了被点的那个是一种颜色外,其余的所有超链接又都是另一种颜色。

不仅如此,eval还能把字符串转化成计时器:setTimeout(),setInterval()

下面的例子也是经常被使用

<span id=a1 οnclick=f(this) class=a>1</span>&nbsp;&nbsp;
<span id=a2 οnclick=f(this) class=a>2</span>&nbsp;&nbsp;
<span id=a3 οnclick=f(this) class=a>3</span>&nbsp;&nbsp;
<span id=a4 οnclick=f(this) class=a>4</span>&nbsp;&nbsp;
<span id=a5 οnclick=f(this) class=a>5</span>&nbsp;&nbsp;

<style>
.a{color:red;cursor:hand;}
#a1{color:blue;}
</style>

<script>
function f(o){
for (i=1;i<=5;i++){
eval("a"+i).style.color="red"
}
o.style.color="blue"
}
</script>

总之,vbs和js各有所长,哪个方便时就用哪个!

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值