如何使用js
引入js到页面的方法
- 定义script标签 在标签内写js代码
- 定义.js文件 使用script标签引入 js文件(推荐)
<script src="js/use.js">
</script>
ECMAScript基本语法
- 变量
格式:var 变量名; 默认值:undefined
特点:可以保存任意数据类型 - 数据类型
分类:
- number 数值类型(整数和小数)
- string 字符类型(单个字符和多个字符)
- boolean 布尔类型(要么true 要么false)
- object 对象类型(除了以上类型 都是对象类型)
- undefined 未定义变量默认值
- 运算符
分类:
- 算术运算符:+ - * / % ++ –
- 赋值运算符: = += -= *= /= %=
- 比较运算符: > < >= <= != == === !==
- 逻辑运算符: & | ! && ||
- 位运算符: << >> >>> ^
- 三元运算符: 表达式?true:false
- 流程控制
- if(){}else{} if(){}else if(){}…
- switch(){case: break;…}
- while(){} do{}while();
- for(){}
- 数组
定义:存储一组数据 相当于java中的数组+集合
特点:可以是任意数据类型 长度可变
使用:
- 定义
- 存值
- 遍历
- 删除值
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
// 1. 定义数组 java 数据类型[] 数组名 = new 数据类型[5]
var arr = new Array(); // 定义空数组
var arr1 = new Array(5); // 定义默认长度的数据
var arr2 = [1,2,true,null,"root"];
console.log(arr);
console.log(arr1);
console.log(arr2);
// 2. 存数据
arr[0] = 10;
arr[1] = 100;
arr[2] = false;
arr[3] = "abc";
arr['aaa'] = "root";
arr.push(null);
arr[100] = "abcdefg";
console.log(arr);
console.log("数组长度:"+arr.length);
// 3. 遍历数组 arr2.length 获取数组的长度(索引的最大值+1)
for(var i=0; i<arr.length;i++){
console.log(arr[i]);
}
console.log("---------------------------");
// index 数组的索引 in 关键字 arr要遍历的数组
for(var index in arr){
console.log(arr[index]);
}
// 4. 删除
delete arr['aaa'];
console.log(arr);
</script>
</head>
<body>
</body>
</html>
- 函数
相当于java中的方法
使用函数
- 定义函数
- 调用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
// 1. 定义无参无返回值
function func1(){
console.log("无参无返回值");
}
// 调用
func1();
// 2. 有参无返回值
function func2(name,age){
console.log(name+":有参无返回值:"+age);
}
// 调用
func2("root",18);
// 3. 无参有返回值
function func3(){
return "root";
}
// 调用
var str = func3();
console.log(str);
// 4. 有参有返回值
function func4(name,age,sex){
var obj = {
name: name,
age: age,
sex: sex
}
return obj;
}
// 调用
var o = func4("小冰冰",18, "未知");
console.log(o);
// 5. 匿名函数
var ff = function(){
console.log("匿名函数");
}
// 调用
ff();
</script>
</head>
<body>
</body>
</html>
- 日期对象
Date 日期对象:
创建对象:var date = new Date()
常见函数:
date.getFullYear() 获取年
date.getMonth() 获取月
date.getDate(); 获取日
date.getHours() 获取时
date.getMinutes() 获取分
date.getSeconds() 获取秒 - 数学对象
Math 对数值操作对象
常见函数
console.log(Math.round(i)); // 四舍五入
console.log(Math.ceil(i)); // 向上取整
console.log(Math.floor(i)); // 向下取整
console.log(Math.random()); // 随机数 [0,1)
console.log(Math.max(10,3)); // 获取最大值
console.log(Math.min(10,5)); // 获取最小值
console.log(Math.abs(-10)); // 获取绝对值 - String
String 字符串
定义:
var str = “”;
var str1 = new String("")
常见函数:
str.length; 获取字符串长度
str.startsWith(""); 是否以某个字符开头
str.endsWith(""); 是否以某个字符结尾
str.substring(起始索引,结束索引); 截取字符串
str.substr(起始索引,截取长度); 截取字符串
str.split(""); 拆分字符串 返回数组
事件
- 单击事件 onclick
- 双击事件 ondblclick
- 内容改变事件 onchange
- 鼠标获取和失去事件 onmouseover onmouseout
- 键盘抬起和按下事件 onkeydown onkeyup
- 获取和失去焦点事件 onfocus onblur
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
// 1. 点击弹框
function tan(){
// 1. 弹对话框 alert() 停止
alert("弹框");
}
// 双击弹框
function doubleTan(){
// 2. 弹输入框
// prompt(参数1,参数2); 返回输入框中输入的值(字符串)
// 参数1:提示信息 参数2:输入框的默认值
var str = prompt("请输入你的启蒙老师","");
console.log(str);
}
// 内容改变执行
function getValues(){
// 1. 根据id获取标签元素
var inp = document.getElementById("inp");
console.log(inp.value);
}
// 鼠标获取事件
function getDiv(){
// 1. 获取标签对象
var d1 = document.getElementById("d1");
d1.style.backgroundColor = "green";
}
// 鼠标失去事件
function setDiv(){
// 1. 获取标签对象
var d1 = document.getElementById("d1");
d1.style.backgroundColor = "blue";
}
// 键盘按下事件
function down1(){
console.log("键盘按下了");
}
// 键盘抬起
function up1(){
console.log("键盘抬起了");
}
// 失去焦点
function getFocus(){
console.log("获取焦点");
}
// 失去焦点
function setBlur(){
console.log("失去焦点");
}
</script>
</head>
<body>
<button onclick="tan()">点击弹框</button>
<button ondblclick="doubleTan()">双击</button>
<input id="inp" type="text" onchange="getValues()"/>
<div id="d1" onmouseover="getDiv()" onmouseout="setDiv()" style="width: 100px; height: 100px; border: 1px solid yellow;">
</div>
<input type="text" onkeydown="down1()" onkeyup="up1()"/>
<input type="text" onfocus="getFocus()" onblur="setBlur()" />
</body>
</html>
常见弹框
- 弹提示框
alert(提示信息) 特点:该函数执行页面停止 点击确定后继续执行 - 弹输入框
prompt(提示输入信息,输入框默认中) 返回值:输入框输入的内容 内容类型是String类型 - 弹警告框
confirm(警告信息) 返回值:boolean
DOM
标签元素操作
- 获取(查询)
- 根据id获取元素
document。getElementById(“id值”);返回整个标签元素 - 根据class获取元素 document.getElementsByClassName(“class值”); 返回HTMLCollection
- 根据标签名获取元素
document.getElementsByTagName(“标签名”);返回HTMLCollection - 根据标签的name属性 获取元素
document.getElementsByName(“name值”); 返回 NodeList
- 创建标签(增)
创建元素标签
document.createElement(“标签名”); 返回当前创建标签
指定位置
标签元素.appendChild(创建标签); 追加到某个标签的最后
父标签.insertBefore(创建标签,参照标签); 指定位置插入
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
// 创建img标签 并且加载图片
function showImg(){
// 1. 创建标签
var body = document.getElementsByTagName("body");
var img = document.createElement("img"); // 返回标签元素
var b = document.getElementsByTagName("button");
img.src = "images/1.jpg";
// 2. 指定位置
// body[0].appendChild(img); // 将img追加到body的最后
body[0].insertBefore(img, b[0]); // 参数1:创建的元素 参数2:参照物
}
</script>
</head>
<body>
<button onclick="showImg()">点击按钮显示图片</button>
</body>
</html>
- 删除标签
① 获取要删除的标签元素
② 标签元素.remove(); 自己删除自己
父标签.removeChild(子标签); 通过父标签删除子标签
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
// 删除的函数
function deleteE(){
// 1. 获取img
var imgs = document.getElementsByTagName("img");
var bodys = document.getElementsByTagName("body");
// 2. 删除标签
// imgs[0].remove(); // 自己删除自己
bodys[0].removeChild(imgs[0]);
}
</script>
</head>
<body>
<img src="images/smile.gif" /><br />
<button onclick="deleteE()">点击删除img</button>
</body>
</html>
- 修改标签
要修改标签元素.parentNode.replaceChild(修改后的标签,要修改的标签)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
// 修改标签
function changeE(){
// 1. 创建修改后的标签
var h3 = document.createElement("h3");
var h2s = document.getElementsByTagName("h2");
// 2. 修改
h2s[0].parentNode.replaceChild(h3, h2s[0]);
}
</script>
</head>
<body>
<h2>首页</h2>
<button onclick="changeE()">点击修改h2为h3</button>
</body>
</html>
标签中属性的操作
- 标签元素.属性名 = 值;
- 标签元素.setAttribute(“属性名”,“属性值”);
标签元素.getAttribute(“属性名”); // 获取属性值
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
function changeBook(num){
// 1. 获取操作的元素
var img = document.getElementsByTagName("img")[0];
if(num==1){
// img.src = "images/dog.jpg";
img.setAttribute("src","images/dog.jpg");
console.log(img.getAttribute("width")) ;
}else{
img.src = "images/mai.jpg";
}
}
</script>
</head>
<body>
<button onclick="changeBook(1)">点击显示第一本书</button>
<button onclick="changeBook(2)">点击显示第二本书</button><br />
<img src="" width="200">
</body>
</html>
标签中内容的操作
- 获取双边标签中的内容
标签元素.innerHTML // 获取标签中的所有内容(包括文本和子标签)
标签元素.innerText // 获取标签中的文本内容 - 获取input 中的内容
标签元素.value
标签中样式的操作
- 标签元素.style.样式名 = 样式值 // 一个一个样式设置
- 标签元素.setAttribute(“class”,“值”); // 将一个class选择器样式设置
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.xx{
width: 300px;
height: 300px;
border: 1px solid pink;
background-color: red;
}
</style>
<script>
function changeStyle(){
// 1. 获取div
var d1 = document.getElementById("d1");
// d1.style.backgroundColor = "yellow";
// d1.style.display = "inline-block";
// d1.style.fontSize = "20px"
d1.setAttribute("class","xx");
}
</script>
</head>
<body>
<div id="d1">
哈哈
</div>
<button onclick="changeStyle()">点击改变样式</button>
</body>
</html>
BOM(对浏览器操作)
windows对象的使用
- window对象的子对象
- document 操作元素标签
- History 页面历史记录
- Location对象 浏览器访问的地址 相当于a
- Navigator 包含了浏览器的相关信息
- Screen 浏览器屏幕信息
- 使用window可以省略
window.document // 获取document对象
window.alert() // 弹提示框
window.prompt() // 弹输入框
window.comfirm() // 弹警告框 - 定时器
- 一次性定时器 window可以省略
创建定时器:var id =window.setTimeout(“action1()”, 3000);
参数1:执行的动作 参数2:时间
清除定时器:window.clearTimeout(id);
参数:定时器对象 - 循环定时器
① 创建定时器
setInterVal(“间隔时间执行的动作”,间隔时间单位ms);
② 清除定时器
clearInterVal(定时器对象);
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<script>
var id;
function tan3() {
// 1. 创建定时器(一次性定时器)
id = window.setTimeout("action1()", 3000); // 参数1:执行的动作 参数2:时间
}
function action1() {
alert("点我干啥");
}
function clear1() {
// 2. 清除定时器
window.clearTimeout(id);
}
var dd;
function showClock() {
// 1. 创建循环定时器 参数1:执行的动作 参数2:时间间隔 单位:ms
dd = window.setInterval("getTime1()", 1000);
}
function getTime1() {
var date = new Date();
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDay(); // 当周的第几天
var d = date.getDate();
var hours = date.getHours();
var minutes = date.getMinutes();
var seconds = date.getSeconds();
// console.log(hours+":"+minutes+":"+seconds);
var str =year +"年" +month + "月" +d +"日" +" " +hours +"时" +minutes +"分" + seconds +"秒";
document.getElementById("d1").innerHTML = str;
}
var flag = true; // 默认时钟动起来的
function stopClock(){
var inp = document.getElementById("inp");
if(flag){
// 2. 清除循环定时器 参数:定时器对象
clearInterval(dd);
// 按钮的状态改变
inp.value = "点击启动时钟";
flag = false;
}else{
// 启动 时钟
showClock();
// 按钮的状态改变
inp.value = "点击停止时钟";
// 改变标记
flag = true;
}
}
</script>
</head>
<body>
<button onclick="tan3()">点击三秒弹框</button>
<button onclick="clear1()">清除一次性定时器</button>
<div id="d1"></div>
<input onclick="showClock()" type="button" value="点击显示时钟" />
<input id="inp" onclick="stopClock()" type="button" value="点击停止时钟" />
</body>
</html>
History
- history.forward();页面前进
- history.back();页面后退
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
function forword1(){
window.history.forward(); // 前进
}
function back1(){
window.history.back(); // 后退
}
</script>
</head>
<body>
<button onclick="forword1()">前进</button>
<button onclick="back1()">后退</button>
<a href="https://www.baidu.com">点击去百度</a>
</body>
</html>
location
- 页面刷新
window.location.reload(); // 刷新 - 实现页面跳转
location.href = “路径”;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
function forword1(){
window.history.forward(); // 前进
}
function back1(){
window.history.back(); // 后退
}
function flush1(){
window.location.reload(); // 刷新
}
function jump1(){
window.location.href = "12-bom定时器.html";
}
</script>
</head>
<body>
<button onclick="forword1()">前进</button>
<button onclick="back1()">后退</button>
<a href="https://www.baidu.com">点击去百度</a>
<button onclick="flush1()">点击刷新当前页面</button>
<button onclick="jump1()">点击跳转页面</button>
</body>
</html>