一、JavaScript历史
布兰登·艾奇(Brendan Eich,1961年~)用10天完成 JavaScript 设计。
网景公司最初命名为 LiveScript,后来在与 Sun 合作之后将其改名为 JavaScript。Java和JavaScript没有任何关系,就像雷锋和雷峰塔的关系。
JavaScript 是世界上最流行的语言之一,是一种运行在客户端的脚本语言 (Script 是脚本的意思)
脚本语言:不需要编译,运行过程中由 js 解释器( js 引擎)逐行来进行解释并执行
现在也可以基于 Node.js 技术进行服务器端编程。
为了阅读方便,我们后面把JavaScript 简称为 JS。
二、JavaScript的作用
- 表单动态校验(密码强度检测)( JS 产生最初的目的 ),刚开始是为了检测用户输入的密码用户名等是否复合规范,需要把数据传到后台服务器,这样会增加服务器的压力。所以为了在前端界面也就是客户端就实现用户名、密码的判断,发明了JS
- 网页特效
- 服务端开发(Node.js)
- 桌面程序(Electron)
- App(Cordova)
- 控制硬件-物联网(Ruff)
- 游戏开发(cocos2d-js)
三、HTML/CSS/JS的关系
HTML/CSS 标记语言--描述类语言 JS 脚本语言--编程类语言。HTML 决定网页结构和内容( 决定看到什么 ),相当于人的身体;CSS 决定网页呈现给用户的模样( 决定好不好看 ),相当于给人穿衣服、化妆。
JS 脚本语言--编程类语言,实现业务逻辑和页面控制( 决定功能 ),相当于人的各种动作。
四、浏览器执行JS的过程
浏览器分成两部分:渲染引擎和 JS 引擎
渲染引擎:用来解析HTML与CSS,俗称内核,比如 chrome 浏览器的 blink ,老版本的 webkit
JS 引擎:也称为 JS 解释器。 用来读取网页中的JavaScript代码,对其处理后运行,比如 chrome 浏览器的 V8
浏览器本身并不会执行JS代码,而是通过内置 JavaScript 引擎(解释器) 来执行 JS 代码 。JS 引擎执行代码时逐行解释。每一句源码(转换为机器语言),然后由计算机去执行,所以 JavaScript 语言归为脚本语言,会逐行解释执行。
五、JS的组成
(一)ECMAScript
ECMAScript 是由ECMA 国际( 原欧洲计算机制造商协会)进行标准化的一门编程语言,这种语言在万维网上应用广泛,它往往被称为 JavaScript 或 JScript,但实际上后两者是 ECMAScript 语言的实现和扩展。
ECMAScript:ECMAScript 规定了JS的编程语法和基础核心知识,是所有浏览器厂商共同遵守的一套JS语法工业标准。
(二)DOM ——文档对象模型
文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标记语言的标准编程接口。通过 DOM 提供的接口可以对页面上的各种元素进行操作(大小、位置、颜色等)。
(三)BOM ——浏览器对象模型
BOM (Browser Object Model,简称BOM) 是指浏览器对象模型,它提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。通过BOM可以操作浏览器窗口,比如弹出框、控制浏览器跳转、获取分辨率等。
六、JS书写位置
JS有3种书写位置,分别为行内、内嵌和外部。和CSS相同。
(一)行内式
<input type="button" value="点我试试" onclick="alert('Hello World')" />
可以将单行或少量 JS 代码写在HTML标签的事件属性中(以 on 开头的属性),如:onclick
注意单双引号的使用:在HTML中我们推荐使用双引号, JS 中我们推荐使用单引号
可读性差, 在html中编写JS大量代码时,不方便阅读;
引号易错,引号多层嵌套匹配时,非常容易弄混;
特殊情况下使用
(二)内嵌式
<script>
alert('Hello World~!');
</script>
可以将多行JS代码写到 <script> 标签中
内嵌 JS 是学习时常用的方式
(三)外部JS文件
<script src="my.js"></script>
利于HTML页面代码结构化,把大段 JS代码独立到 HTML 页面之外,既美观,也方便文件级别的复用
引用外部 JS文件的 script 标签中间不可以写代码
适合于JS 代码量比较大的情况
<!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>Document</title>
<!-- 2. 内嵌式的js -->
<script>
alert('沙漠骆驼');
</script>
<!-- 3. 外部JS文件 -->
<script src="my.js"></script>
</head>
<body>
<!-- 1.行内式的js,直接写到元素的内部 -->
<input type="button" value="唐伯虎" onclick="alert('秋香姐')">
</body>
</html>
新建一个my.js文件,文件中写入
alert('如果我是DJ,你还爱我吗?');
七、注释
注释方式和C语言相同,单行注释快捷键CTRL+/,多行注释ALT+SHIFT+a(可以手动修改)
八、JavaScript的输入输出语句
方法 | 说明 | 归属 |
---|---|---|
alert(msg) | 浏览器弹出警示框 | 浏览器 |
console.log(msg) | 浏览器控制台打印输出信息 | 浏览器 |
prompt(info) | 浏览器弹出输入框,用户可以输入 | 浏览器 |
注意:alert() 主要用来显示消息给用户,console.log() 用来给程序员自己看运行时的消息。
<script>
//prompt 这是一个输入框
prompt('请输入您的年龄:');
//alert 弹出警示框 输出的 展示给用户
alert('计算的结果是:');
// console 控制台 给程序员测试用的
console.log('我是程序员能看到的');
</script>