Javascript
JavaScript, just like Java or VRML, emerged to extend the capabilities of the language HTML and get dynamic web pages
JavaScript is not a programming language itself
It is a scriptor or document-oriented language, such as macro languages that have many word processors. You will never be able to make a program written in JavaScript, you can only improve your website by inserting javascript code in it
Utility of JavaScript
JavaScript serves primarily to improve client/server interface management. A JavaScript script embedded in an HTML document allows you to recognize and treat user-generated events locally, that is, on the client. These events can be the journey of the HTML document itself or the management of a form
For example: when the HTML page is a form that allows access to a phone book, you can insert a script that verifies the validity of the user-provided parameters. This test is done locally and does not need network access
On the other hand, you can also use JavaScript to make several options at once; for example, viewing a video within an HTML document or running a Java applet...
Differences with Java
The main difference between JavaScript and Java is that the latter is a complete programming language. Although they share the same syntax
JavaScript is a language that integrates directly into HTML pages. It has as its main features the following:
- It is interpreted (not compiled) by the client, that is, the source program is executed directly, unlike in the compiled languages, neither object or executable code is generated for each computer on which you want to run that program
- It's object-based. It is not, like Java, an object oriented programming language (OOP). JavaScript does not employ classes or inheritance or other typical OOP techniques
- Your code is integrated into the HTML pages, included in the pages themselves
- You don't need to declare the types of variables to be used, JavaScript performs an automatic type conversion
- Object snaps are checked at run time. This is a consequence of JavaScript not being a compiled language
- It is not possible to work directly with files, or automatically write to the hard drive. That's why JavaScript is said to be a safe language for internet users
Use of JavaScript in an HTML document
Inserting an HTML document is done using the SCRIPT mark using the syntax:
The attributes of this mark are:
- type=“text/javascript”
Specifies the language of the script. This attribute is required in the absence of the SRC attribute - src=url
The SRC attribute specifies the URL of the script to insert into the document. This attribute is optional, because the script can be inserted directly into an HTML document
It can be specified to insert a script of a particular language into a document and whose source code is in a file specified in a particular url. It can be useful if we want several of our web pages to share the same scripts without having to insert them into each one, repeating the code
Here are some points to keep in mind regarding the introduction of JavaScript in an HTML document:
- The script inserted via the brand SCRIPT it is evaluated by the client after the display of the page HTML. The defined functions do not execute immediately, depending on the events associated with the page
- The insertion of the script by using the brand SCRIPT can be placed anywhere in the document HTML but it is recommended to place it in the header, that is, in the area defined by the HEAD. In this way, the script is defined from the beginning of the document, ensuring that the document is visible throughout the document
- If defined, in addition to the script using the SRC, scripts in the document itself, the client will first evaluate the inserted using the SRC and then included in the document
- The URL corresponding to a JavaScript have generally the extension .js
- It is preferable to delimit the scripts inserted into a document-by-document comments HTML to ensure that the contents of the script will not appear on clients that do not recognize the brand SCRIPT. For example:
- The JavaScript language is not case sensitive, except in literal character strings
Finally, comment on another way to introduce scripts in HTML documents, and is to include these scripts as event handlers for some brands, such as image marks, anchors, links, buttons, etc. Let's look at an example:
As you can see, within this mark, as an attribute of this, an event handler is put and after the equal sign and in quotation marks The JavaScript code is included. However, it is also possible to call a function from the HEAD document. This second option is recommended as it is a cleaner and clearer way to write pages. The same result would be achieved as in the previous example:
Versions of JavaScript
The language was invented by Brendan Eich in Netscape Communications. It first appeared in Netscape Navigator 2.0. Which included JavaScript under the name Mocha, when this version of Navigator appeared it was called LiveScript. It was finally renamed JavaScript in a joint ad between Sun Microsystems and Netscape on December 4, 1995
Traditionally, it had been used in HTML web pages, to perform tasks and operations within the framework of the client-only application, without access to server functions. JavaScript was running in the user's browser at the same time as the statements were being downloaded along with the HTML code. What Netscape wanted is for JavaScript to be a scripting language, easy to use and for anyone to use. After 2 years JavaScript became one of the most used tools by web developers, using almost 90% of web developments, even more than Java and Activex
Netscape introduced a server side script implementation with Netscape Enterprise Server, released in December 1994 (shortly after the release of JavaScript for web browsers)
In 1996 Microsoft began to show great interest in competing with JavaScript so it launched the language called Jscript, which was the implementation of ECMAScript, very similar to Netscape's JavaScript, but with some differences in the object model of the browser that would make both versions incompatible. But version 4.0 of Internet Explorer without any problem supported JavaScript version 1.1. However, Jscript was unable to compete directly with Javascript
In mid 1997, Netscape promoted JavaScript and released version 1.2. This new version included new components that gave great potential to the language, but unfortunately this version only worked on the latest version of the Navigator. The authors proposed that it be adopted as the standard of “the European Computer Manufacturer’s Association” (ECMA, with the ECMAScript implementation), which despite its name was not European but international, based in Geneva. Shortly after it was also proposed as an ISO standard
Version 1.3 was a small revision of 1.2, which was included in version 4.07 of the Netscape Navigator
To avoid these incompatibilities, the World Wide Web Consortium designed the Document Object Model (DOM) standard, which incorporates Konqueror, versions 6 of Internet Explorer and Netscape Navigator, Opera version 7, and Mozilla from its first version
Since mid 2000s, there has been a proliferation of JavaScript implementations for the server side. Node.js is one of the notable examples of JavaScript on the server side, being used in important projects
The arrival of Ajax returned JavaScript to fame and attracted the attention of many programmers. As a result, there was a proliferation of a set of frameworks and libraries of general scope, improving programming practices with JavaScript, and increasing the use of JavaScript outside web browsers, with the proliferation of server-side JavaScript environments. In January 2009, the CommonJS project was inaugurated with the objective of specifying a library to use common tasks mainly for development outside the web browser
In June 2015, the ECMAScript 6 standard (latest version to date) was closed and published with irregular support between browsers and that provides JavaScript with advanced features that were missed and that are commonly used in other languages such as, for example, modules for code organization, true classes for object-oriented programming, date expressions, iterators, generators or promises for asynchronous programming
Comments in JavaScript
The comments in the code allow the author's comments to be inserted to describe the different parts of the program. The JavaScript interpreter ignores them and therefore has a particular syntax
Comments on a single line are distinguished, preceded by the double slash // and comments on several lines delimited by the symbols / * and * /. For example:
Identifiers and reserved words
To know what is the syntax of the identifiers which are reserved words is something that is necessary before you start to write a program in a particular programming language
The identifiers of a language are the string of characters that we assign to the names of variables, constants, functions, objects, etc ..., which we define in that language, these are necessary to be able to invoke said elements in places after their definition
Identifiers must follow the following rules:
- The identifier must start with a letter or the character '_'
- The following characters, in addition to letters or the '_' character, can be figures
Note that case is not important, because JavaScript does not differentiate from case names in identifiers. Let's look at some examples of variable names:
First, say that reserved words are special words that are used to increase readability and separate syntactic entities. These words cannot be used as identifiers
Next we will see a table in which all the existing reserved words in JavaScript are shown, these words have or will have a special meaning within the language:
Reserved words |
Abstract |
Boolean |
Break |
Byte |
Case |
Cath |
Char |
Class |
Const |
Continue |
Default |
Do |
Double |
Else |
Extends |
False |
Final |
Finally |
Float |
For |
Function |
Goto |
If |
Implements |
Import |
In |
Instaceof |
Int |
Interface |
Long |
Native |
New |
Null |
Package |
Private |
Protected |
Public |
Return |
Short |
Static |
Super |
Switch |
Synchronized |
This |
Throw |
Throws |
Transient |
True |
Try |
Var |
Void |
While |
With |