js.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Mon, 22 Feb 2016 12:46:36 +0200
changeset 1905 fba288d59662
parent 1599 52d4f3d19b46
child 1906 6f6d48f88341
permissions -rw-r--r--
Include only local subsections into TOC. This prevent duplication of TOC when build single page HTML document. Also this make unnecessary CSS hack to hide document title as top level section.
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