GitHub标星13,web开发发展前景

JavaScript基础分为三个部分:

  • ECMAScript:JavaScript 的语法标准。包括变量、表达式、运算符、函数、if语句、for语句等。

  • DOM:Document Object Model(文档对象模型),操作页面上的元素的API。比如让盒子移动、变色、改变大小、轮播图等等。

  • BOM:Browser Object Model(浏览器对象模型),操作浏览器部分功能的API。通过BOM可以操作浏览器窗口,比如弹框、控制浏览器跳转、获取浏览器分辨率等等。

通俗理解就是:ECMAScript 是 JS 的语法;DOM 和 BOM 浏览器运行环境为 JS提供的API。

[](

)JavaScript 的特点


[](

)特点1:解释型语言

JavaScript 是解释型语言,不需要事先被翻译为机器码;而是边翻译边执行(翻译一行,执行一行)。

什么是「解释型语言」?详见下一段。

由于少了实现编译这一步骤,所以解释型语言开发起来尤为方便,但是解释型语言运行较慢也是它的劣势。不过解释型语言中使用了JIT技术,使得运行速度得以改善。

[](

)特点2:单线程

[](

)特点3:ECMAScript标准

ECMAScript是一种由 ECMA 国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)制定和发布的脚本语言规范。

JavaScript是由公司开发而成的,问题是不便于其他的公司拓展和使用。所以欧洲的这个ECMA的组织,牵头制定JavaScript的标准,取名为ECMAScript。

简单来说,ECMAScript不是一门语言,而是一个标准。ECMAScript 规定了JS的编程语法和基础核心知识,是所有浏览器厂商共同遵守的一套JS语法工业标准。

ECMAScript在2015年6月,发布了ECMAScript 6版本(ES6),语言的能力更强(也包含了很多新特性)。但是,浏览器的厂商不会那么快去追上这个标准,需要时间。

[](

)编程语言的分类


[](

)翻译器

计算机不能直接理解任何除机器语言以外的语言,所以必须要把程序员所编写的语言翻译成机器语言,计算机才能执行程序。程序语言翻译成机器语言的工具,被称为翻译器

由此可见,所谓的“翻译”,指的是翻译成计算机能够执行的指令。

翻译器翻译的方式有两种:一种是编译,另一种是解释。两种方式之间的区别在于翻译的时机不同。

  • 编译器:在代码执行之前,事前把所有的代码一次性翻译好,生成中间代码文件,然后整体执行。

  • 解释器:边翻译,边执行(在代码执行时进行及时翻译,并立即执行)。当编译器以解释的方式运行时,也称之为解释器。

对应的语言,称之为“编译型语言”、“解释型语言”。

[](

)编译型语言

  • 定义:事先把所有的代码一次性翻译好,然后整体执行。

  • 优点:运行更快。

  • 不足:移植性不好,不跨平台。

  • 编译型语言举例:c、c++

比如说,c语言的代码文件是.c后缀,翻译之后文件是.obj后缀,系统执行的是 obj 文件;再比如, java 语言的代码文件是.java后缀,翻译之后的文件是.class后缀。(注意,Java 语言不是严格的 编译型语言,这个一会儿会讲)

[](

)解释型语言

  • 定义:边翻译边执行(翻译一行,执行一行),不需要事先一次性翻译。

  • 优点:移植性好,跨平台。

  • 缺点:运行更慢。

  • 解释型语言举例:JavaScript、php、Python。

[](

)Java语言

Java 语言既不是编译型语言,也不是解释型语言。翻译过程:

(1)编译:.java代码文件先通过 javac 命令编译成.class文件。

(2)执行:.class文件再通过 jvm 虚拟机,解释执行。有了 jvm 的存在,让 java 跨平台了。

[](

)开始写第一行JavaScript代码


JavaScript 代码的书写位置在哪里呢?这个问题,也可以理解成:引入 js 代码,有哪几种方式。

[](

)方式1:行内式

代码举例


<input type="button" value="点我点我" οnclick="alert('千古壹号')" />



完整的可执行代码如下:


<!DOCTYPE html>

<html lang="en">

    <head>

        <meta charset="UTF-8" />

        <meta name="viewport" content="width=device-width, initial-scale=1.0" />

        <title>Document</title>

    </head>

    <body>

        <input type="button" value="点我点我" οnclick="alert('千古壹号的方式1')" />

    </body>

</html>



分析

  • 可以将单行或少量 JS 代码写在HTML标签的事件属性中(以 on 开头的属性),比如放在上面的 onclick点击事件中。

  • 这种书写方式,不推荐使用,原因是:可读性差,尤其是需要编写大量 JS代码时,容易出错;引号多层嵌套时,也容易出错。

  • 关于代码中的「引号」,在HTML标签中,我们推荐使用双引号, JS 中我们推荐使用单引号。

[](

)方式2、内嵌式

我们可以在html 页面的 <body> 标签里放入<script type=”text/javascript”></script>标签对儿,并在<script>里书写JavaScript 代码:


<!DOCTYPE html>

<html lang="en">

<head>

	<meta charset="UTF-8">

	<title>Document</title>

</head>

<body>

	<script type="text/javascript">

		// 在这里写 js 代码

		alert('千古壹号的方式2');

		console.log('qianguyihao 方式2');

	</script>

</body>

</html>



分析

  • text表示纯文本,因为JavaScript也是一个纯文本的语言。

  • 可以将多行JS代码写到 <script> 标签中。

  • 内嵌式 JS 是学习时常用的方式。

[](

)方式3:引入外部的 JS 文件


<!DOCTYPE html>

<html lang="en">

<head>

	<meta charset="UTF-8">

	<title>Document</title>

</head>

<body>

	<!-- 引入外部的 js 文件 -->

	<script src="tool.js"></script>

</body>

</html>



上面这段代码,依然是放到body标签里,可以和内嵌的js代码并列。

另外,引用外部 JS文件的 script 标签中间不可以再写代码。

总结

我们在实战开发中,基本都是采用方式3,因为这种方式,可以确保 html 文件和 js 文件是分开的,有利于代码的结构化和复用。很少会有人把一大堆 js 代码塞到 html 文件里。

[](

)JS一些简单的语法规则


学习程序,是有规律可循的,程序会有有相同的部分,这些部分就是一种规定,不能更改,我们成为:语法。

(1)JavaScript对换行、缩进、空格不敏感。每一条语句以分号结尾。

代码一:


<script type="text/javascript">

	alert("今天蓝天白云");

	alert("我很高兴");

</script>



等价于代码二:


<script type="text/javascript">

	alert("今天蓝天白云");alert("我很高兴");

</script>



备注:每一条语句末尾要加上分号,虽然分号不是必须加的,如果不写分号,浏览器会自动添加,但是会消耗一些系统资源。

(2)所有的符号,都是英语的。比如括号、引号、分号。

如果你用的是搜狗拼音,建议不要用shift切换中英文(可以在搜狗软件里进行设置),不然很容易输入中文的分号;建议用ctrl+space切换中英文输入法。

(3)严格区分大小写。

[](

)注释


我们不要把 HTML、CSS、JavaScript三者的注释格式搞混淆了。

[](

)HTML 的注释


<!-- 我是注释  -->



[](

)CSS的注释


<style type="text/css">



	/*

		我是注释



### 最后

正值招聘旺季,很多小伙伴都询问我有没有前端方面的面试题!

**[CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](

)**

![前端资料图.PNG](https://www.icode9.com/i/ll/?i=img_convert/3364fb4d55f0482d1b8acff575c988f8.png)

> **本文已被[CodeChina开源项目:【一线大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](https://codechina.****.net/m0_60958482/web-p7)收录,自学编程路线及系列技术文章等资源持续更新中...**
---------------------



我们不要把 HTML、CSS、JavaScript三者的注释格式搞混淆了。



### [](

)HTML 的注释






### [](

)CSS的注释



上一篇:自主学习报告--JavaScript


下一篇:1_1 什么是JavaScript