Compare Revisions

A re-introduction to JavaScript (JS tutorial)

Change Revisions

Revision 18623:

Revision 18623 by IgorKitsa on

Revision 18624:

Revision 18624 by Trasvina on

Title:
A re-introduction to JavaScript (JS Tutorial)
A re-introduction to JavaScript (JS Tutorial)
Slug:
JavaScript/A_re-introduction_to_JavaScript
JavaScript/A_re-introduction_to_JavaScript
Tags:
javascript
javascript
Content:

Revision 18623
Revision 18624
n17      Microsoft released a mostly-compatible version of the langun17      Microsoft released a mostly-compatible version of the langu
>age called JScript with IE 3 several months later. Netscape submi>age called JScript with IE 3 several months later. Netscape submi
>tted the language to <a class="external" href="http://www.ecma-in>tted the language to <a class="external" href="http://www.ecma-in
>ternational.org/">Ecma International</a>, a European standards or>ternational.org/">Ecma International</a>, a European standards or
>ganization, which resulted in the first edition of the <a href="/>ganization, which resulted in the first edition of the <a href="/
>en/ECMAScript" title="en/ECMAScript">ECMAScript</a> standard in 1>en/ECMAScript" title="en/ECMAScript">ECMAScript</a> standard in 1
>997. The standard received a significant update as <a class="exte>997. The standard received a significant update as <a class="exte
>rnal" href="http://www.ecma-international.org/publications/standa>rnal" href="http://www.ecma-international.org/publications/standa
>rds/Ecma-262.htm">ECMAScript edition 3</a> in 1999, and has staye>rds/Ecma-262.htm">ECMAScript edition 3</a> in 1999, and has staye
>d pretty much stable ever since. The fourth edition was abandoned>d pretty much stable ever since. The fourth edition was abandoned
>, due to political differences concerning language complexity. Ma>, due to political differences concerning language complexity. Ma
>ny parts of the fourth edition forming a basis of the new ECMAScr>ny parts of the fourth edition forming a basis of the new ECMAScr
>ipt edition 5, which is likely to be published towards the end of>ipt edition 5, published on December of 2009.
> 2009. 
n23      Unlike most programming languages, the JavaScript language n23      Unlike most programming languages, the JavaScript language 
>has no concept of input or output. It is designed to run as a scr>has no concept of input or output. It is designed to run as a scr
>ipting language in a host environment, and it is up to the host e>ipting language in a host environment, and it is up to the host e
>nvironment to provide mechanisms for communicating with the outsi>nvironment to provide mechanisms for communicating with the outsi
>de world. The most common host environment is the browser, but Ja>de world. The most common host environment is the browser, but Ja
>vaScript interpreters can also be found in Adobe Acrobat, Photosh>vaScript interpreters can also be found in Adobe Acrobat, Photosh
>op, Yahoo!'s Widget engine, and more.>op, Yahoo!'s Widget engine, and even server side environments.
nn28    <p>
29      JavaScript is an object oriented dynamic language, it has t
 >ypes and operators, core objects and methods. Its syntax comes fr
 >om Java and C languages so many structures from this languages ap
 >ply too. one of the key differences is that JavaScript does not h
 >ave classes, the class functionality is accomplished by object pr
 >ototypes. The other main difference is that functions are objects
 >, giving functions the capacity to hold executable code and me pa
 >ssed around like any other object.
30    </p>
n784      There's something here we haven't seen before: the '<code><n787      There's something here we haven't seen before: the '<code><
>a href="/en/JavaScript/Reference/Operators/Special_Operators/this>a href="/en/JavaScript/Reference/Operators/Special/this" title="e
>_Operator" title="en/Core_JavaScript_1.5_Reference/Operators/Spec>n/Core_JavaScript_1.5_Reference/Operators/Special_Operators/this_
>ial_Operators/this_Operator">this</a></code>' keyword. Used insid>Operator">this</a></code>' keyword. Used inside a function, '<cod
>e a function, '<code>this</code>' refers to the current object. W>e>this</code>' refers to the current object. What that actually m
>hat that actually means is specified by the way in which you call>eans is specified by the way in which you called that function. I
>ed that function. If you called it using <a href="/en/JavaScript/>f you called it using <a href="/en/JavaScript/Reference/Operators
>Reference/Operators/Member_Operators" title="en/Core_JavaScript_1>/Member_Operators" title="en/Core_JavaScript_1.5_Reference/Operat
>.5_Reference/Operators/Member_Operators">dot notation or bracket >ors/Member_Operators">dot notation or bracket notation</a> on an 
>notation</a> on an object, that object becomes '<code>this</code>>object, that object becomes '<code>this</code>'. If dot notation 
>'. If dot notation wasn't used for the call, '<code>this</code>' >wasn't used for the call, '<code>this</code>' refers to the globa
>refers to the global object. This is a frequent cause of mistakes>l object. This is a frequent cause of mistakes. For example:
>. For example: 
t812      We've introduced another keyword: '<code><a href="/en/JavaSt815      We've introduced another keyword: '<code><a href="/en/JavaS
>cript/Reference/Operators/Special_Operators/new_Operator" title=">cript/Reference/Operators/Special/new" title="en/Core_JavaScript_
>en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/new_>1.5_Reference/Operators/Special_Operators/new_Operator">new</a></
>Operator">new</a></code>'. <code>new</code> is strongly related t>code>'. <code>new</code> is strongly related to '<code>this</code
>o '<code>this</code>'. What it does is it creates a brand new emp>>'. What it does is it creates a brand new empty object, and then
>ty object, and then calls the function specified, with '<code>thi> calls the function specified, with '<code>this</code>' set to th
>s</code>' set to that new object. Functions that are designed to >at new object. Functions that are designed to be called by '<code
>be called by '<code>new</code>' are called constructor functions.>>new</code>' are called constructor functions. Common practise is
> Common practise is to capitalise these functions as a reminder t> to capitalise these functions as a reminder to call them with <c
>o call them with <code>new</code>.>ode>new</code>.

Back to History