JavaScript基础

1.JavaScript的作用

技术作用
HTML用于网页的结构的创建:文本、表格、图片
CSS用于网页美化,起到降低耦合,分工更加明确
JavaScript运行在网页的脚本语言,程序语言。类似于Java
示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>第一个 JS 文件</title>
</head>
<body>
<!--所有的脚本要写在一个 script 标签内部,MIME 类型:大类型/小类型 -->
<script type="text/javascript">
//输出 5 个 Hello World
for (var i=0; i<5; i++) {
document.write("<h1>Hello World</h1>");
}
</script>
</body>
</html>

2.JavaScript的基本语法

2.1 JavaScript语言的组成
组成部分作用
ECMA Script制定了脚本语言的规范,构成了JS的核心语法基础
BOMBrowser Object Model 浏览器对象模型,操作浏览器找那个的各种对象。如:window
DOMDocument Object Model 文档对象模型,操作网页中各种元素。如:各种标签input
2.2 JavaScript 的存放位置
  1. 放在 HTML 中,用于某个 HTML 文档。
  2. 放在 HTML 外部,以单独的 JS 文件存在,扩展名.js。可以用于不同的 HTML 文件。
    3.2.1 script 标签的说明:
src:导入外部的 JS 文件地址
type:指定脚本语言的类型,可以省略。设置为 text/javascript址
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>第一个 JS 文件</title>
</head>
<body>
<script type="text/javascript" src="js/out.js"></script>
<!--所有的脚本要写在一个 script 标签内部,MIME 类型:大类型/小类型 -->
<script type="text/javascript">
//输出 5 个 Hello World
for (var i=0; i<5; i++) {
document.write("<h1>Hello World</h1>");
if (i == 2) {
document.write("<h2>JavaScript</h2>");
}
}
</script>
<!--导入外面的文件-->
<script type="text/javascript" src="js/out.js"></script>
</body>
</html>


3. JavaScript的数据类型

3.1 JavaScript的五种数据类型
关键字说明
number数据型,包括:整数和浮点数
boolean布尔类型,包括:true、false
string字符串类型,包含:字符和字符串
object对象类型,包括:JS内置独享或自定义类型
undefined未初始化的类型,不知道是什么类型
3.2 typeof 操作符
  1. 作用:判断变量数据类型,返回数据类型的名字
  2. 写法:typeof(变量名) 或 typeof 变量名
null 与 undefined 的区别说明
null对象类型,没有值
undefined未定义的数据类型,不知打卡是什么类型
3.3 数据类型的演示(代码):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script type="text/javascript">
var i = 5; //数值
var f = 3.14; //数值
var b = true; //布尔
var c = 'a'; //字符串
var str = "abc"; //字符串
var d = new Date(); //日期内置对象
var person = {name: "孙悟空", age: 18}; //自定义对象类型 JSON 对象
var n = null; //为空的对象
var u; //没有初始化
document.write(typeof(i) + "<br/>");
document.write(typeof(f) + "<br/>");
document.write(typeof(b) + "<br/>");
document.write(typeof(c) + "<br/>");
document.write(typeof(str) + "<br/>");
document.write(typeof(d) + "<br/>");
document.write(typeof(person) + "<br/>");
document.write(typeof(n) + "<br/>");
document.write(typeof(u) + "<br/>");
</script>
</body>
</html>
3.4 字符串转换成数字类型
转换函数作用
parseInt()将一个字符串转成整数,如果前面的部分可以转换,也可以转换成功。如果不能转换返回NaN
parseFloat()将一个字符串转成浮点数,如果前面的部分可以转换,也可以转换成功。如果不能转换返回 NaN
isNaN()用来判断变量是否是非数字,非数字返回 true,数字返回false。必须全是数字才返回false

4.两个重要的提示函数

window 对象的方法名作用
string prompt(“提示信息”,"默认值”)用于在网页上弹出一个输入对话框 参数1:提示信息参数 2:默认值 返回:字符串类型
alert(“提示信息”) 只要是 window 的方法,window 对象都可以省略,如:window.alert()简写成 alert()在网页上弹出一个信息框,只有一个确定按钮
4.1 示例代码:

需求:通过 prompt 输入的分数,如果 90~100 之间,输出优秀。80~90 之间输出良好。60~80 输出及格。60 以下
输出不及格。其它分数输出:分数有误。

案例分析:

  1. 使用 prompt 得到输入的分数
  2. 使用 switch 对分数进行判断
  3. 如果在 90 到 100 之间,则输出优秀,其它依次类推。
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script type="text/javascript">
//让用户输入分数
var num = window.prompt("请输入分数", "60");
//document.write(num + "<br/>"); //不需要转换 parseInt()
//document.write(typeof (num)+ "<br/>");
//如果一个字符串与数值比较大小,会自动转成数值型再比较大小。
// document.write((num > 10) + "<br/>");
//使用 switch 判断等级
switch (true) {
//case 后面使用表达式
case num >=90 && num <=100 :
alert("优秀");
break;
case num >=60 && num <90 :
alert("及格");
break;
case num >=0 && num < 60 :
alert("不及格");
break;
default :
alert("分数有误");
break;
}
</script>
</body>
</html>

示例2:

需求:
以表格的方式输出乘法表,其中行数通过用户输入

案例分析:

  1. 先制作一个没有表格,无需用户输入的 9x9 乘法表
  2. 由用户输入乘法表的行数
  3. 使用循环嵌套的方式,每个外循环是一行 tr,每个内循环是一个 td
  4. 输出每个单元格中的计算公式
  5. 给表格添加样式,设置内间距
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
table {
margin: auto;
/*使用细边框的样式*/
border-collapse: collapse;
}
td {
padding: 5px;
}
td:hover {
background-color: orange;
}
caption {
font-size: 16px;
}
</style>
</head>
<body>
<script type="text/javascript">
var num = window.prompt("请输入乘法表行数:","9");
document.write("<table border=\"1\">");
document.write("<caption>" + num + "&times;" + num + "乘法表</caption>");
//外循环,每次循环一行
for (var i = 1; i <= num; i++) {
document.write("<tr>");
//内循环,每次循环一列
for (var j = 1; j <=i; j++) {
document.write("<td>");
document.write( j + "&times;" + i + "=" + (i*j));
document.write("</td>");
}
document.write("</tr>");
}
document.write("</table>");
</script>
</body>
</html>

5.JavaScript函数

5.1 函数的两种定义

1.命名函数,有名字函数,可以重用
2.匿名函数,没有名字函数,不可以重用

//命名函数定义格式:
function 函数名(参数列表){
    //函数体
    [return 返回值]}
示例 1:
//需求:定义一个函数实现加法功能
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script type="text/javascript">
//命名函数
//定义一个函数实现 2 个数相加
function sum(a, b) {
return a+b;
}
//函数不调用不执行
document.write(sum(2,3) + "<br/>");
document.write(sum(1,5) + "<br/>");
</script>
</body>
</html>

注意的事项:

  1. 形参的类型不能写的,因为是弱类型。
  2. 如果函数有返回值,使用 return
    返回即可,不用指定函数的返回类型。如果没有返回值,不返回。
  3. 在 JS 中没有函数的重载,后面创建的同名函数会覆盖前面的函数。形参的个数与实参的个数无关。
  4. 在任何一个函数中,都存在一个隐藏的数组,名字叫 arguments
示例 2:

需求:案例:实现轮播图

案例分析:

  1. 创建 HTML 页面,页面中有一个 div 标签,div 标签内包含一个 img 标签。
  2. body 的背景色为黑色;div 的类样式为 container:设置为居中,加边框,宽度为 500px;img 的 id 为
    pic,宽度 500px;
  3. 五张图片的名字依次是 0~4.jpg,放在项目的 img 文件夹下,图片一开始的 src 为第 0 张图片。
  4. 编写函数:changePicture(),使用 setInterval()函数,每过 3 秒调用一次。
  5. 定义全局变量:num=1。
  6. 在 changePicture()方法中,设置图片的 src 属性为 img/num.jpg。
  7. 判断 num 是否等于 4,如果等于 4,则 num=0;否则 num++。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
body {
background-color: black;
}
#wang {
width: 700px;
margin: auto;
}
</style>
</head>
<body>
<div id="wang">
<img src="img/0.jpg" id="pic" width="700">
</div>
<script type="text/javascript">
//定义一个全局变量
var num = 1;
//每过 3 秒调用一次换图片的函数
//参数 1:调用的函数名
//参数 2: 时间间隔
window.setInterval("changePic()", 3000);
function changePic() {
//得到元素的代码必须放在元素加载之后
var pic = document.getElementById("pic");
//alert(pic); //这是一个图片对象
pic.src = "img/" + num + ".jpg";
//图片加 1
num++;
//如果 num 等于 5
if (num == 5) {
num = 0;
}
}
</script>
</body>
</html>

6.事件的处理

6.1 设置事件的两种方式:
  1. 方式一:命名函数
<input type="button" value="点我试试" onclick="事件处理函数()">
  1. 方式二:匿名函数
元素对象.onclick = function () {
 事件处理的代码
}
示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!--
所有的事件都以 on 开头
onclick 后面指定函数的名字
-->
<input type="button" value="点我试试 1" onclick="clickMe()">
<input type="button" value="点我试试 2" id="b2">
<script type="text/javascript">
//事件处理函数
function clickMe() {
alert("来了");
}
//得到按钮 2
document.getElementById("b2").onclick = function () {
alert("请坐");
}
</script>
</body>
</html>

6.2 常用的事件:

事件作用
onclick单击事件
ondblclick双击事件
onload加载完毕事件
onfocus得到焦点
onblur失去焦点
onchange改变事件
onmouseover鼠标移上
onmouseout鼠标移出
onsubmitt表单提交事件
示例 1:onclick点击事件

需求:

设置事件的示例

有两个按钮,点第 1 个弹出一个信息框,点第 2 个弹出另一个信息框。分别使用两种不同的方式激活事件

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!--
所有的事件都以 on 开头
onclick 后面指定函数的名字
-->
<input type="button" value="点我试试 1" onclick="clickMe()">
<input type="button" value="点我试试 2" id="b2">
<script type="text/javascript">
//事件处理函数
function clickMe() {
alert("来了");
}
//得到按钮 2
document.getElementById("b2").onclick = function () {
alert("请坐");
}
</script>
</body>
</html>
示例 2:onload 元素加载完毕以后调用的事件

需求:页面加载完毕以后,才执行相应的 JS 代码

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
//事件处理函数
function clickMe() {
alert("来了");
}
//整个网页加载完毕之后调用代码
window.onload = function () {
//得到按钮 2
document.getElementById("b2").onclick = function () {
alert("请坐");
}
}
</script>
</head>
<body>
<!--
所有的事件都以 on 开头
onclick 后面指定函数的名字
-->
<input type="button" value="点我试试 1" onclick="clickMe()">
<input type="button" value="点我试试 2" id="b2">
</body>
</html>
示例 3:onmouseover 鼠标移到元素上面 onmouseout 鼠标移出事件

需求:

示例:将鼠标移动到 img 上显示图片,移出则显示另一张图片。图片设置边框,宽 500px

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<img src="img/0.jpg" id="pic" width="500">
<script type="text/javascript">
//得到图片对象,鼠标移入事件
document.getElementById("pic").onmouseover = function () {
//document.getElementById("pic").src = "img/1.jpg";
this.src = "img/1.jpg"; //当前对象
}
//鼠标移出事件
document.getElementById("pic").onmouseout = function () {
document.getElementById("pic").src = "img/2.jpg";
}
</script>
</body>
</html>

6.3 this 关键字的作用:

  1. 出现在控件的事件方法中,做为对象传递进来
<input type="button" value="点我试试 1" onclick="clickMe(this)">
//事件处理函数
function clickMe(obj) {
//obj 相当于按钮
alert(obj.value);
}
  1. 出现在匿名函数的代码中:
//得到图片对象,鼠标移入事件
document.getElementById("pic").onmouseover = function () {
//document.getElementById("pic").src = "img/1.jpg";
this.src = "img/1.jpg"; //当前对象
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值