Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
JScript .NET
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|Programming language developed by Microsoft}} {{multiple issues| {{original research|date=November 2013}} {{inline|date=November 2013}} {{update|date=June 2015}} }} {{Infobox programming language | name = JScript .NET | paradigm = [[multi-paradigm]] | generation = | year = | designer = | developer = [[Microsoft|Microsoft Corporation]] | latest release version = | latest release date = | typing = [[duck typing|duck]], [[weak typing|weak]], [[dynamic typing|dynamic]] | implementations = | dialects = | influenced_by = [[JScript]], [[ECMAScript]] | influenced = | platform = [[.NET Framework]] }} {{Infobox file format | name = JScript .NET | extension = .js | mime = }} '''JScript .NET''' is a [[.NET Framework|.NET]] [[programming language]] developed by [[Microsoft]]. The primary differences between [[JScript]] and JScript .NET can be summarized as follows: Firstly, JScript is a [[Script (computer programming)|script]]ing language, and as such [[computer program|programs]] (or more suggestively, [[Script (computer programming)|script]]s) can be executed without the need to compile the code first. This is not the case with the JScript .NET command-line compiler, since this next-generation version relies on the .NET [[Common Language Runtime]] (CLR) for execution, which requires that the code be compiled to [[Common Intermediate Language]] (CIL), formerly called Microsoft Intermediate Language (MSIL), code before it can be run. Nevertheless, JScript .NET still provides full support for interpreting code at runtime (e.g., via the <code>Function</code> constructor or the <code>[[eval#JavaScript|eval]]</code> function) and indeed the interpreter can be exposed by custom applications hosting the JScript .NET engine via the VSA{{Technical statement|reason=more on VSA interfaces|date=February 2012}} interfaces. Secondly, JScript has a strong foundation in Microsoft's [[ActiveX]]/[[Component Object Model|COM]] technologies, and relies primarily on ActiveX components to provide much of its functionality (including database access via [[ActiveX Data Objects|ADO]], file handling, etc.), whereas JScript .NET uses the [[.NET Framework]] to provide equivalent functionality. For backwards-compatibility (or for where no .NET equivalent library exists), JScript .NET still provides full access to ActiveX objects via .NET / [[COM Interop]] using both the ActiveXObject constructor and the standard methods of the .NET '''Type''' class. Although the .NET Framework and .NET languages such as [[C Sharp (programming language)|C#]] and [[Visual Basic .NET]] have seen widespread adoption, JScript .NET has never received much attention, by the media or by developers. It is not supported in Microsoft's premier development tool, [[Visual Studio .NET]]. However, [[ASP.NET]] supports JScript .NET. == Language differences == The following are prime examples of language differences between JScript .NET and other .NET languages, including comparisons. === Differences with C# === * JScript .NET does not require a [[Main function (programming)|main()]] [[function (programming)|function]] that the operating system must call directly when executing a JScript .NET application, as such, JScript .NET program flow can be based on global code. * JScript .NET, because of its very loose type checking system can be very easy to learn, since the convention of explicit type declaration is not required at all. * JScript .NET does not require explicit references to the .NET Framework Base Class Library, as certain functions found in earlier versions of JScript are present in JScript .NET (e.g. functions for finding the [[Trigonometric function|tangent]] of an angle for a [[right triangle]]). * JScript .NET is closely linked to [[C syntax]], and is thus very easy to learn for [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]] or [[C++]] developers. * While JScript .NET can be used to create Windows Forms applications, JScript .NET will have some trouble, as delegates can only be consumed in JScript .NET and not created. Thus, custom events are hard to emulate in JScript .NET. === Differences with C++ === * JScript .NET does not require a [[Main function (programming)|main()]] [[function (programming)|function]]. * JScript .NET does not require explicit [[type declaration]] on variables. (In [[C++]], the use of templates and generics can be compared to this, loosely emulated with template specialization, etc.) * JScript .NET also does not require explicit [[Type conversion|type casts]] on variable use in the program. Code used to retrieve a string of characters, but only used for integer numbers can be cast implicitly; the vice versa can be done without error at compile time, but there is a chance of loss of precision or data. e.g.: <syntaxhighlight lang="javascript"> import System; Console.WriteLine("Hello, what's your name?"); Console.WriteLine("Type your name: "); var _name = Console.ReadLine(); Console.WriteLine("Hello, " + _name); </syntaxhighlight> === Differences with Java === * JScript .NET syntax and [[lexical conventions]] are similar to [[Java (programming language)|Java]] in that both are derived from [[C (programming language)|C]]. JScript was originally Microsoft's implementation of [[ECMAScript]], which is more commonly known as [[JavaScript]], though it is unrelated to Java. Thus, users of Java and other C-derived languages will find JScript easier to learn. * JScript .NET allows developers to use [[Variable (computer science)#Typing|untyped variables]], and can sometimes infer their type from their usage to optimize the compiled code. On the other hand, Java requires all variables to be typed. * JScript .NET can add properties and methods to objects in [[Run time (program lifecycle phase)|run-time]], while Java objects always conform to their declared interface. * JScript .NET supports [[global variables]], something Java does not. === Differences with older versions of JScript === * JScript .NET allows developers to declare variables and functions with type information (e.g., '''var x : String;'''), while type information for JScript's variables and functions can not be declared (e.g., '''var x;'''). * JScript .NET scripts are not interpreted, but executed independently. When executed, a JScript .NET application will invoke the [[Common Language Runtime|CLR]]. The CLR will execute the [[Common Intermediate Language|CIL]] instructions without using an interpreter. * JScript .NET can be run without the presence of a browser or another [[Scripting language|scripting engine]] as the compiler can generate standalone [[executable]]s and assemblies. However these still require [[.NET Framework]] to be installed in order to run. * JScript .NET provides access to the .NET Framework BCL ([[Base Class Library]]), providing much more functionality. * JScript .NET is only available as a scripting language for [[ASP.NET]], the technology used to generate web pages; thus, JScript .NET takes a similar role to [[PHP]] and other server-side scripting languages. Internet Explorer, however, is still using only the older JScript engine, so JScript.NET cannot be used to script web pages (or [[HTML Application|HTA]]s or HTCs). In this regard, JScript is much more versatile than JScript .NET. == See also == * [[JavaScript OSA]] β A system-level scripting language for the [[Apple Macintosh]] * [[JScript]] * [[ActionScript]] == Notes == {{Reflist}} == References == * [http://msdn.microsoft.com/en-us/library/3bf5fs13.aspx Getting Started With JScript .NET] * [http://msdn.microsoft.com/en-us/library/ms974588.aspx Introducing JScript .NET] * [https://web.archive.org/web/20091027083329/http://geocities.com/Jeff_Louie/jscript_net_windows_form.htm JScript.NET tutorial and form tutorial] {{Common Language Infrastructure}} {{ECMAScript}} {{DEFAULTSORT:Jscript .Net}} [[Category:.NET programming languages]] [[Category:JavaScript programming language family]] [[Category:Object-based programming languages]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Common Language Infrastructure
(
edit
)
Template:ECMAScript
(
edit
)
Template:Infobox file format
(
edit
)
Template:Infobox programming language
(
edit
)
Template:Multiple issues
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Technical statement
(
edit
)