diff --git "a/39 \351\203\255\346\202\246\350\277\216/20231026 \351\202\202\351\200\205js.md" "b/39 \351\203\255\346\202\246\350\277\216/20231026 \351\202\202\351\200\205js.md" new file mode 100644 index 0000000000000000000000000000000000000000..3f93c12278e6ab482f0bd1fce5a71c8be3161fd5 --- /dev/null +++ "b/39 \351\203\255\346\202\246\350\277\216/20231026 \351\202\202\351\200\205js.md" @@ -0,0 +1,189 @@ +## Day01笔记 + +## JavaScript + + + +**定义**:*JavaScript*(简称 JS ),是一种高级的、解释型的编程语言;他支持面向对象程序设计、指令式编程、以及函数编程; + + + +**JavaScript的组成**: + +> ECMAScript 是JavaScript 的标准,描述了该语言的语法和基本对象; +> +> JavaScript 是ECMAScript 的语言层面的实现; +> +> 除了基本实现外,还包括DOM操作和BOM操作; + +1. **ECMAScript** >>> 定义语言规范; +2. **DOM** >>> 用于操作文档的API; +3. **BOM** >>> 用于操作浏览器的API; + + + +**JavaScript的运行**: + +1. 不同的浏览器有不同的内核组成 【内核包括Gecko、Trident、Webkit、Blink 等等.......】 +2. 浏览器内核指的是浏览器的排版引擎排版引擎也称为浏览器引擎、页面渲染引擎、样板引擎】 +3. JavaScript代码由JavaScript引擎来执行 + + + +**JavaScript引擎**: + +> 高级的编程语言都是需要转成最终的机器指令来执行的,我们编写的JavaScript无论交给浏览器或者Node执行,最终都是需要被CPU执行,但是CPU只认识在即的指令集,实际上是机器语言,才能被CPU执行,所以需要JavaScript引擎帮助我们将JavaScript代码翻译成CPU指令来执行 + +1. **SpiderMonkey**:第一款JavaScript引擎,由Eich开发(也就是JavaScript作者); +2. **Chakra**:微软开发,用于IT浏览器; +3. **JavaScriptCore**:WebKit中的JavaScript引擎,Apple公司开发; +4. **V8**:Google开发的强大JavaScript引擎,也帮助Chrome从众多浏览器中脱颖而出 +5. 等等...... + + + +**浏览器内核与JS引擎的关系**: + +###### *e.g.* 以WebKit为例WebKit事实上由两部分组成的: + +- **WebCore****:**负责HTML解析、布局、渲染等等相关的工作; + +- **JavaScriptCore****:**解析、执行JavaScript代码; + + + +**JavaScript的编写方式**: + +1. **位置一**:HTML代码行内(不推荐); +2. **位置二**:script标签中 +3. **位置三**:外部的script文件 >>> 需要通过script元素的src属性引入JavaScript文件 + + + +**