|
|
|
@ -86,22 +86,22 @@ math<span class="Keyword">:</span> {
|
|
|
|
|
|
|
|
|
|
<span class="Comment"><span class="Comment">#</span> Array comprehensions:</span>
|
|
|
|
|
cubed_list<span class="Keyword">:</span> math.cube(num) <span class="Keyword">for</span> num <span class="Keyword">in</span> list.
|
|
|
|
|
</pre><pre class="idle">
|
|
|
|
|
</pre><pre class="idle"><span class="Storage">var</span> __a, __b, __c, __d, cubed_list, list, math, num, number, opposite_day, square;
|
|
|
|
|
<span class="Comment"><span class="Comment">//</span> Assignment:</span>
|
|
|
|
|
<span class="Storage">var</span> number <span class="Keyword">=</span> <span class="Number">42</span>;
|
|
|
|
|
<span class="Storage">var</span> opposite_day <span class="Keyword">=</span> <span class="BuiltInConstant">true</span>;
|
|
|
|
|
number <span class="Keyword">=</span> <span class="Number">42</span>;
|
|
|
|
|
opposite_day <span class="Keyword">=</span> <span class="BuiltInConstant">true</span>;
|
|
|
|
|
<span class="Comment"><span class="Comment">//</span> Conditions:</span>
|
|
|
|
|
<span class="Keyword">if</span> (opposite_day) {
|
|
|
|
|
number <span class="Keyword">=</span> <span class="Keyword">-</span><span class="Number">42</span>;
|
|
|
|
|
}
|
|
|
|
|
<span class="Comment"><span class="Comment">//</span> Functions:</span>
|
|
|
|
|
<span class="Storage">var</span> <span class="FunctionName">square</span> = <span class="Storage">function</span>(<span class="FunctionArgument">x</span>) {
|
|
|
|
|
<span class="FunctionName">square</span> = <span class="Storage">function</span>(<span class="FunctionArgument">x</span>) {
|
|
|
|
|
<span class="Keyword">return</span> x <span class="Keyword">*</span> x;
|
|
|
|
|
};
|
|
|
|
|
<span class="Comment"><span class="Comment">//</span> Arrays:</span>
|
|
|
|
|
<span class="Storage">var</span> list <span class="Keyword">=</span> [<span class="Number">1</span>, <span class="Number">2</span>, <span class="Number">3</span>, <span class="Number">4</span>, <span class="Number">5</span>];
|
|
|
|
|
list <span class="Keyword">=</span> [<span class="Number">1</span>, <span class="Number">2</span>, <span class="Number">3</span>, <span class="Number">4</span>, <span class="Number">5</span>];
|
|
|
|
|
<span class="Comment"><span class="Comment">//</span> Objects:</span>
|
|
|
|
|
<span class="Storage">var</span> math <span class="Keyword">=</span> {
|
|
|
|
|
math <span class="Keyword">=</span> {
|
|
|
|
|
root: <span class="LibraryClassType">Math</span>.sqrt,
|
|
|
|
|
square: square,
|
|
|
|
|
<span class="FunctionName">cube</span>: <span class="Storage">function</span>(<span class="FunctionArgument">x</span>) {
|
|
|
|
@ -109,30 +109,29 @@ cubed_list<span class="Keyword">:</span> math.cube(num) <span class="Keyword">fo
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
<span class="Comment"><span class="Comment">//</span> Array comprehensions:</span>
|
|
|
|
|
<span class="Storage">var</span> cubed_list;
|
|
|
|
|
<span class="Storage">var</span> __a <span class="Keyword">=</span> list;
|
|
|
|
|
<span class="Storage">var</span> __d <span class="Keyword">=</span> [];
|
|
|
|
|
<span class="Keyword">for</span> (<span class="Storage">var</span> __b<span class="Keyword">=</span><span class="Number">0</span>, __c<span class="Keyword">=</span>__a.<span class="LibraryConstant">length</span>; __b<span class="Keyword"><</span>__c; __b<span class="Keyword">++</span>) {
|
|
|
|
|
<span class="Storage">var</span> num <span class="Keyword">=</span> __a[__b];
|
|
|
|
|
__a <span class="Keyword">=</span> list;
|
|
|
|
|
__d <span class="Keyword">=</span> [];
|
|
|
|
|
<span class="Keyword">for</span> (__b<span class="Keyword">=</span><span class="Number">0</span>, __c<span class="Keyword">=</span>__a.<span class="LibraryConstant">length</span>; __b<span class="Keyword"><</span>__c; __b<span class="Keyword">++</span>) {
|
|
|
|
|
num <span class="Keyword">=</span> __a[__b];
|
|
|
|
|
__d[__b] <span class="Keyword">=</span> math.cube(num);
|
|
|
|
|
}
|
|
|
|
|
cubed_list <span class="Keyword">=</span> __d;
|
|
|
|
|
</pre><button onclick='javascript:
|
|
|
|
|
</pre><button onclick='javascript: var __a, __b, __c, __d, cubed_list, list, math, num, number, opposite_day, square;
|
|
|
|
|
// Assignment:
|
|
|
|
|
var number = 42;
|
|
|
|
|
var opposite_day = true;
|
|
|
|
|
number = 42;
|
|
|
|
|
opposite_day = true;
|
|
|
|
|
// Conditions:
|
|
|
|
|
if (opposite_day) {
|
|
|
|
|
number = -42;
|
|
|
|
|
}
|
|
|
|
|
// Functions:
|
|
|
|
|
var square = function(x) {
|
|
|
|
|
square = function(x) {
|
|
|
|
|
return x * x;
|
|
|
|
|
};
|
|
|
|
|
// Arrays:
|
|
|
|
|
var list = [1, 2, 3, 4, 5];
|
|
|
|
|
list = [1, 2, 3, 4, 5];
|
|
|
|
|
// Objects:
|
|
|
|
|
var math = {
|
|
|
|
|
math = {
|
|
|
|
|
root: Math.sqrt,
|
|
|
|
|
square: square,
|
|
|
|
|
cube: function(x) {
|
|
|
|
@ -140,11 +139,10 @@ var math = {
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
// Array comprehensions:
|
|
|
|
|
var cubed_list;
|
|
|
|
|
var __a = list;
|
|
|
|
|
var __d = [];
|
|
|
|
|
for (var __b=0, __c=__a.length; __b<__c; __b++) {
|
|
|
|
|
var num = __a[__b];
|
|
|
|
|
__a = list;
|
|
|
|
|
__d = [];
|
|
|
|
|
for (__b=0, __c=__a.length; __b<__c; __b++) {
|
|
|
|
|
num = __a[__b];
|
|
|
|
|
__d[__b] = math.cube(num);
|
|
|
|
|
}
|
|
|
|
|
cubed_list = __d;
|
|
|
|
@ -293,16 +291,18 @@ coffee-script --print app/scripts/*.coffee > concatenation.js</pre>
|
|
|
|
|
</p>
|
|
|
|
|
<div class='code'><pre class="idle"><span class="FunctionName">square</span><span class="Keyword">:</span> <span class="FunctionArgument">x</span> <span class="Storage">=></span> x <span class="Keyword">*</span> x.
|
|
|
|
|
<span class="FunctionName">cube</span><span class="Keyword">:</span> <span class="FunctionArgument">x</span> <span class="Storage">=></span> square(x) <span class="Keyword">*</span> x.
|
|
|
|
|
</pre><pre class="idle"><span class="Storage">var</span> <span class="FunctionName">square</span> = <span class="Storage">function</span>(<span class="FunctionArgument">x</span>) {
|
|
|
|
|
</pre><pre class="idle"><span class="Storage">var</span> cube, square;
|
|
|
|
|
<span class="FunctionName">square</span> = <span class="Storage">function</span>(<span class="FunctionArgument">x</span>) {
|
|
|
|
|
<span class="Keyword">return</span> x <span class="Keyword">*</span> x;
|
|
|
|
|
};
|
|
|
|
|
<span class="Storage">var</span> <span class="FunctionName">cube</span> = <span class="Storage">function</span>(<span class="FunctionArgument">x</span>) {
|
|
|
|
|
<span class="FunctionName">cube</span> = <span class="Storage">function</span>(<span class="FunctionArgument">x</span>) {
|
|
|
|
|
<span class="Keyword">return</span> square(x) <span class="Keyword">*</span> x;
|
|
|
|
|
};
|
|
|
|
|
</pre><button onclick='javascript: var square = function(x) {
|
|
|
|
|
</pre><button onclick='javascript: var cube, square;
|
|
|
|
|
square = function(x) {
|
|
|
|
|
return x * x;
|
|
|
|
|
};
|
|
|
|
|
var cube = function(x) {
|
|
|
|
|
cube = function(x) {
|
|
|
|
|
return square(x) * x;
|
|
|
|
|
};
|
|
|
|
|
;alert(cube(5));'>run: cube(5)</button><br class='clear' /></div>
|
|
|
|
@ -315,11 +315,17 @@ var cube = function(x) {
|
|
|
|
|
</p>
|
|
|
|
|
<div class='code'><pre class="idle">greeting<span class="Keyword">:</span> <span class="String"><span class="String">"</span>Hello CoffeeScript<span class="String">"</span></span>
|
|
|
|
|
difficulty<span class="Keyword">:</span> <span class="Number">0.5</span>
|
|
|
|
|
</pre><pre class="idle"><span class="Storage">var</span> greeting <span class="Keyword">=</span> <span class="String"><span class="String">"</span>Hello CoffeeScript<span class="String">"</span></span>;
|
|
|
|
|
<span class="Storage">var</span> difficulty <span class="Keyword">=</span> <span class="Number">0.5</span>;
|
|
|
|
|
</pre><button onclick='javascript: var greeting = "Hello CoffeeScript";
|
|
|
|
|
var difficulty = 0.5;
|
|
|
|
|
</pre><pre class="idle"><span class="Storage">var</span> difficulty, greeting;
|
|
|
|
|
greeting <span class="Keyword">=</span> <span class="String"><span class="String">"</span>Hello CoffeeScript<span class="String">"</span></span>;
|
|
|
|
|
difficulty <span class="Keyword">=</span> <span class="Number">0.5</span>;
|
|
|
|
|
</pre><button onclick='javascript: var difficulty, greeting;
|
|
|
|
|
greeting = "Hello CoffeeScript";
|
|
|
|
|
difficulty = 0.5;
|
|
|
|
|
;alert(greeting);'>run: greeting</button><br class='clear' /></div>
|
|
|
|
|
<p>
|
|
|
|
|
Declarations of new variables are pushed up to the top of the current scope,
|
|
|
|
|
so that assignments may always be used within expressions.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<p id="objects_and_arrays">
|
|
|
|
|
<b class="header">Objects and Arrays</b>
|
|
|
|
@ -334,14 +340,16 @@ ages<span class="Keyword">:</span> {
|
|
|
|
|
ida<span class="Keyword">:</span> <span class="Number">9</span>
|
|
|
|
|
tim<span class="Keyword">:</span> <span class="Number">11</span>
|
|
|
|
|
}
|
|
|
|
|
</pre><pre class="idle"><span class="Storage">var</span> song <span class="Keyword">=</span> [<span class="String"><span class="String">"</span>do<span class="String">"</span></span>, <span class="String"><span class="String">"</span>re<span class="String">"</span></span>, <span class="String"><span class="String">"</span>mi<span class="String">"</span></span>, <span class="String"><span class="String">"</span>fa<span class="String">"</span></span>, <span class="String"><span class="String">"</span>so<span class="String">"</span></span>];
|
|
|
|
|
<span class="Storage">var</span> ages <span class="Keyword">=</span> {
|
|
|
|
|
</pre><pre class="idle"><span class="Storage">var</span> ages, song;
|
|
|
|
|
song <span class="Keyword">=</span> [<span class="String"><span class="String">"</span>do<span class="String">"</span></span>, <span class="String"><span class="String">"</span>re<span class="String">"</span></span>, <span class="String"><span class="String">"</span>mi<span class="String">"</span></span>, <span class="String"><span class="String">"</span>fa<span class="String">"</span></span>, <span class="String"><span class="String">"</span>so<span class="String">"</span></span>];
|
|
|
|
|
ages <span class="Keyword">=</span> {
|
|
|
|
|
max: <span class="Number">10</span>,
|
|
|
|
|
ida: <span class="Number">9</span>,
|
|
|
|
|
tim: <span class="Number">11</span>
|
|
|
|
|
};
|
|
|
|
|
</pre><button onclick='javascript: var song = ["do", "re", "mi", "fa", "so"];
|
|
|
|
|
var ages = {
|
|
|
|
|
</pre><button onclick='javascript: var ages, song;
|
|
|
|
|
song = ["do", "re", "mi", "fa", "so"];
|
|
|
|
|
ages = {
|
|
|
|
|
max: 10,
|
|
|
|
|
ida: 9,
|
|
|
|
|
tim: 11
|
|
|
|
@ -359,20 +367,24 @@ var ages = {
|
|
|
|
|
num<span class="Keyword">:</span> <span class="Number">2</span>
|
|
|
|
|
new_num<span class="Keyword">:</span> <span class="Number">3</span>.
|
|
|
|
|
new_num<span class="Keyword">:</span> change_numbers()
|
|
|
|
|
</pre><pre class="idle"><span class="Storage">var</span> num <span class="Keyword">=</span> <span class="Number">1</span>;
|
|
|
|
|
<span class="Storage">var</span> <span class="FunctionName">change_numbers</span> = <span class="Storage">function</span>() {
|
|
|
|
|
</pre><pre class="idle"><span class="Storage">var</span> change_numbers, new_num, num;
|
|
|
|
|
num <span class="Keyword">=</span> <span class="Number">1</span>;
|
|
|
|
|
<span class="FunctionName">change_numbers</span> = <span class="Storage">function</span>() {
|
|
|
|
|
<span class="Storage">var</span> new_num;
|
|
|
|
|
num <span class="Keyword">=</span> <span class="Number">2</span>;
|
|
|
|
|
<span class="Storage">var</span> new_num <span class="Keyword">=</span> <span class="Number">3</span>;
|
|
|
|
|
new_num <span class="Keyword">=</span> <span class="Number">3</span>;
|
|
|
|
|
<span class="Keyword">return</span> new_num;
|
|
|
|
|
};
|
|
|
|
|
<span class="Storage">var</span> new_num <span class="Keyword">=</span> change_numbers();
|
|
|
|
|
</pre><button onclick='javascript: var num = 1;
|
|
|
|
|
var change_numbers = function() {
|
|
|
|
|
new_num <span class="Keyword">=</span> change_numbers();
|
|
|
|
|
</pre><button onclick='javascript: var change_numbers, new_num, num;
|
|
|
|
|
num = 1;
|
|
|
|
|
change_numbers = function() {
|
|
|
|
|
var new_num;
|
|
|
|
|
num = 2;
|
|
|
|
|
var new_num = 3;
|
|
|
|
|
new_num = 3;
|
|
|
|
|
return new_num;
|
|
|
|
|
};
|
|
|
|
|
var new_num = change_numbers();
|
|
|
|
|
new_num = change_numbers();
|
|
|
|
|
;alert(new_num);'>run: new_num</button><br class='clear' /></div>
|
|
|
|
|
<p>
|
|
|
|
|
Notice how the variables are declared with <tt>var</tt> the first time
|
|
|
|
@ -408,7 +420,7 @@ var new_num = change_numbers();
|
|
|
|
|
date<span class="Keyword">:</span> <span class="Keyword">if</span> friday <span class="Keyword">then</span> sue <span class="Keyword">else</span> jill.
|
|
|
|
|
|
|
|
|
|
expensive <span class="Keyword">||</span><span class="Keyword">=</span> do_the_math()
|
|
|
|
|
</pre><pre class="idle"><span class="Storage">var</span> mood;
|
|
|
|
|
</pre><pre class="idle"><span class="Storage">var</span> date, mood;
|
|
|
|
|
<span class="Keyword">if</span> (singing) {
|
|
|
|
|
mood <span class="Keyword">=</span> greatly_improved;
|
|
|
|
|
}
|
|
|
|
@ -416,7 +428,7 @@ expensive <span class="Keyword">||</span><span class="Keyword">=</span> do_the_m
|
|
|
|
|
claps_hands();
|
|
|
|
|
cha_cha_cha();
|
|
|
|
|
}
|
|
|
|
|
<span class="Storage">var</span> date <span class="Keyword">=</span> friday ? sue : jill;
|
|
|
|
|
date <span class="Keyword">=</span> friday ? sue : jill;
|
|
|
|
|
expensive <span class="Keyword">=</span> expensive <span class="Keyword">||</span> do_the_math();
|
|
|
|
|
</pre><br class='clear' /></div>
|
|
|
|
|
<p>
|
|
|
|
@ -444,7 +456,8 @@ expensive <span class="Keyword">=</span> expensive <span class="Keyword">||</spa
|
|
|
|
|
<span class="String"><span class="String">"</span>C<span class="String">"</span></span>..
|
|
|
|
|
|
|
|
|
|
eldest<span class="Keyword">:</span> <span class="Keyword">if</span> <span class="Number">24</span> <span class="Keyword">></span> <span class="Number">21</span> <span class="Keyword">then</span> <span class="String"><span class="String">"</span>Liz<span class="String">"</span></span> <span class="Keyword">else</span> <span class="String"><span class="String">"</span>Ike<span class="String">"</span></span>.
|
|
|
|
|
</pre><pre class="idle"><span class="Storage">var</span> <span class="FunctionName">grade</span> = <span class="Storage">function</span>(<span class="FunctionArgument">student</span>) {
|
|
|
|
|
</pre><pre class="idle"><span class="Storage">var</span> eldest, grade;
|
|
|
|
|
<span class="FunctionName">grade</span> = <span class="Storage">function</span>(<span class="FunctionArgument">student</span>) {
|
|
|
|
|
<span class="Keyword">if</span> (student.excellent_work) {
|
|
|
|
|
<span class="Keyword">return</span> <span class="String"><span class="String">"</span>A+<span class="String">"</span></span>;
|
|
|
|
|
} <span class="Keyword">else</span> <span class="Keyword">if</span> (student.okay_stuff) {
|
|
|
|
@ -453,8 +466,9 @@ eldest<span class="Keyword">:</span> <span class="Keyword">if</span> <span class
|
|
|
|
|
<span class="Keyword">return</span> <span class="String"><span class="String">"</span>C<span class="String">"</span></span>;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
<span class="Storage">var</span> eldest <span class="Keyword">=</span> <span class="Number">24</span> <span class="Keyword">></span> <span class="Number">21</span> ? <span class="String"><span class="String">"</span>Liz<span class="String">"</span></span> : <span class="String"><span class="String">"</span>Ike<span class="String">"</span></span>;
|
|
|
|
|
</pre><button onclick='javascript: var grade = function(student) {
|
|
|
|
|
eldest <span class="Keyword">=</span> <span class="Number">24</span> <span class="Keyword">></span> <span class="Number">21</span> ? <span class="String"><span class="String">"</span>Liz<span class="String">"</span></span> : <span class="String"><span class="String">"</span>Ike<span class="String">"</span></span>;
|
|
|
|
|
</pre><button onclick='javascript: var eldest, grade;
|
|
|
|
|
grade = function(student) {
|
|
|
|
|
if (student.excellent_work) {
|
|
|
|
|
return "A+";
|
|
|
|
|
} else if (student.okay_stuff) {
|
|
|
|
@ -463,12 +477,22 @@ eldest<span class="Keyword">:</span> <span class="Keyword">if</span> <span class
|
|
|
|
|
return "C";
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
var eldest = 24 > 21 ? "Liz" : "Ike";
|
|
|
|
|
eldest = 24 > 21 ? "Liz" : "Ike";
|
|
|
|
|
;alert(eldest);'>run: eldest</button><br class='clear' /></div>
|
|
|
|
|
<p>
|
|
|
|
|
The same mechanism is used to push down assignment through <b>switch</b>
|
|
|
|
|
statements, and <b>if-elses</b> (although the ternary operator is preferred).
|
|
|
|
|
Another part of manipulating assignment statements is
|
|
|
|
|
CoffeeScript's declaration of new variables at the top of the
|
|
|
|
|
current scope. This allows assignment to be used as a piece of an
|
|
|
|
|
expression.
|
|
|
|
|
</p>
|
|
|
|
|
<div class='code'><pre class="idle">six<span class="Keyword">:</span> (one<span class="Keyword">:</span> <span class="Number">1</span>) <span class="Keyword">+</span> (two<span class="Keyword">:</span> <span class="Number">2</span>) <span class="Keyword">+</span> (three<span class="Keyword">:</span> <span class="Number">3</span>)
|
|
|
|
|
</pre><pre class="idle"><span class="Storage">var</span> one, six, three, two;
|
|
|
|
|
six <span class="Keyword">=</span> (one <span class="Keyword">=</span> <span class="Number">1</span>) <span class="Keyword">+</span> (two <span class="Keyword">=</span> <span class="Number">2</span>) <span class="Keyword">+</span> (three <span class="Keyword">=</span> <span class="Number">3</span>);
|
|
|
|
|
</pre><button onclick='javascript: var one, six, three, two;
|
|
|
|
|
six = (one = 1) + (two = 2) + (three = 3);
|
|
|
|
|
;alert(six);'>run: six</button><br class='clear' /></div>
|
|
|
|
|
|
|
|
|
|
<p id="aliases">
|
|
|
|
|
<b class="header">Aliases</b>
|
|
|
|
@ -505,10 +529,10 @@ volume<span class="Keyword">:</span> <span class="Number">10</span> <span class=
|
|
|
|
|
let_the_wild_rumpus_begin() <span class="Keyword">unless</span> answer <span class="Keyword">is</span> <span class="BuiltInConstant">no</span>
|
|
|
|
|
|
|
|
|
|
<span class="Keyword">if</span> car.speed <span class="Keyword"><</span> speed_limit <span class="Keyword">then</span> accelerate().
|
|
|
|
|
</pre><pre class="idle"><span class="Keyword">if</span> (ignition <span class="Keyword">===</span> <span class="BuiltInConstant">true</span>) {
|
|
|
|
|
</pre><pre class="idle"><span class="Storage">var</span> volume;
|
|
|
|
|
<span class="Keyword">if</span> (ignition <span class="Keyword">===</span> <span class="BuiltInConstant">true</span>) {
|
|
|
|
|
launch();
|
|
|
|
|
}
|
|
|
|
|
<span class="Storage">var</span> volume;
|
|
|
|
|
<span class="Keyword">if</span> (band <span class="Keyword">!</span><span class="Keyword">==</span> spinal_tap) {
|
|
|
|
|
volume <span class="Keyword">=</span> <span class="Number">10</span>;
|
|
|
|
|
}
|
|
|
|
@ -556,22 +580,21 @@ lunch<span class="Keyword">:</span> food.eat() <span class="Keyword">for</span>
|
|
|
|
|
|
|
|
|
|
<span class="Comment"><span class="Comment">#</span> Zebra-stripe a table.</span>
|
|
|
|
|
highlight(row) <span class="Keyword">for</span> row, i <span class="Keyword">in</span> table <span class="Keyword">if</span> i <span class="Keyword">%</span> <span class="Number">2</span> <span class="Keyword">is</span> <span class="Number">0</span>.
|
|
|
|
|
</pre><pre class="idle">
|
|
|
|
|
</pre><pre class="idle"><span class="Storage">var</span> __a, __b, __c, __d, __e, __f, __g, __h, food, i, lunch, row;
|
|
|
|
|
<span class="Comment"><span class="Comment">//</span> Eat lunch.</span>
|
|
|
|
|
<span class="Storage">var</span> lunch;
|
|
|
|
|
<span class="Storage">var</span> __a <span class="Keyword">=</span> [<span class="String"><span class="String">'</span>toast<span class="String">'</span></span>, <span class="String"><span class="String">'</span>cheese<span class="String">'</span></span>, <span class="String"><span class="String">'</span>wine<span class="String">'</span></span>];
|
|
|
|
|
<span class="Storage">var</span> __d <span class="Keyword">=</span> [];
|
|
|
|
|
<span class="Keyword">for</span> (<span class="Storage">var</span> __b<span class="Keyword">=</span><span class="Number">0</span>, __c<span class="Keyword">=</span>__a.<span class="LibraryConstant">length</span>; __b<span class="Keyword"><</span>__c; __b<span class="Keyword">++</span>) {
|
|
|
|
|
<span class="Storage">var</span> food <span class="Keyword">=</span> __a[__b];
|
|
|
|
|
__a <span class="Keyword">=</span> [<span class="String"><span class="String">'</span>toast<span class="String">'</span></span>, <span class="String"><span class="String">'</span>cheese<span class="String">'</span></span>, <span class="String"><span class="String">'</span>wine<span class="String">'</span></span>];
|
|
|
|
|
__d <span class="Keyword">=</span> [];
|
|
|
|
|
<span class="Keyword">for</span> (__b<span class="Keyword">=</span><span class="Number">0</span>, __c<span class="Keyword">=</span>__a.<span class="LibraryConstant">length</span>; __b<span class="Keyword"><</span>__c; __b<span class="Keyword">++</span>) {
|
|
|
|
|
food <span class="Keyword">=</span> __a[__b];
|
|
|
|
|
__d[__b] <span class="Keyword">=</span> food.eat();
|
|
|
|
|
}
|
|
|
|
|
lunch <span class="Keyword">=</span> __d;
|
|
|
|
|
<span class="Comment"><span class="Comment">//</span> Zebra-stripe a table.</span>
|
|
|
|
|
<span class="Storage">var</span> __e <span class="Keyword">=</span> table;
|
|
|
|
|
<span class="Storage">var</span> __h <span class="Keyword">=</span> [];
|
|
|
|
|
<span class="Keyword">for</span> (<span class="Storage">var</span> __f<span class="Keyword">=</span><span class="Number">0</span>, __g<span class="Keyword">=</span>__e.<span class="LibraryConstant">length</span>; __f<span class="Keyword"><</span>__g; __f<span class="Keyword">++</span>) {
|
|
|
|
|
<span class="Storage">var</span> row <span class="Keyword">=</span> __e[__f];
|
|
|
|
|
<span class="Storage">var</span> i <span class="Keyword">=</span> __f;
|
|
|
|
|
__e <span class="Keyword">=</span> table;
|
|
|
|
|
__h <span class="Keyword">=</span> [];
|
|
|
|
|
<span class="Keyword">for</span> (__f<span class="Keyword">=</span><span class="Number">0</span>, __g<span class="Keyword">=</span>__e.<span class="LibraryConstant">length</span>; __f<span class="Keyword"><</span>__g; __f<span class="Keyword">++</span>) {
|
|
|
|
|
row <span class="Keyword">=</span> __e[__f];
|
|
|
|
|
i <span class="Keyword">=</span> __f;
|
|
|
|
|
__h[__f] <span class="Keyword">=</span> i <span class="Keyword">%</span> <span class="Number">2</span> <span class="Keyword">===</span> <span class="Number">0</span> ? highlight(row) : <span class="BuiltInConstant">null</span>;
|
|
|
|
|
}
|
|
|
|
|
__h;
|
|
|
|
@ -592,12 +615,14 @@ three_to_six<span class="Keyword">:</span> numbers[<span class="Number">3</span>
|
|
|
|
|
|
|
|
|
|
numbers_copy<span class="Keyword">:</span> numbers[<span class="Number">0</span>...numbers.length]
|
|
|
|
|
|
|
|
|
|
</pre><pre class="idle"><span class="Storage">var</span> numbers <span class="Keyword">=</span> [<span class="Number">0</span>, <span class="Number">1</span>, <span class="Number">2</span>, <span class="Number">3</span>, <span class="Number">4</span>, <span class="Number">5</span>, <span class="Number">6</span>, <span class="Number">7</span>, <span class="Number">8</span>, <span class="Number">9</span>];
|
|
|
|
|
<span class="Storage">var</span> three_to_six <span class="Keyword">=</span> numbers.<span class="LibraryFunction">slice</span>(<span class="Number">3</span>, <span class="Number">6</span> <span class="Keyword">+</span> <span class="Number">1</span>);
|
|
|
|
|
<span class="Storage">var</span> numbers_copy <span class="Keyword">=</span> numbers.<span class="LibraryFunction">slice</span>(<span class="Number">0</span>, numbers.<span class="LibraryConstant">length</span>);
|
|
|
|
|
</pre><button onclick='javascript: var numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
|
|
|
|
|
var three_to_six = numbers.slice(3, 6 + 1);
|
|
|
|
|
var numbers_copy = numbers.slice(0, numbers.length);
|
|
|
|
|
</pre><pre class="idle"><span class="Storage">var</span> numbers, numbers_copy, three_to_six;
|
|
|
|
|
numbers <span class="Keyword">=</span> [<span class="Number">0</span>, <span class="Number">1</span>, <span class="Number">2</span>, <span class="Number">3</span>, <span class="Number">4</span>, <span class="Number">5</span>, <span class="Number">6</span>, <span class="Number">7</span>, <span class="Number">8</span>, <span class="Number">9</span>];
|
|
|
|
|
three_to_six <span class="Keyword">=</span> numbers.<span class="LibraryFunction">slice</span>(<span class="Number">3</span>, <span class="Number">6</span> <span class="Keyword">+</span> <span class="Number">1</span>);
|
|
|
|
|
numbers_copy <span class="Keyword">=</span> numbers.<span class="LibraryFunction">slice</span>(<span class="Number">0</span>, numbers.<span class="LibraryConstant">length</span>);
|
|
|
|
|
</pre><button onclick='javascript: var numbers, numbers_copy, three_to_six;
|
|
|
|
|
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
|
|
|
|
|
three_to_six = numbers.slice(3, 6 + 1);
|
|
|
|
|
numbers_copy = numbers.slice(0, numbers.length);
|
|
|
|
|
;alert(numbers_copy);'>run: numbers_copy</button><br class='clear' /></div>
|
|
|
|
|
|
|
|
|
|
<p id="inheritance">
|
|
|
|
@ -642,12 +667,13 @@ tom.move()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</pre><pre class="idle"><span class="Storage">var</span> <span class="FunctionName">Animal</span> = <span class="Storage">function</span>() {
|
|
|
|
|
</pre><pre class="idle"><span class="Storage">var</span> Animal, Horse, Snake, sam, tom;
|
|
|
|
|
<span class="FunctionName">Animal</span> = <span class="Storage">function</span>() {
|
|
|
|
|
};
|
|
|
|
|
<span class="LibraryClassType">Animal</span>.<span class="LibraryConstant">prototype</span>.<span class="FunctionName">move</span> = <span class="Storage">function</span>(<span class="FunctionArgument">meters</span>) {
|
|
|
|
|
<span class="Keyword">return</span> <span class="LibraryFunction">alert</span>(<span class="Variable">this</span>.<span class="LibraryConstant">name</span> <span class="Keyword">+</span> <span class="String"><span class="String">"</span> moved <span class="String">"</span></span> <span class="Keyword">+</span> meters <span class="Keyword">+</span> <span class="String"><span class="String">"</span>m.<span class="String">"</span></span>);
|
|
|
|
|
};
|
|
|
|
|
<span class="Storage">var</span> <span class="FunctionName">Snake</span> = <span class="Storage">function</span>(<span class="FunctionArgument">name</span>) {
|
|
|
|
|
<span class="FunctionName">Snake</span> = <span class="Storage">function</span>(<span class="FunctionArgument">name</span>) {
|
|
|
|
|
<span class="Variable">this</span>.<span class="LibraryConstant">name</span> <span class="Keyword">=</span> name;
|
|
|
|
|
<span class="Keyword">return</span> <span class="Variable">this</span>.<span class="LibraryConstant">name</span>;
|
|
|
|
|
};
|
|
|
|
@ -658,7 +684,7 @@ Snake.__superClass__ <span class="Keyword">=</span> Animal.<span class="LibraryC
|
|
|
|
|
<span class="LibraryFunction">alert</span>(<span class="String"><span class="String">"</span>Slithering...<span class="String">"</span></span>);
|
|
|
|
|
<span class="Keyword">return</span> Snake.__superClass__.move.<span class="LibraryFunction">call</span>(<span class="Variable">this</span>, <span class="Number">5</span>);
|
|
|
|
|
};
|
|
|
|
|
<span class="Storage">var</span> <span class="FunctionName">Horse</span> = <span class="Storage">function</span>(<span class="FunctionArgument">name</span>) {
|
|
|
|
|
<span class="FunctionName">Horse</span> = <span class="Storage">function</span>(<span class="FunctionArgument">name</span>) {
|
|
|
|
|
<span class="Variable">this</span>.<span class="LibraryConstant">name</span> <span class="Keyword">=</span> name;
|
|
|
|
|
<span class="Keyword">return</span> <span class="Variable">this</span>.<span class="LibraryConstant">name</span>;
|
|
|
|
|
};
|
|
|
|
@ -669,16 +695,17 @@ Horse.__superClass__ <span class="Keyword">=</span> Animal.<span class="LibraryC
|
|
|
|
|
<span class="LibraryFunction">alert</span>(<span class="String"><span class="String">"</span>Galloping...<span class="String">"</span></span>);
|
|
|
|
|
<span class="Keyword">return</span> Horse.__superClass__.move.<span class="LibraryFunction">call</span>(<span class="Variable">this</span>, <span class="Number">45</span>);
|
|
|
|
|
};
|
|
|
|
|
<span class="Storage">var</span> sam <span class="Keyword">=</span> <span class="Keyword">new</span> <span class="TypeName">Snake</span>(<span class="String"><span class="String">"</span>Sammy the Python<span class="String">"</span></span>);
|
|
|
|
|
<span class="Storage">var</span> tom <span class="Keyword">=</span> <span class="Keyword">new</span> <span class="TypeName">Horse</span>(<span class="String"><span class="String">"</span>Tommy the Palomino<span class="String">"</span></span>);
|
|
|
|
|
sam <span class="Keyword">=</span> <span class="Keyword">new</span> <span class="TypeName">Snake</span>(<span class="String"><span class="String">"</span>Sammy the Python<span class="String">"</span></span>);
|
|
|
|
|
tom <span class="Keyword">=</span> <span class="Keyword">new</span> <span class="TypeName">Horse</span>(<span class="String"><span class="String">"</span>Tommy the Palomino<span class="String">"</span></span>);
|
|
|
|
|
sam.move();
|
|
|
|
|
tom.move();
|
|
|
|
|
</pre><button onclick='javascript: var Animal = function() {
|
|
|
|
|
</pre><button onclick='javascript: var Animal, Horse, Snake, sam, tom;
|
|
|
|
|
Animal = function() {
|
|
|
|
|
};
|
|
|
|
|
Animal.prototype.move = function(meters) {
|
|
|
|
|
return alert(this.name + " moved " + meters + "m.");
|
|
|
|
|
};
|
|
|
|
|
var Snake = function(name) {
|
|
|
|
|
Snake = function(name) {
|
|
|
|
|
this.name = name;
|
|
|
|
|
return this.name;
|
|
|
|
|
};
|
|
|
|
@ -689,7 +716,7 @@ Snake.prototype.move = function() {
|
|
|
|
|
alert("Slithering...");
|
|
|
|
|
return Snake.__superClass__.move.call(this, 5);
|
|
|
|
|
};
|
|
|
|
|
var Horse = function(name) {
|
|
|
|
|
Horse = function(name) {
|
|
|
|
|
this.name = name;
|
|
|
|
|
return this.name;
|
|
|
|
|
};
|
|
|
|
@ -700,8 +727,8 @@ Horse.prototype.move = function() {
|
|
|
|
|
alert("Galloping...");
|
|
|
|
|
return Horse.__superClass__.move.call(this, 45);
|
|
|
|
|
};
|
|
|
|
|
var sam = new Snake("Sammy the Python");
|
|
|
|
|
var tom = new Horse("Tommy the Palomino");
|
|
|
|
|
sam = new Snake("Sammy the Python");
|
|
|
|
|
tom = new Horse("Tommy the Palomino");
|
|
|
|
|
sam.move();
|
|
|
|
|
tom.move();
|
|
|
|
|
;'>run</button><br class='clear' /></div>
|
|
|
|
@ -715,10 +742,13 @@ tom.move();
|
|
|
|
|
<span class="String"> return [document.title, "Hello JavaScript"].join(": ");</span>
|
|
|
|
|
<span class="String">}<span class="String">`</span></span>
|
|
|
|
|
|
|
|
|
|
</pre><pre class="idle"><span class="Storage">var</span> <span class="FunctionName">hi</span> = <span class="Storage">function</span>() {
|
|
|
|
|
|
|
|
|
|
</pre><pre class="idle"><span class="Storage">var</span> hi;
|
|
|
|
|
<span class="FunctionName">hi</span> = <span class="Storage">function</span>() {
|
|
|
|
|
<span class="Keyword">return</span> [<span class="LibraryClassType">document</span>.<span class="LibraryConstant">title</span>, <span class="String"><span class="String">"</span>Hello JavaScript<span class="String">"</span></span>].<span class="LibraryFunction">join</span>(<span class="String"><span class="String">"</span>: <span class="String">"</span></span>);
|
|
|
|
|
};
|
|
|
|
|
</pre><button onclick='javascript: var hi = function() {
|
|
|
|
|
</pre><button onclick='javascript: var hi;
|
|
|
|
|
hi = function() {
|
|
|
|
|
return [document.title, "Hello JavaScript"].join(": ");
|
|
|
|
|
};
|
|
|
|
|
;alert(hi());'>run: hi()</button><br class='clear' /></div>
|
|
|
|
@ -791,13 +821,16 @@ when <span class="String"><span class="String">"</span>Sunday<span class="S
|
|
|
|
|
<span class="String">about a little and see the watery part of the</span>
|
|
|
|
|
<span class="String">world...<span class="String">"</span></span>
|
|
|
|
|
|
|
|
|
|
</pre><pre class="idle"><span class="Storage">var</span> moby_dick <span class="Keyword">=</span> <span class="String"><span class="String">"</span>Call me Ishmael. Some years ago -- \</span>
|
|
|
|
|
|
|
|
|
|
</pre><pre class="idle"><span class="Storage">var</span> moby_dick;
|
|
|
|
|
moby_dick <span class="Keyword">=</span> <span class="String"><span class="String">"</span>Call me Ishmael. Some years ago -- \</span>
|
|
|
|
|
<span class="String">never mind how long precisely -- having little \</span>
|
|
|
|
|
<span class="String">or no money in my purse, and nothing particular \</span>
|
|
|
|
|
<span class="String">to interest me on shore, I thought I would sail \</span>
|
|
|
|
|
<span class="String">about a little and see the watery part of the \</span>
|
|
|
|
|
<span class="String">world...<span class="String">"</span></span>;
|
|
|
|
|
</pre><button onclick='javascript: var moby_dick = "Call me Ishmael. Some years ago -- \
|
|
|
|
|
</pre><button onclick='javascript: var moby_dick;
|
|
|
|
|
moby_dick = "Call me Ishmael. Some years ago -- \
|
|
|
|
|
never mind how long precisely -- having little \
|
|
|
|
|
or no money in my purse, and nothing particular \
|
|
|
|
|
to interest me on shore, I thought I would sail \
|
|
|
|
|