> For the complete documentation index, see [llms.txt](https://ayugioh2003.gitbook.io/free-code-camp-practice/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ayugioh2003.gitbook.io/free-code-camp-practice/front-end-development-certification/basic-javascript/basic-javascript-30.md).

# Basic JavaScript 030

01-Comment your JavaScript Code

```javascript
// inline comment

/**
  * block comment
  *
  *
  */
```

02-Declare JavaScript Variables

* 宣告變數
* 可以直接從七種資料型態宣告
* 操作指向數據的指針，而不是資料表身
* 或直接使用 var

```javascript
// Example
var ourName;
var myName;
// Define myName below this line
```

03-Storing Values with the Assignment Operator

```javascript
// Setup
var a;
var b = 2;

// Only change code below this line
a = 7;
b = a;
```

04-Initializing Variables with the Assignment Operator

* 使用 `=` 給變數一個初始值

```javascript
// Example
var ourVar = 19;

// Only change code below this line
var a = 9;
```

05-Understanding Uninitialized Variables

* 只有宣告變數的話，初始值為 undefined
* 如果對 undefined 變數做數學運算，結果會是 NaN，代表 not a number

```javascript
// Initialize these three variables
var a=5;
var b=10;
var c="I am a";

// Do not change code below this line

a = a + 1;
b = b + 5;
c = c + " String!";
```

06-Understanding Case Sensitivity in Variables

* JS 的變數對大小寫敏感
* 但不要使用這個特性，會搞混
* 推薦駝峰命名法 camelCase
* 變數的第一個字母小寫，隨後單字的第一個字母大寫

```javascript
// Declarations
var studlyCapVar;
var properCamelCase;
var titleCaseOver;

// Assignments
studlyCapVar = 10;
properCamelCase = "A String";
titleCaseOver = 9000;
```

07-Add Two Numbers with JavaScript

```javascript
var sum = 10 + 10;
```

08-Subtract One Number from Another with JavaScript

```javascript
var difference = 45 - 33;
```

09-Multiply Two Numbers with JavaScript

```javascript
var product = 8 * 10;
```

10-Divide One Number by Another with JavaScript

```javascript
var quotient = 66 / 33;
```

11-Increment a Number with JavaScript

* i++

```javascript
var myVar = 87;

// Only change code below this line
myVar++;
```

12-Decrement a Number with JavaScript

* i--

```javascript
var myVar = 11;

// Only change code below this line
myVar--;
```

13-Create Decimal Numbers with JavaScript

```javascript
var ourDecimal = 5.7;

// Only change code below this line
var myDecimal = 5.7;
```

14-Multiply Two Decimals with JavaScript

```javascript
var product = 2.0 * 2.5;
```

15-Divide one Decimal by Another with JavaScript

```javascript
Divide one Decimal by Another with JavaScript
```

16-Finding a Remainder in JavaScript

> Example 5 % 2 = 1 because Math.floor(5 / 2) = 2 (Quotient) 2 \* 2 = 4 5 - 4 = 1 (Remainder)

```javascript
// Only change code below this line

var remainder = 11 % 3 ;
```

17-Compound Assignment With Augmented Addition

```javascript
var a = 3;
var b = 17;
var c = 12;

// Only modify code below this line

a += 12;
b += 9;
c += 7;
```

18-Compound Assignment With Augmented Subtraction

```javascript
var a = 11;
var b = 9;
var c = 3;

// Only modify code below this line

a -= 6;
b -= 15;
c -= 1;
```

19-Compound Assignment With Augmented Multiplication

```javascript
var a = 5;
var b = 12;
var c = 4.6;

// Only modify code below this line

a *= 5;
b *= 3 ;
c *= 10;
```

20-Compound Assignment With Augmented Division

```javascript
var a = 48;
var b = 108;
var c = 33;

// Only modify code below this line

a /= 12;
b /=  4;
c /= 11;
```

21-Convert Celsius to Fahrenheit

```javascript
function convertToF(celsius) {
  var fahrenheit;
  // Only change code below this line

  fahrenheit = celsius * (9/5) + 32;  

  // Only change code above this line
  return fahrenheit;
}

// Change the inputs below to test your code
convertToF(30);
```

22-Declare String Variables

```javascript
// Example
var firstName = "Alan";
var lastName = "Turing";

// Only change code below this line

var myFirstName = "Chiu";
var myLastName = "Chi Wei";
```

23-Escaping Literal Quotes in Strings

```javascript
var myStr; // Change this line

myStr = "I am a \"double quoted\" string inside \"double quotes\".";
```

24-Quoting Strings with Single Quotes

* 這功能好神奇，這樣不需要 back slash、反斜杠來跳脫字元了

```javascript
var myStr = '<a href="http://www.example.com" target="_blank">Link</a>';
```

25-Escape Sequences in Strings

* 超詭異的用法 ==

```
Code    Output
\'    单引号 single quote
\"    双引号 double quote
\\    反斜杠符 backslash
\n    换行符 newline
\r    回车符 carriage return
\t    制表符 tab
\b    退格符 backspace
\f    换页符 form feed
```

```javascript
var myStr; // Change this line

myStr = 'FirstLine\n\\SecondLine\\\rThirdLine';
```

26-Concatenating Strings with Plus Operator

```javascript
// Example
var ourStr = "I come first. " + "I come second.";

// Only change code below this line

var myStr = "This is the start. " + "This is the end.";
```

27-Concatenating Strings with the Plus Equals Operator

```javascript
// Example
var ourStr = "I come first. ";
ourStr += "I come second.";

// Only change code below this line

var myStr = "This is the first sentence. ";
myStr += "This is the second sentence.";
```

28-Constructing Strings with Variables

```javascript
// Example
var ourName = "Free Code Camp";
var ourStr = "Hello, our name is " + ourName + ", how are you?";

// Only change code below this line
var myName = "邱繼緯";
var myStr = "My name is" + myName + " and I am swell";
```

29-Appending Variables to Strings

```javascript
// Example
var anAdjective = "awesome!";
var ourStr = "Free Code Camp is ";
ourStr += anAdjective;

// Only change code below this line

var someAdjective = "酷喔喔";
var myStr = "Learning to code is ";
myStr += someAdjective;
```

30-Find the Length of a String

```javascript
// Example
var firstNameLength = 0;
var firstName = "Ada";

firstNameLength = firstName.length;

// Setup
var lastNameLength = 0;
var lastName = "Lovelace";

// Only change code below this line.

lastNameLength = lastName.length;
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://ayugioh2003.gitbook.io/free-code-camp-practice/front-end-development-certification/basic-javascript/basic-javascript-30.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
