1. JavaScript简介
1.1 JavaScript 是什么?
布兰登·艾奇(Brendan Eich,1961年~),一个超强的大咖用10天完成 JavaScript 设计,最初命名为 LiveScript,后来在与 Sun 合作之后将其改名为 JavaScript,JavaScript 是世界上最流行的语言之一,是一种运行在客户端的脚本语言 (Script 是脚本的意思)。
脚本语言:不需要编译,运行过程中由 js 解释器( js 引擎)逐行来进行解释并执行,现在也可以基于 Node.js 技术进行服务器端编程
1.2 JavaScript 有什么作用?
(1)用于表单动态校验(密码强度检测) ( JS 产生最初的目的 )
(2)用于网页特效的制作
(3)用于服务端开发(Node.js)
(4)用于桌面程序(Electron)[ɪˈlektrɑːn]
(5)用于App(Cordova)[kɔrˈdoʊvə]
(6)用于控制硬件-物联网(Ruff)[rʌf]
(7)用于游戏开发(cocos2d-js)
1.3 HTML/CSS/JS 的关系
HTML/CSS 标记语言--描述类语言
(1)HTML 决定网页结构和内容( 决定看到什么 ),相当于人的身体。
(2)CSS 决定网页呈现给用户的模样( 决定好不好看 ), 相当于给人穿衣服。
JS 脚本语言--编程类语言
(1)实现业务逻辑和页面控制( 决定功能 ),相当于人的各种动作.
1.4 浏览器执行 JS
浏览器分成两部分:渲染引擎和 JS 引擎
- 渲染引擎:用来解析HTML与CSS,俗称内核,比如 chrome 浏览器的 blink ,老版本的 webkit
- JS 引擎:也称为 JS 解释器。 用来读取网页中的JavaScript代码,对其处理后运行,比如 chrome 浏览器的 V8
浏览器本身并不会执行JS代码,而是通过内置 JavaScript 引擎(解释器) 来执行 JS 代码 。
JS 引擎执行代码时逐行解释每一句源码(转换为机器语言),然后由计算机去执行,所以 JavaScript 语言归为脚本语言,会逐行解释执行。
渲染引擎 --用来解析HTML与CSS,俗称内核 比如: Google (开发商)--chrome(浏览器)---webkit blink,微软公司 IE浏览器 ,Trident内核;Mozilla公司,Firefox浏览器,Gecko内核。
JS 引擎---- 内置 JavaScript 引擎(解释器) 比如: chrome 浏览器的,V8引擎,Mozilla公司的js引擎 SpiderMonkey;Edge,Chakra(查克拉)。
1.5 JS 的组成
JavaScript:
ECMAscript(JavaScript):ECMAScript 是由ECMA 国际( 原欧洲计算机制造商协会)进行标准化的一门编程语言,这种语言在万维网上应用广泛,它往往被称为 JavaScript 或 JScript,但实际上后两者是 ECMAScript 语言的实现和扩展。
ECMAScript 规定了JS的编程语法和基础核心知识,是所有浏览器厂商共同遵守的一套JS语法工业标准。
DOM(页面文档对象模型):文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标记语言的标准编程接口。通过 DOM 提供的接口可以对页面上的各种元素进行操作(大小、位置、颜色等)。
BOM(浏览器对象模型):BOM (Browser Object Model,简称BOM) 是指浏览器对象模型,它提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。通过BOM可以操作浏览器窗口,比如弹出框、控制浏览器跳转、获取分辨率等。
2. js引入方式
2.1 行内式
<input type="button" value="点我试试" onclick="alert('Hello World')" />
- 可以将单行或少量 JS 代码写在HTML标签的事件属性中(以 on 开头的属性),如:onclick
- 注意单双引号的使用:在HTML中我们推荐使用双引号, JS 中我们推荐使用单引号;
- 可读性差, 在html中编写JS大量代码时,不方便阅读;
- 引号易错,引号多层嵌套匹配时,非常容易弄混;
- 特殊情况下使用;
2.2 内嵌式
- 内嵌JS是我们常用的方式;
- 可以将多行JS代码写到<script>标签中;
<script>
alert('Hello World~!');
</script>
2.3 外链式
- 利于HTML页面代码结构化,把大段 JS代码独立到 HTML 页面之外,既美观,也方便文件级别的复用;
- 引用外部 JS文件的 script 标签中间不可以写代码;
- 适合于JS 代码量比较大的情况;
<script src="my.js"></script>
alert('hello world')
3. JavaScript 注释
3.1 单行注释
为了提高代码的可读性,JS与CSS一样,也提供了注释功能。JS中的注释主要有两种,分别是单行注释和多行注释。单行注释的注释方式如下:
// 我是一行文字,不想被 JS引擎 执行,所以 注释起来
// 用来注释单行文字( 快捷键 ctrl + / )
3.2 多行注释
/* */ 用来注释多行文字( 默认快捷键 alt + shift + A ) 快捷键修改为: ctrl + shift + /
/*
获取用户年龄和姓名 并通过提示框显示出来
*/
4. JavaScript 输入输出语句
为了方便信息的输入输出,JS中提供了一些输入输出语句,其常用的语句如下:
方法 | 说明 | 归属 |
alert(info) | 浏览器弹出警示框 | 浏览器 |
console.log(info) | 浏览器控制台打印输出信息 | 浏览器 |
document.write(info) | 在HTML文档页面输出内容 | 浏览器 |
prompt(info) | 浏览器弹出输入框,用户可以输入 | 浏览器 |
alert() 主要用来显示消息给用户,console.log() 用来给程序员自己看运行时的消息。
使用 document.write() 仅仅向文档输出写内容; 如果在文档已完成加载后执行 document.write,整个 HTML 页面将被覆盖。如果含有html标签会被解析。
<script>
// document.write('<script>alert(123);</script>'); //弹不出来并报错, 需用 \ 转义 因为 </script>会被当成结整标记
document.write('<script>alert(123);<\/script>')
</script>