JavaScript
1 JavaScript介绍
JavaScript,这门语言会让我们的页面能够和用户进行交互。
2 引入方式
第一种方式:内部脚本,将JS代码定义在HTML页面中(初学一天了用这个,后续使用这一种)
第二种方式:外部脚本,将JS代码定义在外部 JS文件中,然后引入到 HTML页面中
- 外部JS文件中,只包含JS代码,不包含
// 外部
<script src="js/demo.js"></script>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>JavaScript引入介绍</title>
<!-- 内部脚本 -->
<!-- <script>
alert('Hello JS');
</script> -->
<!-- 外部脚本 -->
<script src="js/demo.js"></script>
</head>
<body>
</body>
</html>
3 基础语法
3.1 书写语法
-
区分大小写:与 Java 一样,变量名、函数名以及其他一切东西都是区分大小写的
-
每行结尾的分号可有可无
-
大括号表示代码块
js的三种输出语句
api | 描述 |
---|---|
window.alert() | 警告框 |
document.write() | 在HTML 输出内容 |
console.log() | 写入浏览器控制台 |
3.2 变量
关键字 | 解释 |
---|---|
var | 早期ECMAScript5中用于变量声明的关键字,var关键字声明的变量可以重复定义 |
let | ECMAScript6中新增的用于变量声明的关键字,相比较var,let只在代码块内生效,let : 局部变量 ; 不能重复定义 |
const | 声明常量的,常量一旦声明,不能修改 |
3.3 数据类型和运算符
数据类型 | 描述 |
---|---|
number | 数字(整数、小数、NaN(Not a Number)) |
string | 字符串,单双引皆可 |
boolean | 布尔。true,false |
null | 对象为空 |
undefined | 当声明的变量未初始化时,该变量的默认值是 undefined |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
//原始数据类型
alert(typeof 3); //number
alert(typeof 3.14); //number
alert(typeof "A"); //string
alert(typeof 'Hello');//string
alert(typeof true); //boolean
alert(typeof false);//boolean
alert(typeof null); //object
var a;
alert(typeof a); //undefined
</script>
</body>
</html>
运算规则 | 运算符 |
---|---|
算术运算符 | + , - , * , / , % , ++ , – |
赋值运算符 | = , += , -= , *= , /= , %= |
比较运算符 | > , < , >= , <= , != , == , =。 注意:== 会进行类型转换,= 不会进行类型转换 |
逻辑运算符 | &&,!,11 |
三元运算符 | 条件表达式 ? true_value: false_value |
- ==:只比较值是否相等,不区分数据类型,哪怕类型不一致,==也会自动转换类型进行值得比较
- ===:不光比较值,还要比较类型,如果类型不一致,直接返回false
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var age = 20;
var _age = "20";
var $age = 20;
alert(age == _age);//true ,只比较值
alert(age === _age);//false ,类型不一样
alert(age === $age);//true ,类型一样,值一样
</script>
</body>
</html>
在js中,虽然不区分数据类型,但是有时候涉及到数值计算,还是需要进行类型转换的,js中可以通过parseInt()函数来进行将其他类型转换成数值类型。注释之前的代码,添加代码如下:
// 类型转换 - 其他类型转为数字
alert(parseInt("12")); //12
alert(parseInt("12A45")); //12
alert(parseInt("A45"));//NaN (not a number)
在js中, 0,null,undefined,“”,NaN 理解成false,反之理解成true。
4 JS的函数
4.1 函数的第一种定义
function 函数名(参数1,参数2..){
要执行的代码
}
例如
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>JS-函数</title>
</head>
<body>
<script>
function add(a,b){
return a+b;
}
var result = add(10, 20);
alert(result);
</script>
</body>
</html>
4.2 函数的第二中定义
var functionName = function (参数1,参数2..){
//要执行的代码
}
例如
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>JS-函数</title>
</head>
<body>
<script>
// 第一种定义
// function add(a,b){
// return a+b;
// }
//第二种定义
var add = function (a, b) {
return a + b;
}
var result = add(10, 20);
alert(result);
</script>
</body>
</html>
5 JavaScript对象
W3school -> JavaScript -> 参考书
点击进入:https://www.w3school.com.cn/jsref/index.asp
5.1 基本对象
5.1.1 Array对象
方式一:
var 变量名 = new Array(元素列表);
var arr = new Array(1,2,3,4); //1,2,3,4 是存储在数组中的数据(元素)
方式二:
var 变量名 = [ 元素列表 ];
var arr = [1,2,3,4]; //1,2,3,4 是存储在数组中的数据(元素)
//定义数组
var arr = new Array(1, 2, 3, 4);
var arr = [1, 2, 3, 4];
//获取数组中的值,索引从0开始计数
console.log(arr[0]);
console.log(arr[1]);
与java中不一样的是,JavaScript中数组相当于java中的集合,数组的长度是可以变化的。
//特点: 长度可变 类型可变
var arr = [1, 2, 3, 4];
arr[10] = 50;
console.log(arr[10]);
console.log(arr[9]);
console.log(arr[8]);
var arr = [1, 2, 3, 4];
arr[10] = 50;
arr[9] = "A";
arr[8] = true;
console.log(arr);
官方文档中提供了Array的很多属性和方法,但是我们只学习常用的属性和方法,如下图所示:
属性:
属性 | 描述 |
---|---|
length | 设置或返回数组中元素的数量。 |
6 JS 事件
6.1 事件介绍
如下图所示的百度注册页面,当我们用户输入完内容,百度可以自动的提示我们用户名已经存在还是可以使用。那么百度是怎么知道我们用户名输入完了呢?
- 按钮被点击
- 鼠标移到元素上
- 输入框失去焦点
6.2 事件绑定
JavaScript 对于事件的绑定提供了 2 种方式:
方式 1:通过 html 标签中的事件属性进行绑定
例如一个按钮,我们对于按钮可以绑定单机事件,可以借助标签的onclick
属性,属性值指向一个函数。
<input type="button" id="btn1" value="事件绑定 1" onclick="on()">