Solved

Is JScript a 'first class' equal peer to VBscript in NON-dotNet ASP?

Posted on 2003-11-14
6
353 Views
Last Modified: 2006-11-17
I need to write a few new scripts for an ancient app running in a pre-.NET ASP environment. To tell the truth, I hate VBscript and Visual Basic syntax in general with a passion. JScript isn't much better, but at least it uses halfway civilized syntax (I happen to like punctuation better than verbosity. Ok, and I keep forgetting the )@$*( 'Then' after 'If' statements... grrr....).

Anyway, is JScript TRULY an equal peer to VBscript insofar as pre-.NET ASP is concerned?  Are all the objects available to VBscript (Server, Response, etc.) available to JScript? Are there any innate capabilities of VBscript relevant to ASP that simply aren't available (or are massively kludged) in JScript?

I'm assuming the answer is a resounding 'no', but can you mix languages in a single page (using multiple <script language="xxx" runat="server" blocks specifying different languages in different places)? And if you can, do they share a common object space? For instance, can you Dim a String variant in a block of VBscript and assign it a value near the top of the page, then do something with that variable in a block of JScript further down the page? How about complex objects? Say, an object defined using VBscript syntax, possibly created within a VBscript block, then called by a JScript block further down the page?

Is there any good online reference to using JScript in the context of pre-.NET ASP? I've been searching for over an hour, but everything I keep finding is either

* an article about using VBscript that just happens to contain the word "JScript" somewhere

* an article about client-side JScript within IE

* An article about something .NET related that, like the mountain of VBscript articles, just happens to mention JScript in passing.
0
Comment
Question by:jskubick
  • 5
6 Comments
 
LVL 28

Expert Comment

by:sybe
Comment Utility
I agree that JScript is a nicer language to work with then VBScript. In fact in older ASP versions, JScript had more possibilites then VBScript (although there probably also were some things in VBScript that weren't possible in JScript).

In my opinion you can use Jscript just as well as VBScript in ASP.
It it also nice to mix languages if needed. You can even use perlscript, if you install it.
Mixing languages is no problem, they all will be have access to public variables.

There one thing that is really different in VBScript and JScript: arrays. A VBScript and a JScript array are completely different things. Now that I talk about arrays: VBScript has truly multi-dimensional arrays, while JScript hasn't.

The thing is that most ASP pages are written in VBScript, and if you want advice, then it's easier to get in in VBScript. I believe however that most ASP programmers als have quite a knowledge of client-side javascript (look at the expert-rankings here on EE, you'll see that most high ranked ASP maybe are not top-javascript experts, but have a considerable amount of point in the javascript area).

If you hate to program in VBScript, there's really nothing against using JScript from the point of possibilites.


0
 

Author Comment

by:jskubick
Comment Utility
Is there a JScript equivalent to
<% Option Explicit %> ?

How about sharing variables? I assume a variable assigned a value of null by vbscript will have a value of null when checked by JScript, but does vbscript's 'empty' map directly to jscript's 'undefined'? Aside from not trying to share arrays, are there any other not-necessarily-obvious things that will cause JScript to crash and burn, even though the same thing theoretically works from vbscript? Situations where one language expects something to pass by value where the other expects it to pass by reference, perhaps?
0
 
LVL 28

Accepted Solution

by:
sybe earned 125 total points
Comment Utility
I don't know the answers to your question. the only way would to try it probably.

VBScript functions and Subs pass variables by default ByRef. To tell the truth I don't know about JScript.
VBScript function can have ByValue or ByRef before the parameter. I don't think JScript can.

<%
Function Demo(ByVal intIn)
    Demo = intIn + 1
End Function

Function Demo2(ByRef intIn)
    Demo2 = intIn + 1
End Function
%>

Somehow I sense that you are afraid to use JScript in ASP. I don't think that there is any reason for that. If you mix script-languages, then mind the arrays. Although JScript even has a VBARRAY:

varName = new VBArray(safeArray)
Arguments
varName
Required. The variable name to which the VBArray is assigned.
safeArray
Required. A VBArray value.

Example
The following example consists of three parts. The first part is VBScript code to create a Visual Basic safe array. The second part is JScript code that converts the VB safe array to a JScript array. Both of these parts go into the <HEAD> section of an HTML page. The third part is the JScript code that goes in the <BODY> section to run the other two parts.

<HEAD>
<SCRIPT LANGUAGE="VBScript">
<!--
Function CreateVBArray()
   Dim i, j, k
   Dim a(2, 2)
   k = 1
   For i = 0 To 2
      For j = 0 To 2
         a(j, i) = k
         document.writeln(k)
         k = k + 1
      Next
      document.writeln("vbCRLF")
   Next
   CreateVBArray = a
End Function
-->
</SCRIPT>

<SCRIPT LANGUAGE="JScript">
<!--
function VBArrayTest(vbarray){
   var a = new VBArray(vbarray);
   var b = a.toArray();
   var i;
   for (i = 0; i < 9; i++)
   {
      document.writeln(b[i]);
   }
}
-->
</SCRIPT>
</HEAD>

<BODY>
<SCRIPT LANGUAGE="JScript">
<!--
   VBArrayTest(CreateVBArray());
-->
</SCRIPT>
</BODY>


0
Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

 
LVL 28

Expert Comment

by:sybe
Comment Utility
A very big advantage of JScript is the ability to create enumerated script classes. In VBScript you can't do that.
0
 
LVL 28

Expert Comment

by:sybe
Comment Utility
Jscript can measure milliseconds, VBScript has a minimal time-unit 1000/256 second.
0
 
LVL 28

Expert Comment

by:sybe
Comment Utility
JScript has optional parameters to functions, VBScript hasn't
0

Featured Post

Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

Join & Write a Comment

Suggested Solutions

Hello, all! I just recently started using Microsoft's IIS 7.5 within Windows 7, as I just downloaded and installed the 90 day trial of Windows 7. (Got to love Microsoft for allowing 90 days) The main reason for downloading and testing Windows 7 is t…
I was asked about the differences between classic ASP and ASP.NET, so let me put them down here, for reference: Let's make the introductions... Classic ASP was launched by Microsoft in 1998 and dynamically generate web pages upon user interact…
It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.
This video gives you a great overview about bandwidth monitoring with SNMP and WMI with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're looking for how to monitor bandwidth using netflow or packet s…

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now