[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/Strang/javascript-tutorial/master/docs/basic/grammar.md [Back]  [Original]

# JavaScript 

## 

JavaScript line

statement

```javascript
var a = 1 + 3;
```

`var``a``1 + 3``a`

`1 + 3`expression JavaScript 



```javascript
var a = 1 + 3 ; var b = 'abc';
```

JavaScript 

```javascript
;;;
```

3

 JavaScript 

```javascript
1 + 3;
'abc';
```



## 

### 



```javascript
var a = 1;
```

`a``a`11`a``a`1`var``a`

JavaScript `A``a`



```javascript
var a;
a = 1;
```

`undefined``undefined`

```javascript
var a;
a // undefined
```

`var`

```javascript
var a = 1;
// 
a = 1;
```

`var``var`

JavaScript 

```javascript
x
// ReferenceError: x is not defined
```

`x``x`

`var`

```javascript
var a, b;
```

JavaScript 

```javascript
var a = 1;
a = 'hello';
```

`a``a``var`

`var`

```javascript
var x = 1;
var x;
x // 1
```

`x`



```javascript
var x = 1;
var x = 2;

// 

var x = 1;
var x;
x = 2;
```

### 

JavaScript hoisting

```javascript
console.log(a);
var a = 1;
```

`console.log`console`a``a`

```javascript
var a;
console.log(a);
a = 1;
```

`undefined``a`

## 

identifierJavaScript `a``A`

JavaScript 



-  Unicode `$``_`
-  Unicode `0-9`



```javascript
arg0
_tmp
$elem

```



```javascript
1a  // 
23  // 
***  // 
a+b  // 
-d  // 
```



```javascript
var  = 1;
```

> JavaScript argumentsbreakcasecatchclassconstcontinuedebuggerdefaultdeletedoelseenumevalexportextendsfalsefinallyforfunctionifimplementsimportininstanceofinterfaceletnewnullpackageprivateprotectedpublicreturnstaticsuperswitchthisthrowtruetrytypeofvarvoidwhilewithyield

## 

 JavaScript Javascript `//``/*``*/`

```javascript
// 

/*
 
 
 
*/
```

 JavaScript  HTML ``

```javascript
x = 1;  x = 3;
```

`x = 1`

`-->`

```javascript
function countdown(n) {
  while (n --> 0) console.log(n);
}
countdown(3)
// 2
// 1
// 0
```

`n --> 0``n-- > 0`210

## 

JavaScript block

`var`JavaScript scope

```javascript
{
  var a = 1;
}

a // 1
```

`var``a``a``var` JavaScript `for``if``while``function`

## 

JavaScript `if``switch`

### if 

`if` JavaScript `true``false```

```javascript
if ()
  ;

// 
if () ;
```

`if``true``false`

```javascript
if (m === 3)
  m = m + 1;
```

`m`31

`if`

```javascript
if (m === 3) {
  m += 1;
}
```

`if`

`if``=``===``==`

```javascript
var x = 1;
var y = 2;
if (x = y) {
  console.log(x);
}
// "2"
```

`x``y``y``x``x`2`true`



```javascript
if (x = 2) { // 
if (2 = x) { // 
```

`===``==`

### if...else 

`if``else`

```javascript
if (m === 3) {
  // 
} else {
  // 
}
```

`m`3`if``else`

`if...else`

```javascript
if (m === 0) {
  // ...
} else if (m === 1) {
  // ...
} else if (m === 2) {
  // ...
} else {
  // ...
}
```

`else``if`

```javascript
var m = 1;
var n = 2;

if (m !== 1)
if (n === 2) console.log('hello');
else console.log('world');
```

`else``if`

```javascript
if (m !== 1) {
  if (n === 2) {
    console.log('hello');	
  } else {
    console.log('world');
  }
}
```

`else``if`

```javascript
if (m !== 1) {
  if (n === 2) {
    console.log('hello');	
  }
} else {
  console.log('world');
}
// world
```

### switch 

`if...else``switch`

```javascript
switch (fruit) {
  case "banana":
    // ...
    break;
  case "apple":
    // ...
    break;
  default:
    // ...
}
```

`fruit``case``case``default``case``break``case``switch`

```javascript
var x = 1;

switch (x) {
  case 1:
    console.log('x 1');
  case 2:
    console.log('x 2');
  default:
    console.log('x ');
}
// x1
// x2
// x
```

`case``break``switch`

```javascript
switch (x) {
  case 1:
    console.log('x 1');
    break;
  case 2:
    console.log('x 2');
    break;
  default:
    console.log('x ');
}
```

`switch``case`

```javascript
switch (1 + 3) {
  case 2 + 2:
    f();
    break;
  default:
    neverHappens();
}
```

`default`

`switch``case``===``==`

```javascript
var x = 1;

switch (x) {
  case true:
    console.log('x ');
    break;
  default:
    console.log('x ');
}
// x 
```

`x``case true``switch`

###  ?:

JavaScript `?:`

```javascript
() ? 1 : 2
```

`true`12

```javascript
var even = (n % 2 === 0) ? true : false;
```

`n`2`even``true``false`

```javascript
var even;
if (n % 2 === 0) {
  even = true;
} else {
  even = false;
}
```

`if...else...`

```javascript
var myVar;
console.log(
  myVar ?
  'myVar has a value' :
  'myVar does not have a value'
)
// myVar does not have a value
```



```javascript
var msg = '' + n + '' + (n % 2 === 0 ? '' : '');
```



## 



### while 

`While`

```javascript
while ()
  ;

// 
while () ;
```

`while`

```javascript
while () {
  ;
}
```

`while`

```javascript
var i = 0;

while (i < 100) {
  console.log('i ' + i);
  i = i + 1;
}
```

100`i`100



```javascript
while (true) {
  console.log('Hello, world');
}
```

### for 

`for`

```javascript
for (; ; )
  

// 

for (; ; ) {
  
}
```

`for`

- initialize
- test
- increment



```javascript
var x = 3;
for (var i = 0; i < x; i++) {
  console.log(i);
}
// 0
// 1
// 2
```

`var i = 0``i``i < x``i``x``i++``i`1

`for``while``while`

```javascript
var x = 3;
var i = 0;

while (i < x) {
  console.log(i);
  i++;
}
```

`for`initializetestincrement

```javascript
for ( ; ; ){
  console.log('Hello World');
}
```

`for`

### do...while 

`do...while``while`

```javascript
do
  
while ();

// 
do {
  
} while ();
```

`do...while``while`



```javascript
var x = 3;
var i = 0;

do {
  console.log(i);
  i++;
} while(i < x);
```

### break  continue 

`break``continue`

`break`

```javascript
var i = 0;

while(i < 100) {
  console.log('i ' + i);
  i++;
  if (i === 10) break;
}
```

10`i`10

`for``break`

```javascript
for (var i = 0; i < 5; i++) {
  console.log(i);
  if (i === 3)
    break;
}
// 0
// 1
// 2
// 3
```

`i`3

`continue`

```javascript
var i = 0;

while (i < 100){
  i++;
  if (i % 2 === 0) continue;
  console.log('i ' + i);
}
```

`i``i``i`

`break``continue`

### label

JavaScript label

```javascript
label:
  
```



`break``continue`

```javascript
top:
  for (var i = 0; i < 3; i++){
    for (var j = 0; j < 3; j++){
      if (i === 1 && j === 1) break top;
      console.log('i=' + i + ', j=' + j);
    }
  }
// i=0, j=0
// i=0, j=1
// i=0, j=2
// i=1, j=0
```

`break``top``top``break`



```javascript
foo: {
  console.log(1);
  break foo;
  console.log('');
}
console.log(2);
// 1
// 2
```

`break foo`

`continue`

```javascript
top:
  for (var i = 0; i < 3; i++){
    for (var j = 0; j < 3; j++){
      if (i === 1 && j === 1) continue top;
      console.log('i=' + i + ', j=' + j);
    }
  }
// i=0, j=0
// i=0, j=1
// i=0, j=2
// i=1, j=0
// i=2, j=0
// i=2, j=1
// i=2, j=2
```

`continue``continue`

## 

- Axel Rauschmayer, [A quick overview of JavaScript](http://www.2ality.com/2011/10/javascript-overview.html)


Web Proxy Viewer  |  New URL  |  Original Page