mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2025-05-05 14:28:31 +00:00
Merge remote-tracking branch 'adambard/master'
This commit is contained in:
commit
011c0b5fc7
@ -16,9 +16,14 @@ JavaScript isn't just limited to web browsers, though: Node.js, a project that
|
||||
provides a standalone runtime for Google Chrome's V8 JavaScript engine, is
|
||||
becoming more and more popular.
|
||||
|
||||
JavaScript has a C-like syntax, so if you've used languages like C or Java,
|
||||
a lot of the basic syntax will already be familiar. Despite this, and despite
|
||||
the similarity in name, JavaScript's object model is significantly different to
|
||||
Java's.
|
||||
|
||||
```js
|
||||
// Comments are like C's. Single-line comments start with two slashes,
|
||||
/* and multiline comments start with slash-star
|
||||
// Single-line comments start with two slashes.
|
||||
/* Multiline comments start with slash-star,
|
||||
and end with star-slash */
|
||||
|
||||
// Statements can be terminated by ;
|
||||
@ -136,7 +141,7 @@ undefined; // used to indicate a value is not currently present (although
|
||||
// character.
|
||||
var someVar = 5;
|
||||
|
||||
// if you leave the var keyword off, you won't get an error...
|
||||
// If you leave the var keyword off, you won't get an error...
|
||||
someOtherVar = 10;
|
||||
|
||||
// ...but your variable will be created in the global scope, not in the scope
|
||||
@ -145,7 +150,7 @@ someOtherVar = 10;
|
||||
// Variables declared without being assigned to are set to undefined.
|
||||
var someThirdVar; // = undefined
|
||||
|
||||
// if you wan't to declare a couple of variables, then you could use a comma
|
||||
// If you want to declare a couple of variables, then you could use a comma
|
||||
// separator
|
||||
var someFourthVar = 2, someFifthVar = 4;
|
||||
|
||||
@ -194,8 +199,6 @@ myObj.myFourthKey; // = undefined
|
||||
///////////////////////////////////
|
||||
// 3. Logic and Control Structures
|
||||
|
||||
// The syntax for this section is almost identical to Java's.
|
||||
|
||||
// The `if` structure works as you'd expect.
|
||||
var count = 1;
|
||||
if (count == 3){
|
||||
@ -223,15 +226,15 @@ for (var i = 0; i < 5; i++){
|
||||
// will run 5 times
|
||||
}
|
||||
|
||||
//The For/In statement loops iterates over every property across the entire prototype chain
|
||||
// The for/in statement iterates over every property across the entire prototype chain.
|
||||
var description = "";
|
||||
var person = {fname:"Paul", lname:"Ken", age:18};
|
||||
for (var x in person){
|
||||
description += person[x] + " ";
|
||||
}
|
||||
|
||||
//If only want to consider properties attached to the object itself,
|
||||
//and not its prototypes use hasOwnProperty() check
|
||||
// To only consider properties attached to the object itself
|
||||
// and not its prototypes, use the `hasOwnProperty()` check.
|
||||
var description = "";
|
||||
var person = {fname:"Paul", lname:"Ken", age:18};
|
||||
for (var x in person){
|
||||
@ -240,8 +243,9 @@ for (var x in person){
|
||||
}
|
||||
}
|
||||
|
||||
//for/in should not be used to iterate over an Array where the index order is important.
|
||||
//There is no guarantee that for/in will return the indexes in any particular order
|
||||
// For/in should not be used to iterate over an Array where the index order
|
||||
// is important, as there is no guarantee that for/in will return the indexes
|
||||
// in any particular order.
|
||||
|
||||
// && is logical and, || is logical or
|
||||
if (house.size == "big" && house.colour == "blue"){
|
||||
@ -256,7 +260,7 @@ var name = otherName || "default";
|
||||
|
||||
|
||||
// The `switch` statement checks for equality with `===`.
|
||||
// use 'break' after each case
|
||||
// Use 'break' after each case
|
||||
// or the cases after the correct one will be executed too.
|
||||
grade = 'B';
|
||||
switch (grade) {
|
||||
@ -503,6 +507,10 @@ myNumber === myNumberObj; // = false
|
||||
if (0){
|
||||
// This code won't execute, because 0 is falsy.
|
||||
}
|
||||
if (new Number(0)){
|
||||
// This code will execute, because wrapped numbers are objects, and objects
|
||||
// are always truthy.
|
||||
}
|
||||
|
||||
// However, the wrapper objects and the regular builtins share a prototype, so
|
||||
// you can actually add functionality to a string, for instance.
|
||||
@ -547,6 +555,11 @@ of the language.
|
||||
|
||||
[JavaScript: The Definitive Guide][6] is a classic guide and reference book.
|
||||
|
||||
[Eloquent Javascript][8] by Marijn Haverbeke is an excellent JS book/ebook with attached terminal
|
||||
|
||||
[Javascript: The Right Way][9] is a guide intended to introduce new developers to JavaScript and help experienced developers learn more about its best practices.
|
||||
|
||||
|
||||
In addition to direct contributors to this article, some content is adapted from
|
||||
Louie Dinh's Python tutorial on this site, and the [JS Tutorial][7] on the
|
||||
Mozilla Developer Network.
|
||||
@ -559,3 +572,5 @@ Mozilla Developer Network.
|
||||
[5]: http://bonsaiden.github.io/JavaScript-Garden/
|
||||
[6]: http://www.amazon.com/gp/product/0596805527/
|
||||
[7]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript
|
||||
[8]: http://eloquentjavascript.net/
|
||||
[9]: http://jstherightway.org/
|
||||
|
Loading…
Reference in New Issue
Block a user