447 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			HTML
		
	
	
	
			
		
		
	
	
			447 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			HTML
		
	
	
	
| <!DOCTYPE html>
 | |
| <html lang="en">
 | |
| 
 | |
| <head>
 | |
|     <meta charset="UTF-8">
 | |
|     <meta http-equiv="X-UA-Compatible" content="IE=edge">
 | |
|     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | |
|     <title>Project 4 - Build A Technical Document Page</title>
 | |
|     <link href="prism.css" rel="stylesheet" />
 | |
|     <link rel="stylesheet" href="style.css">
 | |
| 
 | |
| </head>
 | |
| 
 | |
| <body>
 | |
|     <nav id="navbar">
 | |
|         <header>JS Documentation</header>
 | |
|         <ul>
 | |
|             <li><a class="nav-link" href="#Introduction">Introduction</a></li>
 | |
|             <li>
 | |
|                 <a class="nav-link" href="#What_you_should_already_know">What you should already know</a>
 | |
|             </li>
 | |
|             <li>
 | |
|                 <a class="nav-link" href="#JavaScript_and_Java">JavaScript and Java</a>
 | |
|             </li>
 | |
|             <li><a class="nav-link" href="#Hello_world">Hello world</a></li>
 | |
|             <li><a class="nav-link" href="#Variables">Variables</a></li>
 | |
|             <li>
 | |
|                 <a class="nav-link" href="#Declaring_variables">Declaring variables</a>
 | |
|             </li>
 | |
|             <li><a class="nav-link" href="#Variable_scope">Variable scope</a></li>
 | |
|             <li><a class="nav-link" href="#Global_variables">Global variables</a></li>
 | |
|             <li><a class="nav-link" href="#Constants">Constants</a></li>
 | |
|             <li><a class="nav-link" href="#Data_types">Data types</a></li>
 | |
|             <li>
 | |
|                 <a class="nav-link" href="#if...else_statement">if...else statement</a>
 | |
|             </li>
 | |
|             <li><a class="nav-link" href="#while_statement">while statement</a></li>
 | |
|             <li>
 | |
|                 <a class="nav-link" href="#Function_declarations">Function declarations</a>
 | |
|             </li>
 | |
|             <li><a class="nav-link" href="#Reference">Reference</a></li>
 | |
|         </ul>
 | |
|     </nav>
 | |
| 
 | |
|     <main id="main-doc">
 | |
|         <section class="main-section" id="Introduction">
 | |
|             <header>Introduction</header>
 | |
|             <article>
 | |
|                 <p>
 | |
|                     JavaScript is a cross-platform, object-oriented scripting language. It is a small and lightweight
 | |
|                     language. Inside a host environment (for example, a web browser), JavaScript can be connected to the
 | |
|                     objects of its environment to provide programmatic control over them.
 | |
|                 </p>
 | |
| 
 | |
|                 <p>
 | |
|                     JavaScript contains a standard library of objects, such as Array, Date, and Math, and a core set of
 | |
|                     language elements such as operators, control structures, and statements. Core JavaScript can be
 | |
|                     extended for a variety of purposes by supplementing it with additional objects; for example:
 | |
|                 </p>
 | |
|                 <ul>
 | |
|                     <li>
 | |
|                         Client-side JavaScript extends the core language by supplying objects to control a browser and
 | |
|                         its Document Object Model (DOM). For example, client-side extensions allow an application to
 | |
|                         place elements on an HTML form and respond to user events such as mouse clicks, form input, and
 | |
|                         page navigation.
 | |
|                     </li>
 | |
|                     <li>
 | |
|                         Server-side JavaScript extends the core language by supplying objects relevant to running
 | |
|                         JavaScript on a server. For example, server-side extensions allow an application to communicate
 | |
|                         with a database, provide continuity of information from one invocation to another of the
 | |
|                         application, or perform file manipulations on a server.
 | |
|                     </li>
 | |
|                 </ul>
 | |
|             </article>
 | |
|         </section>
 | |
|         <section class="main-section" id="What_you_should_already_know">
 | |
|             <header>What you should already know</header>
 | |
|             <article>
 | |
|                 <p>This guide assumes you have the following basic background:</p>
 | |
| 
 | |
|                 <ul>
 | |
|                     <li>
 | |
|                         A general understanding of the Internet and the World Wide Web (WWW).
 | |
|                     </li>
 | |
|                     <li>
 | |
|                         Good working knowledge of HyperText Markup Language (HTML).
 | |
|                     </li>
 | |
|                     <li>
 | |
|                         Some programming experience. If you are new to programming, try one of the tutorials linked on
 | |
|                         the main page about JavaScript.
 | |
|                     </li>
 | |
|                 </ul>
 | |
|             </article>
 | |
|         </section>
 | |
|         <section class="main-section" id="JavaScript_and_Java">
 | |
|             <header>JavaScript and Java</header>
 | |
|             <article>
 | |
|                 <p>
 | |
|                     JavaScript and Java are similar in some ways but fundamentally different in some others. The
 | |
|                     JavaScript language resembles Java but does not have Java's static typing and strong type checking.
 | |
|                     JavaScript follows most Java expression syntax, naming conventions and basic control-flow constructs
 | |
|                     which was the reason why it was renamed from LiveScript to JavaScript.
 | |
|                 </p>
 | |
| 
 | |
|                 <p>
 | |
|                     In contrast to Java's compile-time system of classes built by
 | |
|                     declarations, JavaScript supports a runtime system based on a small
 | |
|                     number of data types representing numeric, Boolean, and string values.
 | |
|                     JavaScript has a prototype-based object model instead of the more common class-based object model.
 | |
|                     The prototype-based model provides dynamic inheritance; that is, what is inherited can vary for
 | |
|                     individual objects.
 | |
|                     JavaScript also supports functions without any special declarative
 | |
|                     requirements. Functions can be properties of objects, executing as
 | |
|                     loosely typed methods.
 | |
|                 </p>
 | |
|                 <p>
 | |
|                     JavaScript is a very free-form language compared to Java. You do not
 | |
|                     have to declare all variables, classes, and methods. You do not have to be concerned with whether
 | |
|                     methods are public, private, or protected, and you do not have to implement interfaces. Variables,
 | |
|                     parameters, and function return types are not explicitly typed.
 | |
|                 </p>
 | |
|             </article>
 | |
|         </section>
 | |
|         <section class="main-section" id="Hello_world">
 | |
|             <header>Hello world</header>
 | |
|             <article>
 | |
|                 To get started with writing JavaScript, open the Scratchpad and write your first "Hello world"
 | |
|                 JavaScript code:
 | |
| 
 | |
|                 <pre>
 | |
| <code class="language-js">function greetMe(yourName) 
 | |
| { 
 | |
|     alert("Hello " + yourName); 
 | |
| }
 | |
| 
 | |
| greetMe("World");
 | |
| </code></pre>
 | |
|             </article>
 | |
|         </section>
 | |
|         <section class="main-section" id="Variables">
 | |
|             <header>Variables</header>
 | |
|             <p>
 | |
|                 You use variables as symbolic names for values in your application. The
 | |
|                 names of variables, called identifiers, conform to certain rules.
 | |
|             </p>
 | |
|             <p>
 | |
|                 A JavaScript identifier must start with a letter, underscore (_), or
 | |
|                 dollar sign ($); subsequent characters can also be digits (0-9). Because
 | |
|                 JavaScript is case sensitive, letters include the characters "A" through
 | |
|                 "Z" (uppercase) and the characters "a" through "z" (lowercase).
 | |
|             </p>
 | |
|             <p>
 | |
|                 You can use ISO 8859-1 or Unicode letters such as å and ü in identifiers.
 | |
|                 You can also use the Unicode escape sequences as characters in
 | |
|                 identifiers. Some examples of legal names are Number_hits, temp99, and
 | |
|                 _name.
 | |
|             </p>
 | |
|         </section>
 | |
|         <section class="main-section" id="Declaring_variables">
 | |
|             <header>Declaring variables</header>
 | |
|             <article>
 | |
|                 You can declare a variable in three ways:
 | |
|                 <p>
 | |
|                     With the keyword var. For example, <code class="language-js">var x = 42.</code> This syntax can be
 | |
|                     used to declare both local and global variables.
 | |
|                 </p>
 | |
|                 <p>
 | |
|                     By simply assigning it a value. For example, <code class="language-js">x = 42.</code> This always
 | |
|                     declares a global variable. It generates a strict JavaScript
 | |
|                     warning. You shouldn't use this variant.
 | |
|                 </p>
 | |
|                 <p>
 | |
|                     With the keyword let. For example, <code class="language-js"> let y = 13.</code> This syntax
 | |
|                     can be used to declare a block scope local variable. See Variable scope
 | |
|                     below.
 | |
|                 </p>
 | |
|             </article>
 | |
|         </section>
 | |
|         <section class="main-section" id="Variable_scope">
 | |
|             <header>Variable scope</header>
 | |
|             <article>
 | |
|                 <p>
 | |
|                     When you declare a variable outside of any function, it is called a
 | |
|                     global variable, because it is available to any other code in the
 | |
|                     current document. When you declare a variable within a function, it is called a local variable,
 | |
|                     because it is available only within that
 | |
|                     function.
 | |
|                 </p>
 | |
| 
 | |
|                 <p>
 | |
|                     JavaScript before ECMAScript 2015 does not have block statement scope; rather, a variable declared
 | |
|                     within a block is local to the function (or global scope) that the block resides within. For example
 | |
|                     the following code will log 5, because the scope of x is the function (or global context) within
 | |
|                     which x is declared, not the block, which in this case is an if statement.
 | |
|                 </p>
 | |
|                 <pre><code class="language-js">if (true) { var x = 5; } console.log(x); // 5</code></pre>
 | |
|                 <p>
 | |
|                     This behavior changes, when using the let declaration introduced in
 | |
|                     ECMAScript 2015.
 | |
|                 </p>
 | |
| 
 | |
|                 <pre>
 | |
| <code class="language-js">if (true) { let y = 5; } 
 | |
| console.log(y);
 | |
| // ReferenceError: y is not defined
 | |
| </code></pre>
 | |
|             </article>
 | |
|         </section>
 | |
|         <section class="main-section" id="Global_variables">
 | |
|             <header>Global variables</header>
 | |
|             <article>
 | |
|                 <p>
 | |
|                     Global variables are in fact properties of the global object. In web
 | |
|                     pages the global object is window, so you can set and access global
 | |
|                     variables using the window.variable syntax.
 | |
|                 </p>
 | |
| 
 | |
|                 <p>
 | |
|                     Consequently, you can access global variables declared in one window or frame from another window or
 | |
|                     frame by specifying the window or frame name. For example, if a variable called phoneNumber is
 | |
|                     declared in a document, you can refer to this variable from an iframe as <code
 | |
|                         class="language-js">parent.phoneNumber</code>.
 | |
|                 </p>
 | |
|             </article>
 | |
|         </section>
 | |
|         <section class="main-section" id="Constants">
 | |
|             <header>Constants</header>
 | |
|             <article>
 | |
|                 <p>
 | |
|                     You can create a read-only, named constant with the const keyword. The syntax of a constant
 | |
|                     identifier is the same as for a variable identifier: it must start with a letter, underscore or
 | |
|                     dollar sign and can contain alphabetic, numeric, or underscore characters.
 | |
|                 </p>
 | |
| 
 | |
|                 <pre><code class="language-js">const PI = 3.14;</code></pre>
 | |
|                 <p>
 | |
|                     A constant cannot change value through assignment or be re-declared while the script is running. It
 | |
|                     has to be initialized to a value.
 | |
|                 </p>
 | |
| 
 | |
|                 <p>
 | |
|                     The scope rules for constants are the same as those for let block scope variables. If the const
 | |
|                     keyword is omitted, the identifier is assumed to represent a variable.
 | |
|                 </p>
 | |
| 
 | |
|                 <p>
 | |
|                     You cannot declare a constant with the same name as a function or variable in the same scope. For
 | |
|                     example:
 | |
|                 </p>
 | |
| 
 | |
|                 <pre>
 | |
| <code class="language-js">// THIS WILL CAUSE AN ERROR 
 | |
| function f() {}; const f = 5; 
 | |
| // THIS WILL CAUSE AN ERROR ALSO 
 | |
| function f() { const g = 5; var g;//statements}
 | |
| </code></pre>
 | |
| 
 | |
|                 However, object attributes are not protected, so the following statement
 | |
|                 is executed without problems.
 | |
| 
 | |
|                 <pre><code class="language-js">const MY_OBJECT = {"key": "value"}; MY_OBJECT.key = "otherValue";</code></pre>
 | |
|             </article>
 | |
|         </section>
 | |
|         <section class="main-section" id="Data_types">
 | |
|             <header>Data types</header>
 | |
|             <article>
 | |
|                 <p>The latest ECMAScript standard defines seven data types:</p>
 | |
|                 <ul>
 | |
|                     <li>
 | |
|                         <p>Six data types that are primitives:</p>
 | |
|                         <ul>
 | |
|                             <li><b>Boolean</b>. true and false.</li>
 | |
|                             <li>
 | |
|                                 <b>null</b>. A special keyword denoting a null value. Because JavaScript is
 | |
|                                 case-sensitive, null is not the same as Null, NULL, or any other variant.
 | |
|                             </li>
 | |
|                             <li>
 | |
|                                 <b>undefined</b>. A top-level property whose value is undefined.
 | |
|                             </li>
 | |
|                             <li><b>Number</b>. 42 or 3.14159.</li>
 | |
|                             <li><b>String</b>. "Howdy"</li>
 | |
|                             <li>
 | |
|                                 <b>Symbol</b> (new in ECMAScript 2015). A data type whose instances are unique and
 | |
|                                 immutable.
 | |
|                             </li>
 | |
|                         </ul>
 | |
|                     </li>
 | |
| 
 | |
|                     <li>and <b>Object</b></li>
 | |
|                 </ul>
 | |
|                 Although these data types are a relatively small amount, they enable you
 | |
|                 to perform useful functions with your applications. Objects and functions
 | |
|                 are the other fundamental elements in the language. You can think of
 | |
|                 objects as named containers for values, and functions as procedures that
 | |
|                 your application can perform.
 | |
|             </article>
 | |
|         </section>
 | |
|         <section class="main-section" id="if...else_statement">
 | |
|             <header>if...else statement</header>
 | |
|             <article>
 | |
|                 Use the if statement to execute a statement if a logical condition is
 | |
|                 true. Use the optional else clause to execute a statement if the condition is false. An if statement
 | |
|                 looks as follows:
 | |
| 
 | |
|                 <pre><code class="language-js">if (condition) { statement_1; } else { statement_2; }</code></pre>
 | |
| 
 | |
|                 condition can be any expression that evaluates to true or false. See
 | |
|                 Boolean for an explanation of what evaluates to true and false. If
 | |
|                 condition evaluates to true, statement_1 is executed; otherwise,
 | |
|                 statement_2 is executed. statement_1 and statement_2 can be any statement, including further nested if
 | |
|                 statements.
 | |
|                 <p>
 | |
|                     You may also compound the statements using else if to have multiple
 | |
|                     conditions tested in sequence, as follows:
 | |
|                 </p>
 | |
| 
 | |
|                 <pre>
 | |
| <code class="language-js">if (condition_1) { statement_1; }
 | |
| else if (condition_2) { statement_2; }
 | |
| else if (condition_n) { statement_n; }
 | |
| else { statement_last; }</code>
 | |
| </pre>
 | |
| 
 | |
|                 In the case of multiple conditions only the first logical condition which evaluates to true will be
 | |
|                 executed. To execute multiple statements, group them within a block statement ({ ... }) . In general,
 | |
|                 it's good practice to always use block statements, especially when nesting if statements:
 | |
| 
 | |
|                 <pre>
 | |
| <code class="language-js">if (condition) { 
 | |
|     statement_1_runs_if_condition_is_true;
 | |
|     statement_2_runs_if_condition_is_true; 
 | |
| } else {
 | |
|     statement_3_runs_if_condition_is_false;
 | |
|     statement_4_runs_if_condition_is_false; 
 | |
| }
 | |
| </code></pre>
 | |
| 
 | |
|                 It is advisable to not use simple assignments in a conditional expression, because the assignment can be
 | |
|                 confused with equality when glancing over the code. For example, do not use the following code:
 | |
| 
 | |
|                 <pre><code class="language-js">if (x = y) { /* statements here */ }</code></pre>
 | |
| 
 | |
|                 If you need to use an assignment in a conditional expression, a common practice is to put additional
 | |
|                 parentheses around the assignment. For example:
 | |
| 
 | |
|                 <pre><code class="language-js">if ((x = y)) { /* statements here */ }</code></pre>
 | |
|             </article>
 | |
|         </section>
 | |
|         <section class="main-section" id="while_statement">
 | |
|             <header>while statement</header>
 | |
|             <article>
 | |
|                 A while statement executes its statements as long as a specified condition evaluates to true. A while
 | |
|                 statement looks as follows:
 | |
| 
 | |
|                 <pre><code >while (condition) statement</code></pre>
 | |
| 
 | |
|                 <p>
 | |
|                     If the condition becomes false, statement within the loop stops executing and control passes to the
 | |
|                     statement following the loop.
 | |
|                 </p>
 | |
| 
 | |
|                 <p>
 | |
|                     The condition test occurs before statement in the loop is executed. If the condition returns true,
 | |
|                     statement is executed and the condition is tested again. If the condition returns false, execution
 | |
|                     stops and control is passed to the statement following while.
 | |
|                 </p>
 | |
| 
 | |
|                 <p>
 | |
|                     To execute multiple statements, use a block statement ({ ... }) to group those statements.
 | |
|                 </p>
 | |
| 
 | |
|                 Example:
 | |
| 
 | |
|                 <p>
 | |
|                     The following while loop iterates as long as n is less than three:
 | |
|                 </p>
 | |
| 
 | |
|                 <pre><code class="language-js">var n = 0; var x = 0; while (n < 3) { n++; x += n; }</code></pre>
 | |
|                 <p>
 | |
|                     With each iteration, the loop increments n and adds that value to x.
 | |
|                     Therefore, x and n take on the following values:
 | |
|                 </p>
 | |
| 
 | |
|                 <ul>
 | |
|                     <li>After the first pass: n = 1 and x = 1</li>
 | |
|                     <li>After the second pass: n = 2 and x = 3</li>
 | |
|                     <li>After the third pass: n = 3 and x = 6</li>
 | |
|                 </ul>
 | |
|                 <p>
 | |
|                     After completing the third pass, the condition n < 3 is no longer
 | |
|                     true, so the loop terminates.
 | |
|                 </p>
 | |
|             </article>
 | |
|         </section>
 | |
|         <section class="main-section" id="Function_declarations">
 | |
|             <header>Function declarations</header>
 | |
|             <article>
 | |
|                 A function definition (also called a function declaration, or function
 | |
|                 statement) consists of the function keyword, followed by:
 | |
| 
 | |
|                 <ul>
 | |
|                     <li>The name of the function.</li>
 | |
|                     <li>
 | |
|                         A list of arguments to the function, enclosed in parentheses and
 | |
|                         separated by commas.
 | |
|                     </li>
 | |
|                     <li>
 | |
|                         The JavaScript statements that define the function, enclosed in curly brackets, { }.
 | |
|                     </li>
 | |
|                 </ul>
 | |
|                 <p>
 | |
|                     For example, the following code defines a simple function named square:
 | |
|                 </p>
 | |
| 
 | |
|                 <pre><code class="language-js">function square(number) { return number * number; }</code></pre>
 | |
|                 <p>
 | |
|                     The function square takes one argument, called number. The function
 | |
|                     consists of one statement that says to return the argument of the
 | |
|                     function (that is, number) multiplied by itself. The return statement specifies the value returned
 | |
|                     by the function.
 | |
|                 </p>
 | |
|                 <pre><code class="language-js">return number * number;</code></pre>
 | |
|                 <p>
 | |
|                     Primitive parameters (such as a number) are passed to functions by
 | |
|                     value; the value is passed to the function, but if the function changes the value of the parameter,
 | |
|                     this change is not reflected globally or in the calling function.
 | |
|                 </p>
 | |
|             </article>
 | |
|         </section>
 | |
|         <section class="main-section" id="Reference">
 | |
|             <header>Reference</header>
 | |
|             <article>
 | |
|                 <ul>
 | |
|                     <li>
 | |
|                         All the documentation in this page is taken from
 | |
|                         <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide" target="_blank">MDN</a>
 | |
|                     </li>
 | |
|                 </ul>
 | |
|             </article>
 | |
|         </section>
 | |
|     </main>
 | |
| 
 | |
|     <script src="https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js"></script>
 | |
|     <script src="prism.js"></script>
 | |
| </body>
 | |
| 
 | |
| </html> |