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> |