JavaScript基础
一、什么是JavaScript?
- 1.1
JS
JavaScript
是一种脚本语言JavaScript
是一种轻量级的编程语言JavaScript
可插入HTML编程JavaScript
代码可由浏览器执行
- 1.2
JavaScript
直接写入HTML
输出流1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>HTML输出流</title>
</head>
<body>
<script>
document.write('<h1>这是一个标题</h1>');
document.write('<p>这是一个段落</p>');
</script>
</body>
</html>
注意:如果在文档已加载后使用(比如在函数中),会覆盖整个文档。
- 1.3
JavaScript
对事件的反应1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>弹出事件</title>
</head>
<body>
<button type="button" onclick="alert('欢迎!')">点我!</button>
<button onclick="eventHandle()">再点我!</button>
<script>
function eventHandle() {
alert("欢迎!")
}
</script>
</body>
</html>
注意:两个Button
的弹出效果是一样的,写法上第二个调用了函数,是常见写法。
1.4
JavaScript
改变HTML
的内容1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>改变HTML内容</title>
</head>
<body>
<p id="demo">这里是文档内容</p>
<button onclick="change()">点击修改</button>
<script>
function change() {
x = document.getElementById('demo'); // 找到元素
x.innerHTML = '这里是修改后的内容'; // 修改内容
}
</script>
</body>
</html>1.5
JavaScript
改变HTML
的图像
1 |
|
1.6
JavaScript
改变HTML
的样式1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>改变HTML样式</title>
</head>
<body>
<p id="demo">这里是元素样式</p>
<button onclick="change()">点击修改</button>
<script>
function change() {
x = document.getElementById('demo');
x.style.color = '#ff0000';
}
</script>
</body>
</html>1.7
ECMAScript
版本
年份 | 名称 | 描述 |
---|---|---|
2009 | ECMAScript 5 | 添加 “strict mode”,严格模式,添加 JSON 支持 |
2011 | ECMAScript 5.1 | 版本变更 |
2015 | ECMAScript 6 | 添加类和模块 |
2016 | ECMAScript 7 | 增加指数运算符 (**),增加 Array.prototype.includes |
二、用法及输出
如需在
HTML
页面中插入JavaScript
,需使用<script>
标签。脚本可被放置在HTML
页面的<body>
和<head>
部分中。
2.1 导入JS
的三种方式
<body>
中的JS
1 |
|
<head>
中的JS
1 |
|
- 外部的
JS
1 |
|
2.2 JavaScript
输出
- 使用
window.alert()
弹出警告框1
2
3
4
5
6
7
8
9
10
11
12
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>输出</title>
</head>
<body>
<script>
window.alert('Hello!');
</script>
</body>
</html>
注意:window
是JS
的全局变量,可以省略不写。(例如alert('Hello!')
)
使用
document.write()
方法将内容写到HTML
文档中1
2
3
4
5
6
7
8
9
10
11
12
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>输出</title>
</head>
<body>
<script>
document.write('Hello!');
</script>
</body>
</html>使用
innerHTML
写入到HTML
元素1
2
3
4
5
6
7
8
9
10
11
12
13
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>输出</title>
</head>
<body>
<p id="demo"></p>
<script>
document.getElementById('demo').innerHTML = Date(); // 输出当前时间
</script>
</body>
</html>使用
console.log()
写入到浏览器控制台输出1
2
3
4
5
6
7
8
9
10
11
12
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>输出</title>
</head>
<body>
<script>
console.log('Hello!');
</script>
</body>
</html>
注意:从浏览器打开html
文件,按F12
打开开发者模式,在console
控制台查看。
2.3 数据类型及变量
数据类型
值类型(基本类型)
字符串
String
1
var name = 'Akashi';
数字
Number
1
var age = '21';
布尔型
Boolean
1
var active = true;
对空
Null
1
var person = null;
未定义
Undefined
Symbol
引用数据类型
对象
Object
1
2
3
4var person = {
name = 'Akashi',
age = 21,
}数组
Array
1
var cars = ['audi', 'toyota', 'bmw'];
or
1
var cars = new Array('audi', 'toyota', 'bmw');
or
1
2
3
4var cars2 = new Array();
cars2[0] = 'audi';
cars2[1] = 'toyota';
cars2[2] = 'bmw';函数
Function
1
2
3function name(params) {
}
注意:Undefined
和Null
:Undefined
这个值表示变量不含有值。可以通过将变量的值设置为 null
来清空变量。
注意:Symbol
是 ES6
引入了一种新的原始数据类型,表示独一无二的值。
创建变量
- 使用
var
关键词声明变量1
2
3
4
5
6
7<script>
var length = 16; // Number 通过数字字面量赋值
var points = x * 10; // Number 通过表达式字面量赋值
var lastName = "Sai"; // String 通过字符串字面量赋值
var cars = ["Audi", "Toyota", "BMW"]; // Array 通过数组字面量赋值
var person = {firstName:"Akashi", lastName:"Sai"}; // Object 通过对象字面量赋值
</script>
- 使用
声明变量类型
- 动态类型
JavaScript
拥有动态类型。这意味着相同的变量可用作不同的类型
- 使用关键词
new
声明变量类型1
2
3
4
5
6
7<script>
var name = new String;
var num = new Number;
var flag = new Boolean;
var list = new Array();
var person = new Object;
</script>
- 动态类型
函数
1
2
3
4
5<script>
function functionName(params) {
// 函数体
}
</script>字母大小写
JavaScript
对大小写敏感
注释
- 单行注释
- 单行注释以
//
开头
- 单行注释以
- 多行注释
- 多行注释以
/*
开始,以*/
结尾
- 多行注释以
- 单行注释
2.4 作用域
在
JavaScript
中, 作用域为可访问变量,对象,函数的集合。
局部变量
- 变量在函数内声明,变量为局部作用域
- 局部变量:只能在函数内部访问
1 | // 函数外不能调用name变量 |
全局变量
- 变量在函数外定义,即为全局变量
- 全局变量有 全局作用域: 网页中所有脚本和函数均可使用
1 | var name = 'akashi'; |
生命周期
- JavaScript 变量生命周期在它声明时初始化
- 局部变量在函数执行完毕后销毁
- 全局变量在页面关闭后销毁
函数参数
- 函数参数只在函数内起作用,是局部变量
HTML
中的全局变量- 在
HTML
中, 全局变量是window
对象: 所有数据变量都属于window
对象
- 在
1 | getName(); |
2.5 事件
HTML
事件可以是浏览器行为,也可以是用户行为。
1 |
|
- 常见的
HTML
事件表
事件 | 描述 |
---|---|
onchange |
HTML 元素改变 |
onclick |
用户点击HTML 元素 |
onmouseover |
用户在一个HTML 元素上移动鼠标 |
onmouseout |
用户从一个HTML 元素上移开鼠标 |
onkeydown |
用户按下键盘按键 |
onload |
浏览器已完成页面的加载 |
更多参考:
https://blog.csdn.net/qwer_df_b/article/details/77509859
2.6 字符串
JavaScript
字符串可以存储一系列字符,用于存储和处理文本。
- 获取字符串长度
1 |
|
特殊字符
- 使用转义字符(
\
),反斜杠是一个转义字符。 转义字符将特殊字符转换为字符串字符
- 使用转义字符(
代码 | 输出 |
---|---|
\’ | 单引号 |
\” | 双引号 |
\ | 反斜杠 |
\n | 换行 |
\r | 回车 |
\t | tab(制表符) |
\b | 退格符 |
\f | 换页符 |
- 字符串方法
方法 | 描述 |
---|---|
charAt() |
返回指定索引位置的字符 |
indexOf() |
返回字符串中检索指定字符第一次出现的位置 |
lastIndexOf() |
返回字符串中检索指定字符最后一次出现的位置 |
match() |
找到一个或多个正则表达式的匹配 |
replace() |
替换与正则表达式匹配的子串 |
search() |
检索与正则表达式相匹配的值 |
slice() |
提取字符串的片断,并在新的字符串中返回被提取的部分 |
split() |
把字符串分割为子字符串数组 |
substr() |
从起始索引号提取字符串中指定数目的字符 |
substring() |
提取字符串中两个指定的索引号之间的字符 |
toString() |
返回字符串对象值 |
2.7 运算符
- 算数运算符
运算符 | 描述 |
---|---|
+ |
加法 |
- |
减法 |
* |
乘法 |
/ |
除法 |
% |
取模(余数) |
++ |
自增 |
-- |
自减 |
- 赋值运算符
运算符 | 例子 | 等同于 | 运算结果 |
---|---|---|---|
= |
x=y | x=5 | |
+= |
x+=y | x=x+y | x=15 |
-= |
x-=y | x=x-y | x=5 |
*= |
x*=y | x=x*y | x=50 |
/= |
x/=y | x=x/y | x=2 |
%= |
x%=y | x=x%y | x=0 |
- 字符串拼接
+
1 | var firstname = 'akashi'; |
2.8 比较运算符和逻辑运算符
- 比较运算符
运算符 | 描述 |
---|---|
== |
等于 |
=== |
绝对等于 |
!= |
不等于 |
!== |
不绝对等于(值和类型有一个不相等,或两个都不相等) |
> |
大于 |
< |
小于 |
>= |
大于或等于 |
<= |
小于或等于 |
- 逻辑运算符
运算符 | 描述 | 例子 |
---|---|---|
&& |
and |
(x < 10 && y > 1) 为 true |
II |
or |
(x==5 II y==5) 为 false |
! |
not |
!(x==y) 为 true |
注意:列表中的II
为双竖线||
。
- 条件运算符
1 | variablename=(condition)?value1:value2 |
eg
:1
voteable=(age<18)?"年龄太小":"年龄已达到";
2.9 条件语句
1 | if (condition1) { |
2.10 switch
语句
1 | switch(n) { |
2.11 for
循环
1 | for (语句 1; 语句 2; 语句 3) { |
for/in
JavaScript
for/in
语句循环遍历对象的属性
1 | var x; |
2.12 while
循环
1 | while (条件) { |
1 | do { |
2.13 break
和continue
语句
break
break
语句可用于跳出循环break
语句跳出循环后,会继续执行该循环之后的代码
continuee
continue
语句中断循环中的迭代- 如果出现了指定的条件,然后继续循环中的下一个迭代