1. 数组生成
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
<script type="text/javascript">
//不常用
//var arr = new Array(1,2,'哈哈');
//1.数组的定义
var arr = [1,2,'哈哈'];
// alert(arr); //弹出1,2,哈哈
// //2.按下标取元素
// alert(arr[0]); //弹出1
//
//3.获取数组长度=个数 = 3
// alert(arr.length); //弹出3
//4.把数组转化为字符串。通过什么符号去分割。
// alert(arr.join('')); //弹出12哈哈
// alert(arr.join('-')); //弹出1-2-哈哈
// //5.push在数组最后追加一个数据
// arr.push('呵呵');
// alert(arr); //弹出1,2,哈哈,呵呵
// //6.pop删除数组的最后一个数据
// arr.pop();
// alert(arr); //弹出1,2
//7.数组反转
// alert(arr.reverse()); //弹出哈哈,2,1
//8.indexOf查找数组数据的下标。如果找不到则返回-1。
// alert(arr.indexOf(1)); //弹出0
// alert(arr.indexOf(3)); //弹出-1
var arr2 = [1,2,3,4,5];
// //从第二个元素开始,删除3个元素,然后在此位置增加3,4
// arr2.splice(2,3,3,4); //数组是可变类型
// alert(arr2); //弹出1,2,3,4
// //从第一个元素开始,删除0个元素,在此位置再增加'这是我想要添加的'
// //实际上就是可以在任意位置插入想要增加的元素
// arr2.splice(1,0,'这是我想要添加的');
// alert(arr2); //弹出1,这是我想要添加的,2,3,4,5
//多维数组。数组嵌套数组
var arr3= [[1,2,3],[4,5,6]];
alert(arr3); //弹出1,2,3,4,5,6,
alert(arr3[0][1]); //弹出2
</script>
</html>
2. 循环
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
<script type="text/javascript">
//for(初始值;循环的次数;递增){
//
// }
for(var i = 0;i <3;i++){
alert(i);
}
</script>
</html>
3. 数组去重
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
<script type="text/javascript">
var list = [3,4,3,4,5,5];
var list2 =[];
// 第一次执行:3的下标是0和2,但是indexOf只会取到第一个3的下标0,
// 刚好对应是i(0),执行加入到list2
// 第三次执行:3的下标又会取到第一个3的下标0,二对应的是i(2),
// 不匹配因此不加入到list2中,以此排除类推
for(i = 0; i < list.length; i++){
if(list.indexOf(list[i]) == i){
list2.push(list[i]);
}
}
alert(list2);
</script>
</html>
4. 案例 - 将数组内容打印到列表
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
ul {
width: 300px;
height: 300px;
background: lightblue;
font-size: 40px;
}
a {
text-decoration: none;
}
</style>
</head>
<body>
<ul id="box">
</ul>
</body>
<script type="text/javascript">
//定义数组 将列表内容装入数组
var list = ['复仇者联盟', '后来', '头号玩家', '海绵宝宝'];
//获取列表元素
var oBox = document.getElementById('box');
//循环添加
for(var i = 0; i < list.length; i++) {
oBox.innerHTML += '<li><a href="http://www.baidu.com">' + list[i] + '</a></li>'
}
</script>
</html>
5. 调试程序的方法
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
<script type="text/javascript">
for(var i=0; i<100; i++){
//通常我们用这种这种方法能看到效果进行调试
//但是如果像本程序中循环次数过多的话,alert直接看结果会造成很大的困扰
// alert(i);
//推荐使用console.log()来进行查看和调试
console.log(i)
}
</script>
</html>
6. 字符串的操作
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
<script type="text/javascript">
var num1 = '12.98';
var num2 = 13;
var num3 = 12;
// //1、字符串合并操作:“ + ”
// //数字和字符串相加等同于字符串相加
// alert(num1+num2); //弹出12.9813
// alert(num2 + num3); //弹出25
// alert(num1 + num2 + num3); //弹出12.981312
// alert(num2 + num3 + num1); //弹出2512.98
// //2、parseInt() 将 数字字符串 转化为整数
// parseInt取整。不会四舍五入。可以转为数值
// alert(parseInt(num1)); //弹出12
// alert(parseInt(num1) + num2); //弹出25
// //3、parseFloat() 将 数字字符串 转化为小数
// //parseFloat转为小数。可以转为数值
// alert(parseFloat(num1) + num2); //弹出25.98
// //4、减号,自带会把数据类型转成数值
// alert( num1-0 ); //是parseInt、parseFloat之外简单的将 数字字符串 转化为数字类型的方法
// alert(num1 + num2); //弹出12.9813
// alert(num1-0 + num2); //弹出25.98
// //5、split() 把一个字符串分隔成字符串组成的数组
// var sTr = '2018-5-4';
// var arr1 = sTr.split("-"); //['2018','5','4']
// var arr2= sTr.split(""); //['2','0','1','8','-','5','-','4']
//
// alert(arr1); //弹出2018,5,4
// alert(arr2); //弹出2,0,1,8,-,5,-,4
// //6、indexOf() 查找字符串是否含有某字符
// //找出元素的下标。如果找不到就返回-1
// alert(num1.indexOf('.')); //弹出2
// alert(num1.indexOf('a')); //弹出-1
//7、substring() 截取字符串 用法: substring(start,end)(不包括end)
//第一个值代表开始,第二值代表是结束
//假如直接一个值,只有开始,没有结束
var num4 = '13.3333333344444555555';
alert(num4.substring(2,5)); //弹出.33
alert(num4.substring(2)); //弹出.3333333344444555555
</script>
</html>
7. 字符串的反转
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
<script type="text/javascript">
var sTr = '123abcdef';
//先把字符串转成数组。再反转。再转为字符串
//字符串没有反转操作
alert(sTr.split('').reverse().join('')); //弹出fedcba321
</script>
</html>
8. 变量的作用域
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
<script type="text/javascript">
/*
变量作用域指的是变量的作用范围,javascript中的变量分为全局变量和局部变量。
1、全局变量:在函数之外定义的变量,为整个页面公用,函数内部外部都可以访问。
2、局部变量:在函数内部定义的变量,只能在定义该变量的函数内部访问,外部无法访问。
*/
var num1 = 123; //全局变量
function fnAlert(){
var num2 =321; //局部变量
alert(num1);
alert(num2);
}
fnAlert(); //第一次弹出123 & 第二次弹出321
alert(num1); //弹出123
alert(num2); //不能弹出,错误
</script>
</html>
9. 定时器基础
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<input type="button" value="开启多次定时器" id="btn1"/>
<input type="button" value="开启单次定时器" id="btn2"/>
<input type="button" value="关闭多次定时器" id="btn3"/>
<input type="button" value="关闭多次定时器" id="btn4"/>
</body>
<script type="text/javascript">
var oBtn1 = document.getElementById('btn1');
var oBtn2 = document.getElementById('btn2');
var oBtn3 = document.getElementById('btn3');
var oBtn4 = document.getElementById('btn4');
var mUl = null;
var sIng = null;
//多次定时器
oBtn1.onclick = function(){
mUl = setInterval(function(){
alert('炸了');
},3000)
}
//单次定时器
oBtn2.onclick = function(){
sIng = setTimeout(function(){
alert('炸了');
},3000)
}
//关闭多次定时器
oBtn3.onclick = function(){
clearInterval(mUl);
}
//关闭单次定时器
oBtn4.onclick = function(){
clearTimeout(sIng);
}
</script>
</html>
10. 倒数计时案例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<h1 id="box">
3
</h1>
</body>
<script type="text/javascript">
var oBox = document.getElementById('box');
var num = 10;
setInterval(function(){
if(num ==0){
oBox.innerHTML = '嗨,您的计时已经结束了!';
return ;
}
num--;
oBox.innerHTML = num;
},1000)
</script>
</html>
11. 跑步动画
图片资源:a.jpg
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
body {
/*设置背景颜色和照片背景颜色一致*/
background: #c7c7c7;
}
img {
width: 250px;
position: absolute;
left: 0;
top: 200px;
}
</style>
</head>
<body>
<input type="button" value="走你" id="btn1" />
<input type="button" value="停下" id="btn2" />
<img src="a.jpg" id="pic" />
</body>
<script type="text/javascript">
//获取元素
var oBtn1 = document.getElementById('btn1');
var oBtn2 = document.getElementById('btn2');
var oPic = document.getElementById('pic');
//定义两个变量 留待后续用
var start = null;
var num = 0;
//定时器毫秒问题,不要低于80.
//点击事件
oBtn1.onclick = function() {
//先清除定时器,再执行定时器。避免效果叠加
//可以尝试注释此行,重复点击'走你'按钮,查看效果
clearInterval(start);
//设置定时器
start = setInterval(function() {
//判断限定移动的像素
if(num <= 1000){
num += 5;
oPic.style.left = num + 'px';
}
}, 80)
}
//关闭定时器
oBtn2.onclick = function() {
clearInterval(start);
}
</script>
</html>
12. 案例 - 获取当前时间
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body id='body'>
</body>
<script type="text/javascript">
setInterval(function(){
var date = new Date(); //new Date() 获取当前所有的时间
var year = date.getFullYear(); //获取年
var month = date.getMonth() + 1; //获取月.月份要加1
var day = date.getDate(); //获取日
var hours = date.getHours(); //获取时
var minutes = date.getMinutes(); //获取分
var second = date.getSeconds(); //获取秒
var week = date.getDay(); //获取周
var oBody = document.getElementById('body');
//拼接HTML内容
oBody.innerHTML = '<h1>'+year+'年'+month+'月'+day+'日'+hours+'时'+minutes+'分'+second+'秒周'+week+ '</h1>';
})
</script>
</html>
13. 封闭函数
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
<script type="text/javascript">
function aa(){
alert('我是封闭外面的函数')
}
aa();
//封闭函数语法 (function(){ })()
//封闭函数:不会影响别人,别人也影响不到我
//项目中由多人合作时,可以用到封闭函数,防止函数、变量的重名
(function(){
function aa(){
alert('我是封闭里面的函数')
}
aa();
})()
</script>
</html>