从零理解JavaScript

109 阅读1分钟

Javascript与ECMAScript

在红皮书前言第一章1.2 —— 1.2.1有完整的介绍什么是Javascript,什么是ECMAScript

一个完整的Javascript应该由三大部分组成实现:

1、核心部分(ECMAscript)

2、文档对象模型 (DOM document object model)提供访问和操作网页内容的方法和接口,并不指代文档(html、xml)本身

3、浏览器对象模型 (BOM browser object model)提供与浏览器交互的方法和接口,并不指代浏览器本身

目前工作中主要是对ECMAScript的应用,DOM层的实现主要是通过第三方组件库来进行使用的;而且在工作中,现在出来的前端大部分不会写原生js或者jQuery;主要使用到的主流框架是react、vue、angular。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>firstDom</title>
    <script type="text/javascript" src="./firstJS.js" async></script>
    <!-- async: 可选引入属性,表示立即下载脚本,但不应妨碍页面中的其他操作 主要争对浏览器初始化过程中解析阻塞的外部引入脚本语言 -->
    <!-- 对于普通脚本,如果存在 async 属性,那么普通脚本会被并行请求,并尽快解析和执行。 -->
    <!-- 对于模块脚本,如果存在 async 属性,那么脚本及其所有依赖都会在延缓队列中执行,因此它们会被并行请求,并尽快解析和执行。 -->
    <!-- defer 作用同上,延迟脚本执行 -->
    <!-- 这个布尔属性被设定用来通知浏览器该脚本将在文档完成解析后,触发 DOMContentLoaded (en-US) 事件前执行。
        有 defer 属性的脚本会阻止 DOMContentLoaded 事件,直到脚本被加载并且解析完成。 -->
    <!-- 内嵌脚本自带 defer属性 -->
    <!-- src:表示需要执行的代码外部文件引入 -->
  </head>
  <script>
    alert("hahahahahh!");
  </script>
  <body></body>
</html>