JavaScript

1、概述

解释性(不用编译)脚本语言(自己无法独立使用,需要和HTML一起使用),是一种动态类型、弱类型、基于原型继承的语言,内置支持类型。

解释器称为JavaScript引擎,作为浏览器的一部分

用来给HTML网页增加动态功能,定义网页的行为


2、JavaScript组成

JavaScript包含三部分:

ECMAScript语法。

文档对象模型(DOM Document Object Model)

浏览器对象模型(BOM Browser Object Model)


3、JavaScript使用方式

在<script>标签中编写:

        可以在网页的任何地方编写

在外部JS文件中编写:

        需要使用<script src=”“></script>关联

在事件属性中编写:

<button onlick="">按钮</button>


4、变量

JS中变量都用var关键字来声明,var是variable的缩写

 注意:

var是声明关键字,num是变量名,语句以分号结尾;分号可省略。

命名:

包含字母、数字、下划线、$

不能以数字开头

变量名不能是关键字


5、基本类型

基本类型包括Number、String、Boolean、Undefined、Null五种。

 使用typeof运算符检测一个变量的类型。

使用方式:typeof(表达式)或typeof变量名

// 内部方式
//弱类型:声明变量时不指定其类型
var age = 10; //赋值10后,age就是number类型
//动态类型
age = "我正在学习JavaScript知识";  //此时age是String类型
alert(age);

alert("我是外部js文件里的内容");


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<!-- 引入外部js文件 -->
		<script src="js/demo10.js"></script>
	</head>
	<body>
		<!-- 可以出现在页面的任何位置 -->
		<!--  行内方式 -->
		<input type="button" value="测试" onclick="alert('我是单击按钮后的弹窗')"/>
	</body>
</html>

 

 


6、引用类型

对象类型:

        Object表示任何对象

        使用JSON表示法创建对象。

注意:创建数组时可不用指定长度 

//声明变量的方式
var age = 30;
var age1;
age1 = 31;
age2 = 30;
//弹窗执行
alert(age2);
var pi = 3.14;
var num2 = -30;
var name = "张三";
var name = '张三';
var isPass = true;
var names = ["aaa","bbb"];
var obj = null;
//js直接把内容显示到body中
document.writeln(typeof(age2));
document.writeln(typeof(pi));
document.writeln(typeof name);
document.writeln(typeof name2);
document.writeln(typeof isPass);
//object类型
document.writeln(typeof(names));
document.writeln(typeof(obj));
var testNum = 100;
//弹窗显示数据类型
alert(typeof(testNum));
testNum = "abc";
//弹窗返回的是String类型
alert(typeof(testNum));
//当一个变量未赋值时,它的类型及值都是undefined
var addr;
//界面上显示的是undefined
document.writeln(typeof(addr));
//界面上返回的依旧是addr
document.writeln(addr);




<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/demo11.js"></script>
	</head>
	<body>
	</body>
</html>

 

//声明JSON对象
var stu={"stuName":"张三","stuAge":18,"stuAddr":"北京市海淀区"};
//输出到body中
document.writeln("姓名:" + stu.stuName);
//输出到控制台中
//F12可显示
console.log(stu.stuAge);





<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/demo12.js"></script>
	</head>
	<body>
	</body>
</html>

//1、字面量方式
var aryName = ["张三","李四","王五"];
//2、new
var ary = new Array();
ary[0] = "黄六";
ary[1] = 100;
ary[11] = 3.14;
alert(ary[0]);





<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>数组</title>
		<script src="js/demo13.js"></script>
	</head>
	<body>
	</body>
</html>


7、算术运算符

//参数收到后是String类型
//参数1:提示信息
//参数2:可以省略,是文本框中的默认值

//文本框当中提示信息输入数字用
var num1 = prompt("请输入第一个数:",0);
var num2 = prompt("请输入第二个数:",0);

//类型转换
//将输入的String类型转换成int类型
num1 = parseInt(num1);
num2 = parseInt(num2);

var oper = prompt("请输入一个运算符");

var result;
switch (oper){
	
	case "+":
		result = num1 + num2;
		break;
	case "-":
		result = num1 - num2;
		break;
	case "*":
		result = num1 * num2;
		break;
	case "/":
		result = num1 / num2;
		break;
	}

	alert("计算结果:" + result);







<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/demo15.js"></script>
	</head>
	<body>
	</body>
</html>

 

 


8、赋值运算符


9、逻辑运算符

//定义一个方法
//此时的num1和num2不能写var
//计算出两个数的最大公约数
function com(num1,num2){
	var min = num1<num2?num1:num2;
	var result = 1;
	while(min>1){
		if(num1%min==0 && num2%min==0){
			result = min;
			break;
		}
		min--;
	}
	alert("最大公约数:" + result);
	return result;
}

//调用函数
var result = com(12,16);
alert(result);






<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/demo16.js"></script>
	</head>
	<body>
		<input  type="button" value="计算两个数的最大公约数" onclick="com(12,16)"/>
	</body>
</html>


10、关系运算符

var num1 = 123;
var num2 = "123";

//只比较值,不判断类型
var result1 = num1 == num2;   //true

//当值、类型都相等的时候,才为true
var result2 = num1===num2; //false

document.writeln(result1);
document.writeln(result2);







<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>==和===的区别</title>
		<script src="js/demo14.js"></script>
	</head>
	<body>
	</body>
</html>


11、三目运算符

语法:布尔表达式?结果1:结果2;

 


12、分支结构-if

和Java语言使用基本一致

基本语法

 注意:

        条件是一个布尔值

        条件是一个变量,如果值为0、null、undefined、NaN表示false,否则为true

        如果变量没有定义,则出现异常


13、分支结构-switch

基本语法:


14、循环结构

for循环:

 while循环:

do while循环:

break和continue:

        break用于结束循环

        continue用于结束本次循环


 15、函数

概念:

        封装特定任务功能的代码块。

定义:

        JavaScript函数通过function关键词进行定义

 调用:

        当事件发生时。

        代码调用、自调用。


16、弹窗函数

alert:

        只能点击确定按钮的弹窗

confirm:

        可以点击确定或者取消的弹窗

prompt:

        可以输入文本内容的弹窗

        第一个参数是提示信息,第二个参数是用户输入的默认值(可不写)

        点击确定反回用户输入的内容;点击取消或者关闭,返回null。

//删除id 写一个带参数的方法
function del(id){
    //confirm 可以点击确定或者取消的弹窗
	var result = confirm("确定要删除" + id + "吗?");
	if(result == true){
		alert("删除成功!");
	}
}





<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/demo17.js"></script>
	</head>
	<body>
        //onclick 事件会在元素被点击时发生  当按钮被点击时执行Javascript代码
		<input  type="button" value="删除"  onclick="del(1)" />
	</body>
</html>

 


17、系统函数

parseInt():

        解析一个字符串并返回一个整数。

parseFloat():

        解析一个字符串并返回一个浮点数。

isNaN():

        检查某个值是否是数字。是数字返回false  不是数字返回true

//isNaN能够判断一个值是否为数值
//false 是数值 true不是数值


var str1 = "123a";
var str2 = "23";
// var result = str-str1;
//str1不是数字,所以返回true
//str2是数字,所以返回false
var result = isNaN(str2);
alert(result);

function check(){
	//获取输入的昵称
	//先获取到昵称的文本框,然后获取文本框里的值
	//var name = document.getElementsByName("userName")(获取到昵称的文本框)[0].value;(获取值)
	var name = document.getElementsByName("UserName")[0].value;
	//判断名字中是否包含数字
	var result = false;   //假设没有数字
	//把每一个值拿出来循环控制需要循环几次才能拿出来
	for(var i=0;i<name.length;i++){
		var str = name.substring(i,i+1);
		
		if(isNaN(str) == false){
			result = true;
			break;
		}
	}
	if(result == true){
		alert("数据不合法,包含了数字");
	}
}






<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>isNaN应用</title>
		<script src="js/demo19.js"></script>
	</head>
	<body>
		<p>昵称:<input type="text" name="UserName"/></p>
		<input  type="button" value="保存"  onclick="check()"/>
	</body>
</html>





18、事件

#box{
	width: 500px;
	height: 500px;
	background-color: deeppink;
}


function change(){
	alert("键按下时");
}

function change2(){
	alert("键自动抬起");
}

function change3(){
	//event浏览器封装的对象,存储了事件的信息
	//13-回车  32-空格
	if(event.keyCode == 13){
		alert("执行了按钮功能");
	}
}


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>事件</title>
		<link rel="stylesheet" type="text/css" href="css/demo20.css"/>
		<script src="js/demo20.js"></script>
	</head>
	<body>
		<!-- onkeyup是任意键 -->
		<input  type="button" value="按钮" onkeyup="change3()"  />
		<!-- onkeydown是任意键都可以运行 -->
		<div id="box" onkeydown="change()">
			
		</div>
	</body>
</html>

function init(){
	alert("页面初始化完成");
}

//没有名字的函数---匿名函数
//使用场景,在某个事件中,直接声明、调用一个函数

window.onload = function(){
	init();
}




<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/demo21.js"></script>
	</head>
	<body>
		sdfsdfsdfsdf
	</body>
</html>


19、正则表达式

概念:

        正则表达式是描述字符模式的对象

        是一个定义规则的表达式,检验我们的字符串符不符合这个规则,用于简化业务逻辑代码

作用:

        用于对字符串模式匹配及检索替换

        是对字符串执行模式匹配的强大工具

语法:

        var patt = new RegExp(pattern,modifiers);

        var patt = /pattern/modifiers;

修饰符:

 

 

 

 

#emailSpan{
	color:red;
}





function check(){
	//获取
	var code = document.getElementsByName("code")[0].value;
	//定义正则表达式
	var regCode =/[1-9][0-9]{5}/g;
	var result = regCode.test(code);
	
	if(result){
		alert("邮编符合规则");
	}else{
		alert("邮编格式不正确");
	}
}

function checkEmail(){
	//获取值
	var email = document.getElementsByName("email")[0].value;
	var span = document.getElementById("emailSpan");
	//编写邮箱的正则表达式
	//只要是循环就要拿\定义一下
	var emailReg = /^\w{1,}@\w{1,}(\.[A-z]{2,3}){1,2}$/g;
	var result = emailReg.test(email);
	if(result){
		//改变样式
		span.style.color="green";
		span.innerHTML="√";
	}else{
		span.innerHTML="邮箱格式不正确";
	}
}






<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/demo22.js"></script>
		<link rel="stylesheet" type="text/css" href="css/demo22.css"/>
	</head>
	<body>
		<!-- 定义邮编 -->
		<p>邮编:<input type="text" name="code"/></p>
		<!-- onblur --- 失去焦点,光标 -->
		<!-- 定义邮箱 -->
		<p>邮箱:<input type="text" name="email" onblur="checkEmail()"/><span id="emailSpan"></span></p>
		<!-- 定义验证 -->
		<input type="button" value="验证" onclick="check()"/>
	</body>
</html>

 

 


20、DOM

概述:

        通过HTML DOM ,可访问JavaScript HTML文档的所有元素。

        当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。


21、查找HTML元素

        获取网页元素的三种方法:

        

        getElementsByName     通过标签的name来获取标签

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>js获取html标签方式</title>
	<script type="text/javascript">
		
		
		function getByName(){
			//通过标签的name来获取标签
			var ary = document.getElementsByName("hobby");
			//遍历获取得到的数组
			for(var i=0;i<ary.length;i++){
				//获取选中的复选框里的值
				//if中ary[i].checked == true代表着这样在页面中就是被选中了
				if(ary[i].checked == true){
					//表单标签获取值/赋值的属性是value
					alert(ary[i].value);
				}
			}
		}
		
		
		function getById(){
			//通过ID值获取标签
			var div = document.getElementById("box");
			//非表单标签的值
			//innnerHTML
			alert(div.innerText);
			
			//innerText仅输入文本
			//innnerHTML输入文本和html一共的内容
		}
		
		
		function getByTag(){
			//通过标签名获取标签
			var ary = document.getElementsByTagName("a");
			for(var i=0; i<ary.length; i++){
				//获取文本名字
				// alert(ary[i].innerText);
				//获取标签的某个属性值
				//标签对象.getAttribute("属性名")
				
				//获取a标签里的href
				alert(ary[i].getAttribute("href"));
			}
		}
		
		
		function gatByClasName(){
			//通过class值来获取标签
			var ary = document.getElementsByClassName("divclass");
			for(var i=0; i<ary.length; i++){
				alert(ary[i].innerText);
			}
		}
		
		
		
	</script>
	</head>
	<body>
		
		<p>
			爱好:
			<input  type="checkbox" name="hobby" value="编程" />编程
			<input  type="checkbox" name="hobby" value="跑步" />跑步
			<input  type="checkbox" name="hobby" value="打游戏" />打游戏
			<input  type="checkbox" name="hobby" value="睡觉" />睡觉
		</p>
		
		<p>
			<div id="box">
				boxboxbox
			</div>
		</p>
		
		<p>
			<a href="http://www.baidu.com">百度</a>
			<a href="http://www.sina.com.cn">新浪</a>
		</p>
		
		<div id="" class="divclass">
			111111111111111111111111111111111
		</div>
		
		<div id="" class="divclass">
			222222222222222222222222222222222
		</div>
		
		<div id="" class="divclass2">
			3333333333333333333333333333333333
		</div>
		
		<p>
			<input type="button" value="通过name获取标签" onclick="getByName()" />
			<input type="button" value="通过id获取标签" onclick="getById()" />
			<input type="button" value="通过 标签名 获取标签" onclick="getByTag()" />
			<input type="button" value="通过class获取标签" onclick="gatByClasName()" />
			
		</p>
		
		
		
	</body>
</html>

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>改变标签的值、样式</title>
		
		<!-- 设置背景 -->
		<style type="text/css">
			.self{
				width: 600px;
				height: 200px;
				border: 1px solid black;
				background-color: greenyellow;
			}
		</style>
		
		
		
		<script type="text/javascript">
			function setValue(){
				var div=document.getElementById("box");
				//非表单标签的值有两种设置方式
				//方式1:innerText---赋值内容以文本方式显示
				div.innerText="<a href='http://www.baidu.com'>王家宝,大帅哥!</a>";
				//方式2:innerHTML---赋值内容被浏览器解析
				//div.innerHTML="<a href='http://www.baidu.com'>王家宝,大帅哥!</a>"
			}
			
			
			//页面加载之后自动执行
			window.onload=function(){
				//获取标签
				var userName=document.getElementsByName("userName")[0];
				userName.value="用户昵称";
			}
			
			
			function changeHref(){
				//改变属性及值
				var a=document.getElementsByTagName("a")[0];
				//改变超链接文本
				a.innerText="搜狐";
				//改变属性值
				// (要设定的属性名,要设定的属性值)
				a.setAttribute("href","http://www.sohu.com");
			}
			
			
			function changeStyle(){
				var div1=document.getElementsByClassName("divclass")[0];
				//改变样式1
				//在js中-是减法计算,样式的属性中把-去掉,-后单词首字母大写
				//语法:标签对象.style.属性名="属性值"
				// div1.style.backgroundColor="pink";
				// div1.style.width="500px";
				// div1.style.height="300px";
				//方式2 标签对象.className="类选择器名"
				div1.className="self";
			}
		</script>
	</head>
	<body>
		
		<p>昵称:<input type="text" name="userName"/></p>
		
		<p>
			爱好:
			<input type="checkbox" name="hobby" value="codding" />编程
			<input type="checkbox" name="hobby" value="run" />跑步
			<input type="checkbox" name="hobby" value="game" />打游戏
			<input type="checkbox" name="hobby" value="sleep" />睡觉
		</p>
		<p>
			<div id="box">
				boxboxbox
			</div>
		</p>
		<p>
			<a href="http://www.baidu.com">百度</a>
			<a href="http://www.sina.com.cn">新浪</a>
		</p>
		<div id="" class="divclass">
			11111111111111111111111
		</div>
		<div id="" class="divclass">
			22222222222222222222222
		</div>
		<div id="" class="divclass2">
			33333333333333333333333333333
		</div>
		<p>
			<input type="button" value="改变div的值" onclick="setValue()" />
			<input type="button" value="通过超链接" onclick="changeHref()" />
			<input type="button" value="改变标签的样式" onclick="changeStyle()" />
			<input type="button" value="通过class获取标签" onclick="getByClasName()" />
		</p>
	</body>
</html>

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>动态添加事件</title>
		<style type="text/css">
			
			/* div开始的样子 */
			.divClass{
				width: 500px;
				height: 500px;
				background-color: palegreen;
			}

			/* 碰到div之后的样子 */
			.changeClass{
				width: 600px;
				height: 600px;
				border-radius: 50%;
				background-color: purple;
			}
			
			/* 再碰一下之后的样子 */
			.outClass{
				width: 500px;
				height: 600px;
				border-radius: 50%;
				background-color: yellow;
			}
			/* 二者之间来回变换 */
			
		</style>
		<script type="text/javascript">
			
			window.onload=function(){
				//js加载 解析顺序
				var div = document.getElementsByClassName("divClass")[0];
				//动态加载事件
				//不知道是什么方法的时候一定要写匿名方法
				//在里边用this去调用写好的css
				div.onmouseover = function(){
					//改变其样式
					//必须用this
					this.className = "changeClass";
				}
				div.onmouseout = function(){
					
					this.className="outClass";
				}
			}
		</script>
	</head>
	<body>
		<div id="" class="divClass">
			
		</div>
	</body>
</html>


22、修改HTML内容

document.write()方法:

        可用于直接向HTML输出流写内容

innerHTML属性:

        获取或设置HTML内容

        HTML标签会被解析

----------------------->innnerHTML      输入文本和html一共的内容

innerText属性:

        获取或设置HTML内容

        HTML标签会作为普通文本

------------------------>innerText    仅输入文本

        


23、修改HTML属性

对象.attribute

        获取或设置DOM对象的属性

使用方式:

        getAttribute("att"),获取属性值

        setAttribute("att","value"),设置属性值


24、改变CSS

获取:

        getComputedStyle()

        currentStyle

设置:

        对象.style.property=新样式;

        将property替换成真实的css属性名


25、设置DOM事件

通过DOM对象设置事件属性


26、EventListener

addEventListener()方法:

向指定元素添加事件

不会覆盖已存在的事件

 remoeEventListener()方法:

移出事件

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		
		<style type="text/css">

			.divClass{
				width: 500px;
				height: 500px;
				background-color: palegreen;
			}
			
			.changeClass{
				width: 600px;
				height: 600px;
				border-radius: 50%;
				background-color: purple;
			}
			
			.dbClass{
				width: 300px;
				height: 300px;
				border: 10px solid darkblue;
			}
			
		</style>
		
		<script type="text/javascript">
			
			function addOver(){
				//获取标签
				var div = document.getElementsByClassName("divClass")[0];
				//添加事件---匿名函数
				div.addEventListener("mouseover",function(){
					this.className = "changeClass";
				});
			}
			
			function changeStyle(){
				var div = document.getElementsByClassName("divClass")[0];
				div.className= "dbClass";
			}
			
			//将上边的方法给下边
			
			function addDb(){
				var div = document.getElementsByClassName("divClass")[0];
				//添加事件---调用普通函数
				div.addEventListener("dblclick",changeStyle);
			}
			
			
			function delDb(){
				//获取标签
				var div = document.getElementsByClassName("divClass")[0];
				//不能删除以匿名函数添加的事件
				//双击时变化调用上边函数
				div.removeEventListener("dblclick",changeStyle);
			}
			
		</script>
		
		
		
		
		
	</head>
	<body>
		<p>
			
			<input  type="button" value="添加鼠标悬停事件" onclick="addOver()"/>
			<input  type="button" value="添加鼠标双击事件" onclick="addDb()"/>
			<input  type="button" value="删除鼠标双击事件" onclick="delDb()"/>
			
		</p>
		
		<div id="" class="divClass">
			
		</div>
		
	</body>
</html>


27、新建、删除元素

新建元素:

        document.createElement("标签");

        追加:appendChild();

        添加:insertBefore();

删除元素:

        删除子元素:removeChild();

        删除元素:remove();

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>动态编辑元素</title>
		<style type="text/css">
			.box{
				width: 600px;
				height: 400px;
				border: 2px solid black;
				text-align: center;
			}
			
			.box ul{
				list-style-type: none;
				height: 300px;
				background-color: #98FB98;
			}
			
			.box ul li:hover{
				background-color: deeppink;
			}
		</style>
		
		<script type="text/javascript">
			function createUl(){
				//获取div
				var div = document.getElementById("box");
				
				//创建无序列表标签  ul-li
				//1  创建ul
				var ul = document.createElement("ul");
				
				//2 把ul添加到div中
				//父容器 .appendChild(创建的标签);
				div.appendChild(ul);
				
				//3  创建li
				var liTitle = document.createElement("li");
				liTitle.innerText="静夜思";
				 //添加到ul中
				 ul.appendChild(liTitle);
				 
				 var li1 = document.createElement("li");
				 li1.innerText="床前明月光";
				 ul.appendChild(li1);
				 
				 var li2 = document.createElement("li");
				 li2.innerText="举头望明月";
				 ul.appendChild(li2);
				 
				 var li3 = document.createElement("li");
				 li3.innerText="疑是地上霜";
				 //父容器 .insertBefore(新建标签,旧标签)
				 ul.insertBefore(li3,li2);
				 
				 var li4 = document.createElement("li");
				 li4.innerText = "低头思故乡";
				 ul.appendChild(li4);
			}
			
			
				function deleteUl(){
				var result=confirm("确定要删除子标签吗?");
				if(result==true){
				//删除标签---删除子标签
				var ul=document.getElementsByTagName("ul")[0];
				//ul.removeChild();
				ul.remove();
			}
		}
			
		</script>
		
	</head>
	<body>
		
		<div id="box" class="box">
					
		</div>
		
		<input type="button" value="创建列表标签" onclick="createUl()" />
		<input type="button" value="删除列表标签" onclick="deleteUl()" />
	</body>
</html>

高端操作

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>动态创建表格</title>
		<style type="text/css">
			
			table{
				text-align: center;
				border-collapse: collapse;
				width: 800px;
			}
			
			
			td{
				border: 1px solid black;
			}
			
			
			table tr:hover{
				background-color: deeppink;
			}
			
			
		</style>
		
		<script type="text/javascript">
			function createTable(){
				var rows=document.getElementsByName("row")[0].value;
				var cols=document.getElementsByName("col")[0].value;
				
				//创建表格
				var table=document.createElement("table");
				//添加到body中
				document.body.appendChild(table);
				//外层循环控制行数
				for(var i=1; i<=rows; i++){
					//创建tr
					var tr=document.createElement("tr");
					
					if(i%2==0){
						tr.style.backgroundColor="gainsboro";
					}else{
						tr.style.backgroundColor="gray";
					}
					table.appendChild(tr);
					//内层循环控控制每行里的列数
					for(var j=1; j<=cols; j++){
						//创建td
						var td=document.createElement("td");
						tr.appendChild(td);
						//单元格内容
						td.innerText=(i+"-"+j);
					}
					//再创建一列:操作列
					var tdLast=document.createElement("td");
					tr.appendChild(tdLast);
					//创建删除按钮
					var btnDel=document.createElement("input");
					btnDel.type="button";
					btnDel.value="删除";
					//动态添加事件
					btnDel.onclick=function(){
						var result=confirm("确定要删除此行数据吗?");
						if(result){
							//this 单击的那个按钮
							//通过层级关系找标签
							this.parentNode.parentNode.remove();
							
						}
					}
					tdLast.appendChild(btnDel);
				}
			}
		</script>
	</head>
	<body>
		行数:<input type="text" value="10" name="row" />
		列数:<input type="text" value="8" name="col" />
		<input type="button" value="创建表格" onclick="createTable()" />
		<hr />
		
	</body>
</html>


28、BOM

概述:

        浏览器对象模型(Browser Object Model)使 JavaScript 有能力与浏览器"对话"。

        现代浏览器实现了和JavaScript交互性方面的相同方法和属性,因此常被认为是BOM的方法         和属性


29、window对象 

概述:

        所有浏览器都支持window对象,它表示浏览器窗口

        JavaScript全局对象、函数以及变量均自动成为window对象的成员。

属性:

        window.innerHeight:内部高度,包括滚动条

        window.innerWidth:内部宽度,包括滚动条。

方法:

        open():打开新的窗口

        close():关闭窗口

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			*{
				padding: 0;
				margin: 0;
			}
			.box{
				height: 3000px;
				width: 1000px;
				margin: 0 auto;
				background-color: pink;
			}
			#ad{
				width: 100px;
				height: 150px;
				background-color: palegreen;
				position: fixed;
				top: 30px;
				right: 20px;
			}
			#closeDiv{
				margin-left: 70px;
				width: 30px;
				height: 30px;
				line-height: 30px;
				text-align: center;
				background-color: gainsboro;
			}
		</style>
		
		<script type="text/javascript">
			function getMeg(){
				alert("宽:"+window.innerWidth+",高:"+window.innerHeight+
				"可用宽度:"+window.screen.availWidth +",可用高度:"+window.screen.availHeight);
			}
			function openDemo6(){
				window.open("demo6.html");
			}
			function myClose(){
				window.close();
			}
			window.onload=function(){
				var closeDiv=document.getElementById("closeDiv");
				closeDiv.onclick=function(){
					this.parentNode.style.display="none";
					//this.parentNode.remove();
				}
			}
		</script>
		
	</head>
	<body>
		<div id="" class="box">
			<input type="button" value="获取浏览器" onclick="getMeg()" />
			<input type="button" value="打开demo6" onclick="openDemo6()" />
			<input type="button" value="关闭当前窗口" onclick="myClose()" />
		</div>
		<div id="ad">
			<div id="closeDiv">
				x
			</div>
		</div>
	</body>
</html>


30、screen对象

表示当前屏幕对象。

属性:

        screen.availWidth:可用的屏幕宽度

        screen.availHeight:可用的屏幕高度


31、location对象

概述:

        location 对象用于获得当前页面的地址(URL),并把浏览器重定向到新的页面。

属性:

 方法:

        reload()重新加载页面

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			function jump(){
				var meg=prompt("请输入你要跳转的网站");
				var urls="";
				if(meg=="百度"){
					urls="http://www.baidu.com";
				}else if(meg=="新浪"){
					urls="http://www.sina.com.cn"
				}else if(meg=="163"){
					urls="http://www.163.com";
				}else {
					urls="http://www.sohu.com";
				}
				location.href=urls;
					
			}
			function getMeg(){
				var urls=location.href;
				var port=location.port;
				var pro=location.protocol;
				var name=location.hostname;
				alert("网址:"+urls+","+
				"端口:"+port+",协议:"+pro+",主机名:"+name)
			}
			function myReadLoad(){
				location.reload();
			}
		</script>
	</head>
	<body>
		<input type="button" value="页面跳转" onclick="jump()" />
		<input type="button" value="获取当前页面location信息" onclick="getMeg()" />
		<input type="button" value="刷新页面" onclick="myReadLoad()" />
	</body>
</html>


32、history对象

概述:

        包含用户在浏览器窗口中访问过的URL

属性:

        length:返回浏览器历史列表中的URL数量

方法:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			function next(){
				window.location.href="page2.html";
			}
		</script>
	</head>
	<body>
		页面1
		<hr />
		<input type="button" value="下一页" onclick="next()" />
	</body>
</html>



<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			function next(){
				window.location.href="page3.html";
			}
			function pre(){
				history.forward();
			}
			function bac(){
				history.back();
			}
		</script>
	</head>
	<body>
		页面2
		<hr />
		<input type="button" value="下一页" onclick="next()" />
		<input type="button" value="前进" onclick="pre()" />
		<input type="button" value="后退" onclick="bac()" />
	</body>
</html>



<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			function bac(){
				//history.back();
				history.go(-2);
			}
		</script>
	</head>
	<body>
		页面3
		<hr />
		<input type="button" value="后退" onclick="bac()" />
	</body>
</html>

 

 

 


33、navigator对象

概述:

        navigator对象包含有关浏览器的信息

属性:

        

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			function getMet(){
				alert(navigator.appName+","+navigator.appVersion)
			}
		</script>
	</head>
	<body>
		<input type="button" value="获取浏览器信息" onclick="getMet()" />
	</body>
</html>


34、JavaScript定时器

定时器函数:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>时间</title>
		<style type="text/css">
			*{
				padding: 0;
				margin: 0;
			}
			
			#time{
				width: 600px;
				height: 200px;
				line-height: 200px;
				text-align: center;
				background-color: #98FB98;
				margin: 0 auto;
				font-size: 40px;
			}
			
		</style>
		<script type="text/javascript">
			var myTime;
			var myTimeOut;
			
			window.onload = function(){
				getTime();
				//参数1: 函数
				//参数2: 间隔的时间 ,毫秒为单位
				//每间隔参数2时间就执行一次参数1的函数
				myTime = setInterval("getTime()" ,1000);
				//过了指定时间后,执行下一次函数
				//myTimeOut = setTimeout("getTime()",1000);
				
			}
			
			function getTime(){
				//获取标签
				var div = document.querySelector("#time");
				//创建时间对象
				var dt = new Date();
				var year = dt.getFullYear(); //获取四位的年份
				var month = dt.getMonth()+1;  //月份
				 
				 if(month <= 9){
					 month = "0" + month;
				 }
				 
				 var date1 = dt.getDate();  //日期
				 var hour = dt.getHours();  //小时
				 var minute = dt.getMinutes();  //分钟
				 var seconds = dt.getSeconds();  //秒
				 var week = dt.getDay();
				 var strWeek = doWeek(week);
				 // div.innerText = year + "-" + month + "-" + datel + " " + hour + ":" + minute + ":" + seconds + "  " + strWeek;
				 div.innerText=year+"-"+month+"-"+date1+" "+hour+":"+minute+":"+seconds+"   "+strWeek;
			}
			
			
			function doWeek(day){
				var strWeek = "";
					switch (day){
								case 1:
									strWeek="星期一";
									break;
								case 2:
									strWeek="星期二";
									break;
								case 3:
									strWeek="星期三";
									break;
								case 4:
									strWeek="星期四";
									break;
								case 5:
									strWeek="星期五";
									break;
								case 6:
									strWeek="星期六";
									break;
								case 7:
									strWeek="星期日";
									break;
								default:
									break;
							}
							return strWeek;
			}
			
			function stopClock(){
				clearInterval(myTime);
				//clearTimeout(myTimeout);
			}
			
		</script>
	</head>
	<body>
		<div id="time">
			
		</div>
		
		<input type="button" value="时钟停止" onclick="stopClock()" />
	</body>
</html>


 35、总结

JavaScript时定义网页行为的一门脚本语言

JavaScript组成:

        ECMAScript语法

        DOM

        BOM

语法:

        变量

        数据类型

        运算符

        函数

        事件

DOM

BOM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值