js.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Mon, 22 Feb 2016 12:41:52 +0200
changeset 1903 901e7394849f
parent 1599 52d4f3d19b46
child 1906 6f6d48f88341
permissions -rw-r--r--
Decrease intent to increase space usage on mobile.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1419
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     1
.. -*- coding: utf-8; -*-
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     2
.. include:: HEADER.rst
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     3
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     4
=============
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     5
 JavaScript.
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     6
=============
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     7
.. contents ::
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     8
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     9
HTML.
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    10
=====
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    11
1533
38f62ec2f1ed Including JavaScript in HTML page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1441
diff changeset
    12
``<noscript>`` tag used to render HTML if JavaScript disabled in browser.
1419
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    13
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    14
Including JavaScript in HTML page.
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    15
==================================
1533
38f62ec2f1ed Including JavaScript in HTML page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1441
diff changeset
    16
38f62ec2f1ed Including JavaScript in HTML page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1441
diff changeset
    17
In ``head``::
1419
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    18
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    19
  <html>
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    20
    <head>
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    21
      <script type="text/javascript" src="abc.js"></script>
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    22
    </head>
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    23
   ...
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    24
  <html>
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    25
1533
38f62ec2f1ed Including JavaScript in HTML page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1441
diff changeset
    26
or alternatively just before closing ``body``::
38f62ec2f1ed Including JavaScript in HTML page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1441
diff changeset
    27
38f62ec2f1ed Including JavaScript in HTML page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1441
diff changeset
    28
    <script src="abc.js"></script>
38f62ec2f1ed Including JavaScript in HTML page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1441
diff changeset
    29
  </body>
38f62ec2f1ed Including JavaScript in HTML page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1441
diff changeset
    30
  <html>
38f62ec2f1ed Including JavaScript in HTML page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1441
diff changeset
    31
38f62ec2f1ed Including JavaScript in HTML page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1441
diff changeset
    32
**NOTE** ``type="text/javascript"`` no longer necessary.
38f62ec2f1ed Including JavaScript in HTML page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1441
diff changeset
    33
1419
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    34
Inlining JavaScript in HTML code.
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    35
=================================
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    36
::
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    37
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    38
  <html>
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    39
    <h1>Hello!<h1/>
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    40
    <script language="javascript">
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    41
      <!--
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    42
      alert("Hello!")
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    43
      document.write("sin(10) = " + Math.sin(10))
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    44
      //-->
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    45
    </script>
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    46
  </html>
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    47
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    48
Reduce js code size.
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    49
====================
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    50
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    51
  http://crockford.com/javascript/jsmin
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    52
                The JavaScript Minifier
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    53
  http://developer.yahoo.com/yui/compressor/
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    54
                YUI Compressor
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    55
1429
20c7582806da JavaScript standards.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1427
diff changeset
    56
JavaScript standards.
20c7582806da JavaScript standards.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1427
diff changeset
    57
=====================
20c7582806da JavaScript standards.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1427
diff changeset
    58
20c7582806da JavaScript standards.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1427
diff changeset
    59
  http://www.ecma-international.org/publications/standards/Ecma-262.htm
20c7582806da JavaScript standards.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1427
diff changeset
    60
                ECMAScript Language Specification.
1430
8d066d8806b3 Archive of JavaScript standards.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1429
diff changeset
    61
  http://www.ecma-international.org/publications/standards/Ecma-262-arch.htm
8d066d8806b3 Archive of JavaScript standards.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1429
diff changeset
    62
                ECMAScript Language Specification.
1429
20c7582806da JavaScript standards.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1427
diff changeset
    63
  http://www.ecma-international.org/publications/standards/Ecma-327.htm
20c7582806da JavaScript standards.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1427
diff changeset
    64
                ECMAScript 3rd Edition Compact Profile
20c7582806da JavaScript standards.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1427
diff changeset
    65
  http://www.ecma-international.org/publications/standards/Ecma-357.htm
20c7582806da JavaScript standards.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1427
diff changeset
    66
                ECMAScript for XML (E4X) Specification.
20c7582806da JavaScript standards.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1427
diff changeset
    67
  http://www.ecma-international.org/publications/standards/Ecma-290.htm
20c7582806da JavaScript standards.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1427
diff changeset
    68
                ECMAScript Components Specification.
20c7582806da JavaScript standards.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1427
diff changeset
    69
1419
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    70
JavaScript versions.
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    71
====================
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    72
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    73
JavaScript 1.5 was introduced back in 1999.
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    74
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    75
  https://developer.mozilla.org/en-US/docs/JavaScript/Reference#JavaScript.2FBrowser_support_history
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    76
                List of versions with CHANGES.
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    77
  http://en.wikipedia.org/wiki/Javascript#Versions
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    78
                List of versions per browser.
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    79
  http://en.wikipedia.org/wiki/ECMAScript#Version_correspondence
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    80
                List of versions.
1599
52d4f3d19b46 ECMAScript 6/7 compatibility table.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1534
diff changeset
    81
  http://kangax.github.io/compat-table/es5/
1426
fc39c0ba45d7 ECMAScript 5 compatibility table.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1419
diff changeset
    82
                ECMAScript 5 compatibility table.
1599
52d4f3d19b46 ECMAScript 6/7 compatibility table.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1534
diff changeset
    83
  http://kangax.github.io/compat-table/es6/
52d4f3d19b46 ECMAScript 6/7 compatibility table.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1534
diff changeset
    84
                ECMAScript 6 compatibility table.
52d4f3d19b46 ECMAScript 6/7 compatibility table.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1534
diff changeset
    85
  http://kangax.github.io/compat-table/es7/
52d4f3d19b46 ECMAScript 6/7 compatibility table.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1534
diff changeset
    86
                ECMAScript 7 compatibility table.
1427
4c3456855f5f Can I use ECMAScript 5 Strict Mode?
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1426
diff changeset
    87
  http://caniuse.com/use-strict
4c3456855f5f Can I use ECMAScript 5 Strict Mode?
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1426
diff changeset
    88
                Can I use ECMAScript 5 Strict Mode?
1419
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    89
1441
67d287d2e77e Pretty print from JavaScript.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1430
diff changeset
    90
Pretty print from JavaScript.
67d287d2e77e Pretty print from JavaScript.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1430
diff changeset
    91
=============================
1534
61deca7da3f5 Logging in JS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1533
diff changeset
    92
::
61deca7da3f5 Logging in JS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1533
diff changeset
    93
61deca7da3f5 Logging in JS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1533
diff changeset
    94
  console.debug("%o", obj);
61deca7da3f5 Logging in JS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1533
diff changeset
    95
61deca7da3f5 Logging in JS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1533
diff changeset
    96
Logging in JS.
61deca7da3f5 Logging in JS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1533
diff changeset
    97
==============
1441
67d287d2e77e Pretty print from JavaScript.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1430
diff changeset
    98
67d287d2e77e Pretty print from JavaScript.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1430
diff changeset
    99
To Web Developer console (Firefox/Chrome)::
67d287d2e77e Pretty print from JavaScript.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1430
diff changeset
   100
1534
61deca7da3f5 Logging in JS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1533
diff changeset
   101
  console.log("str");
61deca7da3f5 Logging in JS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1533
diff changeset
   102
  console.info("str is %s", "str");
61deca7da3f5 Logging in JS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1533
diff changeset
   103
  console.warn("this is %o", this);
61deca7da3f5 Logging in JS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1533
diff changeset
   104
  console.error("int: %i, float: %f, string: %s, object: %o", 2, .333, "str", this);
61deca7da3f5 Logging in JS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1533
diff changeset
   105
61deca7da3f5 Logging in JS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1533
diff changeset
   106
To see stack-trace use::
61deca7da3f5 Logging in JS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1533
diff changeset
   107
61deca7da3f5 Logging in JS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1533
diff changeset
   108
  console.trace();
61deca7da3f5 Logging in JS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1533
diff changeset
   109
  console.log(new Error().stack); // only FF
1441
67d287d2e77e Pretty print from JavaScript.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1430
diff changeset
   110
1419
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   111
XML from JavaScript.
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   112
====================
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   113
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   114
Powerful, standards-compliant JavaScript XML parser that is designed to help web application
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   115
designers implement cross platform applications that take advantage of client-side manipulation of
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   116
XML data. XML for <SCRIPT> provides a full suite of tools, including:
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   117
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   118
 * A standards-compliant W3C DOM Level 2 processor
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   119
 * An XPath processor
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   120
 * A standards-compliant SAX processor
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   121
 * A simple (classic) DOM processor
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   122
 * Proxies for XML retrieval from any domain
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   123
 * Utilities for XML and application development
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   124
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   125
  http://xmljs.sourceforge.net/
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   126
                home page
9c6c35339ebc JavaScript versions.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
   127