# JavaScript重點整理

1. function除了直接呼叫外, 同時也可以是物件的類constructer function, `this`的觀念, 及使用`bind`來改變this指向的object. 是其它語言比較沒有的.
2. 當直接呼叫function時(沒有使用`.` or `new` or `={}` or `bind/call/apply`時)，`this`是指到global物件.
3. 可使用object literal notion, `{}` 來當做基本類型`JavaScript Object`的定義. 若{}沒有包含function, 就變成一般的JSON資料了.
4. global scope對應到一個global object.
5. function內部包含其他function宣告(nested function), 其他語言可能有類似但沒有這麼直接.
6. object可runtime執行時輕易動態擴充member (ES5 way)
7. 多了 `===` 這個operator
8. 沒有`private`關鍵字
9. JavaScript沒有`C` type的pointer跟`C#/Java` 其reference的id.
10. Prototype的概念. <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain>
11. `string`為immutable primitve value type, 非物件類別. &#x20;


---

# Agent Instructions: 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:

```
GET https://lifeoverflow.gitbook.io/learning-javascript/javascript-es5-jiao-xue/javascript-zhong-dian-zheng-li.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
