# 初始 Javascript

# 简介

JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发 Web 页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持**面向对象、命令式、声明式、函数式编程范式**。

JavaScript在1995年由 Netscape 公司的 Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为 Netscape 与 Sun 合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与 Self 及 Scheme 较为接近。

JavaScript的标准是 ECMAScript。截至 2012 年,所有浏览器都完整的支持ECMAScript 5.1,旧版本的浏览器至少支持ECMAScript 3 标准。2015年6月17日,ECMA国际组织发布了ECMAScript的第六版,该版本正式名称为 ECMAScript 2015,但通常被称为ECMAScript 6 或者ES2015。

# 历史

JavaScript最初由 Netscape 的 Brendan Eich 设计,最初将其脚本语言命名为 LiveScript,后来Netscape在与Sun合作之后将其改名为 JavaScript 。JavaScript最初受 Java 启发而开始设计的,目的之一就是“看上去像Java”,因此语法上有类似之处,一些名称和命名规范也借自Java,但JavaScript的主要设计原则源自 Self 和 Scheme 。JavaScript 与 Java 名称上的近似,是当时 Netscape 为了营销考虑与 Sun 微系统达成协议的结果。微软同时期也推出了 JScript 来迎战JavaScript的脚本语言。

发展初期,JavaScript 的标准并未确定,同期有 Netscape 的 JavaScript ,微软的 JScript 和 CEnvi 的 ScriptEase 三足鼎立。为了互用性,Ecma 国际(前身为欧洲计算机制造商协会)创建了 ECMA-262 标准(ECMAScript),两者都属于 ECMAScript 的实现,尽管JavaScript作为给非程序人员的脚本语言,而非作为给程序人员的脚本语言来推广和宣传,但是 JavaScript 具有非常丰富的特性。 1997年,在 ECMA(欧洲计算机制造商协会)的协调下,由 Netscape、Sun、微软、Borland 组成的工作组确定统一标准:ECMA-262。完整的 JavaScript 实现包含三个部分:

ECMAScript 标准

DOM 文档对象模型

BOM 浏览器对象模型

JavaScript 是甲骨文公司的注册商标。Ecma国际以 JavaScript 为基础制定了 ECMAScript 标准,所以JavaScript 也被叫做 ECMAScritp。JavaScript也可以用于其他场合,如服务器端编程(Node.js)。

# 主要功能

  1. 嵌入动态文本于HTML页面。
  2. 对浏览器事件做出响应。
  3. 读写HTML元素。
  4. 在数据被提交到服务器之前验证数据。
  5. 检测访客的浏览器信息。控制cookies,包括创建和修改等。
  6. 基于 Node.js 技术进行服务器端编程。

# 主流浏览器

IE/Edge、Chrome、Firefox、Safari、Opera

  • 浏览器组成-外壳

界面、菜单、网络、调试功能……

  • 浏览器组成-内核

浏览器内核:

浏览器 渲染引擎 JS引擎
IE Trident JScript -> Chakra
Firefox Gecko Monkey系列
Chrome Webkit -> Blink V8
Safari Webkit SquirrelFish系列
Opera Presto -> Blink Carakan

渲染引擎:将html和css代码渲染成图形界面

js引擎:解析js代码

V8引擎为解析js代码最快的js引擎

# V8引擎与nodejs

我们写javascript -> 在chrome中通过 V8 引擎编译 -> 机器语言(用二进制代码表示的计算机能直接识别和执行的一种机器指令)

Chrome浏览器中用来解析JavaScript的引擎就是V8引擎,有了V8引擎JavaScript才能在计算机上执行

所以,正是有了 V8引擎的解析, javascript才能在计算机上执行

那么,从本质上讲,javascript的执行需要的不是浏览器,而是V8引擎

所以,我们把 V8引擎 单独安装在系统上,那么javascript就可以直接在系统上运行

=> 也就获得了直接操作电脑本地数据的能力,也就可以完成后端的工作

=> 这个独立出来的V8引擎,再加上一些其他的功能就变成了nodejs

# 引入javascript

# 1.内部引入

<head></head>
<body>
    <script type="text/javascript">
        // js代码块部分
		// ...
        // ...

        //script标签最好写在 head 标签 或 body 标签中,
        //如果放在head或body外,浏览器在解析时,也会将script标签放在head或body中。
        //script标签通常放在body的最后面。
        // 页面的解析是按顺序解析的,所以若在 body 前获取dom元素,则需要使用 window.onload
    </script>
</body>
1
2
3
4
5
6
7
8
9
10
11
12
13

# 2.外部引入

<body>
    
    <script src=""></script>    
    <!-- 注意不能是单标签
		若使用外部引入js文件的方式,script标签中的代码块不会被解析
	-->
  
</body>
1
2
3
4
5
6
7
8

# console 控制台

  • console.log 普通输出

console.log方法用于在控制台输出(打印)信息,在调试代码时是十分强有力的工具。合适的位置打印特定的变量能使调试工作更加轻松。

let str = 'Hello World'
console.log(str)
//控制台输出:Hello World
1
2
3

console.log方法会自动在每次输出的结尾,添加换行符。

# 语言标准

JavaScript已经被 Netscape 公司提交给 ECMA 制定为标准,称之为 ECMAScript,标准编号ECMA-262。最新版为 ECMAScript 6(ECMAScript 2015)。符合ECMA-262 3rd Edition标准的实现有:

  1. Microsoft公司的 JScript;
  2. Mozilla的JavaScript-C(C语言实现),SpiderMonkey;
  3. Mozilla的 Rhino(Java实现);
  4. Digital Mars 公司的 DMDScript;
  5. Google公司的 V8;
  6. WebKit;

# 基础问题

  • JavaScript是什么

专业一点:JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言。

通俗一点:JS是前端代码中最重要的部分(行为层),常用来操作HTML页面响应用户的操作验证传输数据等。

  • javascript 的组成

  • 核心(ECMAScript):提供核心语言功能,规定语法规范。

  • 文档对象模型(DOM):提供访问和操作网页元素的方法和接口,由html页面中的标签组成

  • 浏览器对象模型(BOM):提供与浏览器交互的方法与接口,即浏览器中前进、后退、刷新等功能

Last Updated: 9/18/2022, 2:32:52 AM
Bathroom Mirror / You're Coming Right?
Justin Hurwitz