JavaScript 是 web 开发人员必须学习的 3 门语言中的一门:
HTML 定义了网页的内容
CSS 描述了网页的布局
JavaScript 控制了网页的行为
1.什么是JavaScript?
JavaScript 是一个面向对象的脚本语言,目前互联网上较流行的脚本语言,这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。
面向对象是一种编程思想
面向对象是从面向过程升华而来。
面向过程--例如:从电视塔到钟楼
将从电视塔开始到钟楼结束中途所经历的每一步都要记录 【公交车】
面向对象--例如:从电视塔到钟楼
将电视塔作为起始对象,钟楼作为结束对象 【滴滴】
脚本语言--编写好以后放到运行环境中直接就能运行的语言。
2.JavaScript的版本
JavaScript 已经由 ECMA(欧洲电脑制造商协会)通过 ECMAScript 实现语言的标准化。
年份 | 名称 | 描述 |
1997 | ECMAScript 1 | 第一个版本 |
1998 | ECMAScript 2 | 版本变更 |
1999 | ECMAScript 3 | 添加正则表达式,添加 try/catch |
ECMAScript 4 | 没有发布 | |
2009 | ECMAScript 5 | 添加 "strict mode",严格模式,添加 JSON 支持 |
2011 | ECMAScript 5.1 | 版本变更 |
2015 | ECMAScript 6 | 添加类和模块 |
2016 | ECMAScript 7 | 增加指数运算符 (**),增加 Array.prototype.includes |
ECMAScript 6 也称为 ECMAScript 2015。
ECMAScript 7 也称为 ECMAScript 2016。
3.JavaScript的作用
JavaScript:直接写入 HTML 输出流
JavaScript:对事件的反应
JavaScript:改变 HTML 内容
<!doctype html>
<html>
<head>
<meta charset="UTF-8" />
<title>Document</title>
</head>
<body>
<p id="one1">哈喽</p>
<script>
function myFunction(){
x=document.getElementById("one1");
x.innerHTML="Hello !";
}</script>
<button type="button" onclick="myFunction()">点我点我</button>
</body>
</html>
JavaScript:改变 HTML 图像
JavaScript:改变 HTML 样式
JavaScript:验证输入
4.JavaScript 用法
HTML 中的脚本必须位于 <script> 与 </script> 标签之间。
脚本可被放置在 HTML 页面的 <body> 和 <head> 部分中。
<script> 标签
如需在 HTML 页面中插入 JavaScript,请使用 <script> 标签。
<script> 和 </script> 会告诉 JavaScript 在何处开始和结束。
<script> 和 </script> 之间的代码行包含了 JavaScript.
JavaScript 函数和事件
上面例子中的 JavaScript 语句,会在页面加载时执行。
通常,我们需要在某个事件发生时执行代码,比如当用户点击按钮时。
如果我们把 JavaScript 代码放入函数中,就可以在事件发生时调用该函数。
在 <head> 或者 <body> 的JavaScript
您可以在 HTML 文档中放入不限数量的JavaScript。
脚本可位于 HTML 的 <body> 或 <head> 部分中,或者同时存在于两个部分中。
通常的做法是把函数放入 <head> 部分中,或者放在页面底部。这样就可以把它们安置到同一处位置,不会干扰页面的内容。
<head> 中的 JavaScript 函数
我们把一个 JavaScript 函数放置到 HTML 页面的 <head> 部分。
该函数会在点击按钮时被调用。
<body> 中的 JavaScript 函数
我们把一个 JavaScript 函数放置到 HTML 页面的 <body> 部分。
该函数会在点击按钮时被调用。
外部的 JavaScript
我们也可以把脚本保存到外部文件中。外部文件通常包含被多个网页使用的代码。
外部 JavaScript 文件的文件扩展名是 .js。
如需使用外部文件,请在 <script> 标签的 "src" 属性中设置该 .js 文件。
5.JavaScript 输出显示数据
JavaScript 可以通过不同的方式来输出数据:
1.使用 window.alert() 弹出警告框。
2.使用 document.write() 方法将内容写到 HTML 文档中。
3.使用 innerHTML 写入到 HTML 元素。
4.使用 console.log() 写入到浏览器的控制台。
6.JavaScript 注释
单行注释以 // 开头。
多行注释以 /* 开始,以 */ 结尾。
<p><b>注释:</b>注释块不会被执行。</p>
</body>
</html>
使用注释来阻止执行
<p><strong>注意:</strong>注释块不会被执行。</p>
</body>
</html>
在行末使用注释
!7.JavaScript 变量
变量是用于存储信息的"容器"。
声明(创建) JavaScript 变量
在 JavaScript 中创建变量通常称为"声明"变量。
我们使用 var 关键词来声明变量.
var carname;
变量声明之后,该变量是空的(它没有值)。
如需向变量赋值,请使用等号。
carname="Volvo";
不过,您也可以在声明变量时对其赋值:
var carname="Volvo";
例如:我们创建了名为 carname 的变量,并向其赋值 "Volvo",然后把它放入 id="demo" 的 HTML 段落中.
一条语句,多个变量
我们也可以在一条语句中声明很多变量。该语句以 var 开头,并使用逗号分隔变量即可。
var lastname="Doe", age=30, job="carpenter";
声明也可横跨多行:
var lastname="Doe",
age=30,
job="carpenter";
一条语句中声明的多个变量不可以同时赋同一个值:
var x,y,z=1;
运行结果:x,y 为 undefined, z 为 1。
在计算机程序中,经常会声明无值的变量。未使用值来声明的变量,其值实际上是 undefined。
如果重新声明 JavaScript 变量,该变量的值不会丢失.
关于变量名称的命名
通常我们在创建或者是声明一个变量的时候,都会为这个变量指定一个名称,以方便之后使用。变量可以使用短名称(比如 x 和 y),也可以使用描述性更好的名称(比如 age, sum, totalvolume)。
1.变量必须以字母开头
2.变量也能以 $ 和 _ 符号开头(不过我们不推荐这么做)
3.变量名称对大小写敏感(y 和 Y 是不同的变量)
使用 let 和 const (ES6)
在 2015 年以前,我们使用 var 关键字来声明 JavaScript 变量。
在 2015 后的 JavaScript 版本 (ES6) 允许我们使用 const 关键字来定义一个常量,使用 let 关键字定义的限定范围内作用域的变量。这个我们后面会详细介绍。
8.JavaScript 数据类型
数据类型实际上是用来决定所定义的变量将来所能进行那些操作。
JavaScript中的数据类型有2大类:值类型(基本类型)和引用数据类型
值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。
引用数据类型:对象(Object)、数组(Array)、函数(Function)。
Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。
JavaScript 拥有动态类型。这意味着相同的变量可用作不同的类型。
JavaScript 字符串
字符串是存储字符(比如 "hello")的变量。
字符串可以是引号中的任意文本。
您可以使用单引号或双引号。
JavaScript 数字
JavaScript 只有一种数字类型。数字可以带小数点,也可以不带。
var x1=34.00; //使用小数点来写
var x2=34; //不使用小数点来写
极大或极小的数字可以通过科学(指数)计数法来书写。
var y=123e5; // 12300000
var z=123e-5; // 0.00123
JavaScript 布尔
布尔(逻辑)只能有两个值:true 或 false。布尔常用在条件判断中。
var x=true;
var y=false;
null
在 JavaScript 中 null 表示 "什么都没有"。
null是一个只有一个值的特殊类型。表示一个空对象引用。
用 typeof 检测 null 返回是object。
你可以设置为 null 来清空对象.
undefined
在 JavaScript 中, undefined 是一个没有设置值的变量。
typeof 一个没有值的变量会返回 undefined。
任何变量都可以通过设置值为 undefined 来清空。 类型为 undefined.
var person; // 值为 undefined(空), 类型是undefined
null 与 undefined 的异同点是什么呢?
共同点:都是原始类型,保存在栈中变量本地。
不同点:
- undefined——表示变量声明过但并未赋过值。它是所有未赋值变量默认值。
例如:var a; // a 自动被赋值为 undefined
- null——表示一个变量将来可能指向一个对象。一般用于主动释放指向对象的引用
例如:var emps = ['ss','nn'];
emps = null; // 释放指向数组的引用