1. 初识 JavaScript
1.1 JavaScript 历史
- 布兰登·艾奇(Brendan Eich,1962年~)
- 布兰登·艾奇在1995年利用10天完成JavaScript设计。
- 网景公司最初命名为LiveScript , 后来在与Sun合作的时候改名为JavaScript。
1.2 JavaScript 是什么
- JavaScript是世界上最流行的语言之一,是一种运行在客户端的脚本语言。
- 脚本语言:不需要编译,运行过程中有js解释器(js引擎)逐行来解释并执行
- 现在也可以基于Node.js技术进行服务器端编程
1.3 JavaScript 的作用
- 表单动态校验(密码强度检测) (JS产生的最初目的)
- 网页特效
- 服务端开发(Node.js)
- 桌面程序(Electron)
- App(Cordova)
- 控制硬件-物联网(Ruff)
- 游戏开发(cocos2d-js)
1.4 HTML/CSS/JS 的关系
HTML/CSS标记语言–描述类语言
- HTML决定网页结构和内容(决定看到什么)
- CSS决定网页呈现给用户的模样(决定好不好看)
JS脚本语言–编程类语言
- 实现业务逻辑和页面功能(决定供能)
1.5 浏览器执行JS 简介
浏览器分成两部分 渲染引擎和 JS 引擎
- 渲染引擎:用来解析HTML与CSS, 俗称内核,比如chrome 浏览器的blink,老版本的webkit
- JS 引擎:也称JS解释器。用来读取网页中的JavaScript代码,对其处理后运行,比如chrome 浏览器的V8
浏览器本身并不会执行JS代码,而是通过内置JavaScript引擎来执行JS代码。JS引擎执行代码时逐行解释每一句源码(转换为机器语言),然后由计算机去执行,所以JavaScript语言归为脚本语言,会逐行解释执行。
1.6 JS 的组成
JavaScript:ECMAScript(JavaScript语法) + DOM(页面文档对象模型) + BOM(浏览器对象模型)
-
ECMAScript
ECMAScript是由ECMA国际(原欧洲计算机制造商协会)进行标椎化的一门编程语言,这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,但实际上后两者是ECMAScript语言的实现和扩展
ECMAScript:ECMAScript规定了JS的编程语法和基础核心知识,是所有浏览器厂商共同遵守的一套JS语法工业标准。
-
DOM——文档对象模型
文档对象模型(Document Object Model, 简称DOM),是W3C组织推荐的处理可扩展语言的标准编程接口。通过DOM提供的接口可以对页面上的各种元素进行操作(大小、位置、颜色等)。
-
BOM——浏览器对象模型
BOM(Brower Object Model, 简称BOM) 是指浏览器对象模型,它提供了独立于内容的、可以与浏览器窗口进行交互的对象结构。通过BOM可以操作浏览器窗口,比如弹出框、控制浏览器跳转、获取分辨率等。
1.7 JS 初体验
JS有3种书写位置,分别为行内, 内嵌和外部。
-
行内式JS
<input type = "button" value="按钮" οnclick="alert('Hello World')">
- 可以将单行或少量JS代码写在HTML标签的事件属性中(以on开头的属性),如onclick
- 注意单双引号的使用:在HTML中推荐使用双引号,JS中推荐使用单引号
- 可读性差,在html中编写大量JS代码时,不方便阅读
- 引号易错,引号多层嵌套匹配时,非常容易弄混
- 特殊情况下使用
-
内嵌 JS
<script> alert('Hello World!'); </script>
- 可以将多行JS代码写到<script>标签中
- 内嵌JS是学习时常用的当时
-
外部 JS文件
<script src="my.js"></script>
- 利用HTML页面代码结构化,把大段JS代码独立到HTML页面之外,既美观,也方便文件复用
- 引用外部JS文件的script标签中间不可以写代码
- 适合于JS代码量比较大的情况
1.8 JS 注释
// 1. 单行注释 Ctrl + /
/* 2. 多行注释
快捷键:shift + alt + a
*/
1.9 JS 输入输出语句
-
alert(msg) :浏览器弹出警示框
-
console.log(mag) :浏览器控制台打印输出信息
-
prompt(info):浏览器弹出输入框,用户可以输入
<script> //这是一个输入框 prompt('请输入您的姓名'); // alert 弹出警示框 alert('你好!') // console 控制台输出 给程序员测试用的 console.log('你好')</script>