一、 主流浏览器
概念:有自己的内核。
- IE 内核:trident;
- Chrome 内核:webkit/blink;
- firefox 内核:Gecko;
- opera 内核:presto;
- Safari 内核:webkit
二、JavaScript
- JavaScript是互联网上最流行的脚本语言,这门语言可用于Web和HTML,更可以广泛用于服务器,pc端,移动端。
- JavaScript脚本语言:
JavaScript是一种轻量级的语言;
JavaScript是可插入HTML页面的编程代码;
JavaScript插入HTML页面后,可由所有的浏览器执行; - JavaScript实现:
1.JavaScript用法:必须用于标签 < script > < script >之间;
2.脚本可被放置在HTML页面中的< body > 和< head >部分中;
3.脚本数量无限制;
4.通常把脚本置放在head标签中,以便不干扰内容。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--可以通过在head标签里引入script标签-->
<script>document.write("head引入")</script>
</head>
<body>
<!--可以通过src 来引入外部一个js文件-->
<script src="1.js"></script>
<!--可以通过在body标签里引入script标签-->
<script>document.write("body引入")</script>
</body>
</html>
1.js文件
document.write("外部引入")
- 可以在文档写入的时候添加标签;比如h1;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--可以在写文档的时候加入标签-->
<script>document.write("<h1>h1标签</h1>")</script>
</head>
<body>
</body>
</html>
- 利用JavaScript来操作HTML;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p id="pid"> Hello</p>
<script>
document.getElementById("pid").innerHTML="Hello被script标签改变了";
</script>
</body>
</html>
可以看出,网页并没有显示Hello,而显示的是被改变;
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190621151201561.png)
- JavaScript语法:
语句之间的结束分割是分号(;),也可以不写分号,但是写上比较清晰;
语句的执行顺序是按照编写顺序执行的;
标识符:必须以字母,下划线或美元符号开始;
对大小写非常敏感,不可以随便改变大小写;
JavaScript会忽略掉很多的空格;
代码换行要写到 script标签之外;
注释(和 java 的注释一样):
单行注释://
多行注释:/**/
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
document.write("一次");
</script>
<script>
document.write("两次");
</script>
<script>
document.write("三次");
</script>
</body>
</html>
- JavaScript 声明变量
利用var关键字来声明变量;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
var i = 1;
var j = 2;
var m = i + j;
document.write(m)//在浏览器页面打印输出m的值
</script>
</head>
<body>
</body>
</html>
运行结果如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190621152805403.png)
- JavaScript 数据类型
8.1. 字符串(String)
8.2. 数字(Number)
8.3. 布尔(Boolean)
8.4. 数组(Array)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
var i = 1;
var j = 2;
var m = i + j;
document.write(m)
</script>
<script>
var String = "hello";//字符串
var i1 = 10;//数字
var flag = true;//布尔
//数组的定义方式1:通过中括号的方式
var arr = [1,2,3,4];//数组 数组里面可以存放任意类型的数据类型
//数组的定义方式2:通过new Array,括号里面可以直接写元素的值
var arr1 = new Array(1,2,3,4,5,6);
//数组的定义方式3:通过new Array,括号里面先不写
var arr2 = new Array();
//通过数组下标赋值 动态写
arr2[0] = 1;
arr2[1] = 4;
arr2[2] = 5;
arr2[4] = 9
//如果没有定义 arr2[3]这个元素 那么打印结果将是 undefined
document.write(arr2[3]);//打印数组中某一个元素
</script>
</head>
<body>
</body>
</html>
数组可以动态扩容
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
//数组自动扩容
var arr = new Array(4);
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
arr[4] = 5;
arr[5] = 6;
console.log(arr[4]);
console.log(arr[5]);
console.log("==========================");
//数组里面可以放数据类型不一致的元素
var arr1 = new Array(1,2,3,4,"bing");
console.log(arr1);
console.log("==========================");
var str = "a b c d e f g";
var arr2 = str.split(" ");
console.log(arr2);
console.log("==========================");
//join通过指定的连接符 重新将数组排成字符串
str = arr2.join("-");//a-b-c-d-e-f-g
console.log(str);
console.log("==========================");
arr2[2] = 10;
console.log(arr2);
console.log("==========================");
var num = "4 3 1 5 6 3 2";
var arr3 = num.split(" ");
//排序 默认升序
arr3.sort();
console.log(arr3);
console.log("==========================");
//向数组最后位添加 元素
arr3.push(7);
console.log(arr3);
</script>
</head>
<body>
</body>
</html>
8.5. 对象(Object);
8.6. 空(null);
var i2 = null;//输出为 null
8.7. 未定义;
8.8. 可以通过赋值为null 的方式清除变量;
- JavaScript 运算符
9.1 算数运算符:+ 、-、 * 、%、/、++、- -
9.2 赋值运算符:=、+=、-=、* =、%=、/=
9.3 字符串操作:
9.4 比较运算符: ==、 =、!=、!、>、<、>=、<=
===:数据类型与内容都相同,则返回true;
==:内容相同就返回true,与数据类型无关;
! =:比较内容;
! == :比较内容和数据类型;
9.5 逻辑运算符:&&、||、!
9.6 条件运算符:例如, x < 10? " x比10小" : “x比10 大” - 循环语句
10.1 for循环
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
var arr = [1,2,3,4,5,6];
var j;
//类似于java里面的加强for循环
for (j in arr) {
document.write(arr[j]+"<br>");
}
</script>
</body>
</html>
10.2 while 循环
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
var i = 1;
while (i < 10){
document.write("i = "+i +"<br/>");
i++;
}
</script>
</body>
</html>
- 跳转语句:break return continue;
- JavaScript的4中输出方式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
//4种输出方式
//1.弹窗(浏览器事件)
window.alert("hello");
//2.括号内写html语言(文档对象事件)
document.write("<h1>郝一凡</h1>");
//3.控制台输出(调试语法)
console.log("hello wrold!")
//4.写在网页上
document.getElementById("abc").innerHTML = "哈哈哈";
</script>
</head>
<body>
<div id="abc">
</div>
</body>
</html>
- 循环打印输出
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
//函数
function study() {
for (var i = 1;i < 5;i ++){
document.write("<h1>"+ "JavaScript" + i+"</h1>");
}
}
function add(a,b) {
return alert(a+b);
}
function nums(n) {
for(var i = 0;i < n;i++){
document.write("<h1>"+ "JavaScript" + i+"</h1>")
}
}
</script>
</head>
<body>
<button type="button" value="按钮" onclick="study()">按钮</button>
<button type="button" onclick="add(parseInt(prompt('请输入第一个数字','')),parseInt(prompt('请输入第二个数字')))">按钮2</button>
<!--prompt('请输入循环次数','') 将字符串自动转化成数字-->
<button onclick="nums(prompt('请输入循环次数',''))">按钮3</button>
</body>
</html>
- 跳板
1
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
window.location.href = "index2.html";
</script>
</head>
<body>
</body>
</html>
2
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
window.location.href = "index3.html";
</script>
</head>
<body>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
window.location.href = "https:\\www.baidu.com";
</script>
</head>
<body>
</body>
</html>
- BOM对象
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
function f1() {
//innerHTML 修改 html的标签有用
document.getElementById("a").innerHTML = "<h1>你好啊</h1>"
}
function f2() {
//innerText 修改 html标签没有用
document.getElementById("a").innerText = "<h1>你好啊</h1>"
}
</script>
</head>
<body>
<div id="a">
</div>
<input type="button" onclick="f1()" value="显示">
<input type="button" onclick="f2()" value="隐藏">
</body>
</html>
- window对象
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
//与 alert(""); 等价
//所有函数都属于 window. 默认省略
window.alert("");
window.location.href = "https:\\www.baidu.com";
window.history.back();//后退
window.history.forward();//转发
window.history.go();//前进
</script>
</head>
<body>
<a href="javascript:location = 'https:\\www.baidu.com'">百度一下</a>
</body>
</html>
- 加载事件(onload)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
function begin() {
document.write('哈哈哈');
}
</script>
</head>
<!--网页加载完成执行begin()函数-->
<body onload="begin()">
</body>
</html>
- 动态显示时间
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
function getDate() {
var day = new Date();
var h = day.getHours();
var m = day.getMinutes();
var s = day.getSeconds();
setTimeout(getDate,1000);
document.getElementById("time").innerText ="北京时间 "+ h +":" + m+":"+s;
}
</script>
</head>
<body>
<div id="time">
<input type="button" onclick="getDate()" value="按钮">
</div>
</body>
</html>