JavaScript

一、javaScript概述

(一)历史

1.由Netscape公司(网景公司)开发的一种脚本语言

2.Netscape公司将其命名为LiveScript,改语言面向对象、无需编译、可由浏览器直接解释运行

3.Netscape公司见LiveScript大有发展前途,而SUN公司( java)也觉得可以 利用Livescript为Java的普及做铺垫,于是两家签订协议,将LiveScript改为JavaScript.

(二)作用

JavaScript,直译式脚本语言,用来为网页添加动态功能,通过嵌入HTML来实现自身功能

脚本语言:不需要编译,直接通过解释器运行,自上而下,逐行运行

1.响应客户端鼠标和键盘事件

2.页面表单数据验证(空值判断)

3.改变页面标签样式

(三)与html、css关系

与css都是围绕html展开的,目的就是增强网页与用户交互

html 控制主结构

JavaScript控制行为(网页动态效果)

css 控制标签样式

二、基本语法 函数

引入

变量 数据类型 运算符 流程控制 循环 函数 对象 事件

javascript写在一组< script >标签中,可置于head标签或者body标签中,一般放在head标签中,同样也可以写在.js文件中,从外部导入.

<script src="js/outer.js"></script>

链接到script文件

alert("hello js");

变量 数据类型

声明变量 var关键字 变量本身没有数据类型之分 值分数据类型

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
		//声明变量   var关键字    变量本身没有数据类型之分  值分数据类型
		var a = 10;
		var b = "jim"
		//数据类型  数值型 布尔型 字符串型 undefined类型 Object类型
		    //字符串分"",'' 
		var c = 1;
		var d = 1.0;
		
		var e = true;
		var f = false;
		// alert(typeof(e));返回数值类型
		
		var g = 'asd'
		var h = "asdf"
		// string
		
		// undefined   声明了但未初始化, 返回 undefined
		var i;
		alert(i);
		//返回 undefined
		
		//Object
		var date = new Date();
		alert(date);
		
		</script>
		
	</head>
	<body>
	</body>
</html>

(一)运算符

1.算术运算符

算数运算符 + - * / % ++ –

用法与java一致

2.赋值运算符

= += -= *= /= %=

3.比较运算符

== === != > < >= <=

4.逻辑运算符

&& || |

5.条件运算符

var result = (条件表达式)?结果1:结果2

(二)控制语句

选择结构

1.if

2.if(){}else{}

3.switch

循环结构

1.for()

2.while()

3.do/while()

4…break continue

(三)函数

1.定义函数

function: 表示函数定义的关键字

functionName:表示函数名

function name(参数1,参数2,···){

}

直接传入参数,不需要写出参数的数据类型

同样不需要指出返回值;

2.调用函数

直接使用函数名进行调用

var a = 10;
var b = 5 ; 
var c = "5";
var d = "aa"
//函数
//定义函数
// function hello(){
// 	alert("hello")
// }
// hello();//调用函数
// function hello(name){
// 	alert("hello"+name);
// }
// hello("jim");
//不能重载
function Do(name,age,a){
	alert(name+" "+"who is"+" "+age+" "+a);
}
Do("jim",22,"palys");
function sum(a,b){
	alert(a+b);
}
var x = sum(a,b);
alert("x");

(三)全局函数

1.全局变量

作用与全局,可随时调用

2.局部变量

定义在函数内的变量,仅能在函数内进行调用

全局函数

全局函数: javascript 中已经定义好的函数,可以直接调用的函数
像alert();
pareInt(); 把数值(小数)转换为整型数值,把一个字符串的数字转换成整数类型
//以数字开头的字符串会将数字部分转换为整数类型参与运算,其他类型不可以
pareFloat();把数值(小数)转换为小数数值,把一个字符串的数字转换成小数类型,
//整形运算还是整形,参与运算时含有小数类型,则结果也是小数类型

var a = 10;
var b = "5a";
var c = 5.5;
var d = 20;
alert(a+parseInt(b));
alert(a+parseFloat(a));

typeof 判断数据类型函数

alert(typeof(a));

eval();可以将字符串直接当成脚本进行运算

var s = "2+3*9"
alert(eval(s));

三、内置对象 事件

(一)内置对象

1.字符串对象

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			/*
			4种内置对象
			字符串  数组  日期  Math
			*/
		   var a = 10;
		   
		   var s = "asdfghjj";// 创建一个字符串对象
		       // alert(s.length);
			   console.log(s.length);//向浏览器控制台输出日志信息,便于程序调试
			   console.log(s.indexOf("j"));//indexOf(指定查询字符)查找指定字符第一次出现的位置
			   console.log(s.charAt(2));//charAt
			   console.log(s.lastIndexOf("j"));//查找指定字符最后一次出现的位置
			   console.log(s.substring(0,4));//substring(开始位置,结束位置)前闭后开
			   console.log(s.substr(2,4));// substr(开始位置,截取长度),
		</script>
	</head>
	<body>
	</body>
</html>

2.数组对象

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			//数组
			var a = new Array();
			a[0]=1;
			a[1]=1;
			a[2]=1;
			a[3]=1;
			a[4]=1;
			console.log(a);
			var b = new Array(1,2,3,3,4);
			console.log(b);
			var  c = [1,2,3,4,5];
			console.log(c);
			console.log(c.length);
			console.log(c.join(":"));//把数组转成字符串
			console.log(c.reverse());//逆序
			
			var d = [2,1,4,12,6];
			console.log(d.sort(numberSort));//与java不同,不是按照数字大小排序
			
			// 自定义函数
			function numberSort(a,b){
				return a-b;
			}
			/*
			var e = [a,b,c,d]
			console.log(e);
			字符串类型数组要用""包裹元素
			*/
		</script>
	</head>
	<body>
	</body>
</html>

3.日期对象

与Math对象并在一起

4.Math对象


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			/*
			日期对象
			*/
		   var date = new Date();
		   console.log(date.getFullYear());
		   console.log(date.getMonth()+1);
		   console.log(date.getDay());
		   console.log(date.getDate());
		   console.log(date.getHours());
		   console.log(date.getMinutes());
		   console.log(date.getSeconds());
		   
		   console.log(Math.PI);
		</script>
	</head>
	<body>
	</body>
</html>

(二)事件

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			function fun(){
				console.log("hello")
			}
			
		</script>
	</head>
	<body>
		<!-- 
		事件时html标签中的内容
		可以操作标签产生事件
		通过事件去调用指定的函数
		 -->
		 <input type="button" value="按钮" onclick="fun()" />
		 <div onclick="fun()">单击触发</div>
		 <input type="text"value="count" onfocus="fun()" onblur="fun()"  onchange="fun()"/>
		 <div onmouseover="fun()" onmouseout="fun()">悬浮触发</div>
		 <!-- 
		 οnclick="fun()"; 鼠标左键单击事件
		 οnfοcus="fun()";输入框获取到鼠标焦点时触发
		 οnblur="fun()";输入框失去焦点时触发事件
		 οnmοuseοver="fun()";鼠标悬浮在指定标签上时触发事件
		 οnmοuseοut="fun()";鼠标从标签上移开时触发
		 οnlοad="fun()";是在网页加载完毕后触发事件
		 οnchange="fun()"当标签失去焦点,并且标签中的内容发生改变时触发
		 只要是标签就能添加
		  -->
		 
		 
	</body>
</html>

四、html DOM对象

要操作,先得到

(一)对标签对象的属性进行操作

1.document.getElementById();

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			/*
			Html DOM对象
			Document Object Model文档  对象  模型
			javaScript是一种面向对象语言,操作网页时,把网页中的么一个标签,都视为一个对象
			把这一类标签对象统称dom对象
			要想对网页中的标签进行操作,就需要获取到要操作的标签
			要操作,先得到
			document对象表示整个html网页文件,网页加载完毕后,生成document对象
			*/
		   
		   function oper(){
			   //在js中获得第一个文本框标签对象
			   var tobj1 = document.getElementById("text1");
			   //拿到第二个框
			   var tobj2 = document.getElementById("text2");
			   // 赋值
			   tobj2.value=tobj1.value;
			   tobj1.value="按钮";
			   tobj1.type="button"
		   }
		   function changebgcolor(color){
			   var bobj = document.getElementById("bid");
			   bobj.bgColor = color;
		   }
		</script>
	</head>
	<body id="bid" bgcolor="aqua">
		<input type="text" id="text1" value=""/>
		<input type="text" id="text2" value="" />
		<input type="button" value="按钮" onclick="oper()"/>
		<input type="button" value="红色" onclick="changebgcolor('red')"/>
		<input type="button" value="蓝色" onclick="changebgcolor('blue')" />
		<input type="button" value="绿色" onclick="changebgcolor('green')" />
	</body>
</html>

2.document.getElementByTagName(“”);

通过标签名找到 HTML 标签

3.document.getElementsByClassName(“p”);

通过类名找到 HTML 标签

4.document.getElementsByName(“name");

通过name找到 HTML 标签

<!-- 
通过name属性得到标签
对多选框进行操作
-->
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			function checkAll(ck){
				var arrs = document.getElementsByName("hobby");
				for(var i=0;i<arrs.length;i++){
					var val = arrs[i];
					val.checked=ck;
				}
			}
			function Fcheck(){
				var arrs = document.getElementsByName("hobby");
				for(var i=0;i<arrs.length;i++){
					var val = arrs[i];
					val.checked=!val.checked;
				}
			}
		</script>
	</head>
	<body>
		<div>
		<input type="checkbox"name="hobby"value="敲代码1"/>敲代码1
	    <input type="checkbox"name="hobby"value="敲代码2"/>敲代码2
		<input type="checkbox"name="hobby"value="敲代码3"/>敲代码3
		<input type="checkbox"name="hobby"value="敲代码4"/>敲代码4<br/>
		<input type="button" value="全选"   onclick="checkAll(true)"/>
		<input type="button" value="全不选" onclick="checkAll(false)"/>
		<input type="button" value="反选"   onclick="Fcheck()"/>
		</div>
	</body>
</html>

(二)对标签对象的HTML内容进行操作

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
		/*
		对标签体中的内容进行操作
		*/
			function oper(){
				var div1 = document.getElementById("box1");
				var div2 = document.getElementById("box2");
				div2.innerHTML = div1.innerHTML;
			}
			// // 对css属性进行操作
			// function changestyle(){
			// 	var div1 = document.getElementById("box1");
			// 	div1.style.backgroundColor = "#0ECF73";
			// 	div1.style.width = "200px";
			// 	div1.style.height = "200px";
			// }
		</script>
	</head>
	<body>
		<div id="box1" onclick="changestyle()">div</div>
		<div id="box2"></div>
		<input type="button"  value="按钮" onclick="oper()"/>
	</body>
</html>

(三)对标签对象的css属性进行操作

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
		/*
		对标签体中的内容进行操作
		*/
			function oper(){
				var div1 = document.getElementById("box1");
				var div2 = document.getElementById("box2");
				div2.innerHTML = div1.innerHTML;
			}
			// // 对css属性进行操作
			function changestyle(){
				var div1 = document.getElementById("box1");
				div1.style.backgroundColor = "#0ECF73";
				div1.style.width = "200px";
				div1.style.height = "200px";
			}
		</script>
	</head>
	<body>
		<div id="box1" onclick="changestyle()">div</div>
		<div id="box2"></div>
		<input type="button"  value="按钮" onclick="oper()"/>
	</body>
</html>

(四)补充

1.div隐藏标签

1.高度或者宽度为零;

2.display = none;

2.下拉框标签触发

//在select标签上加触发
// οnchange="fun()" 
<select class="k" id="color" onchange="chengecolor(value)">
	<option value="none" selected disabled hidden>颜色</option>
	<option value="red">红色</option>
	<option value="green">绿色</option>
</select>

3.图片加载问题

<img src="../img/1.jpg">// 可以在上级文件中调
<img src="img/1.jpg"> // 同级文件  
document.getElementByid("img").src="..img/1.jpg";
// 图片切换实际上就是改变img的src属性

4.验证表单问题

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			function checkForm(){
				var user = document.getElementById("usernameId");
				if(user.value.length==0){
					alert("请输入用户名");
					return false;
				}
				if(user.value.length>0&&user.value.length<6||user.length>10){
					alert("用户名输入有误");
					return false;
				}
				var pass = document.getElementById("passwordId");
				if(pass.value.length==0){
					alert("请输入密码");
					return false;
				}
				if(pass.value.length<6||pass.length>10){
					alert("密码输入有误");
					return false;
				}
				return true;
			}
		</script>
	</head>
	<body>
		<form action="sever.html" method="get" onsubmit="return checkForm()">
		用户名<input type="text" id="usernameId" /><br />
		密  码<input type="password" id="passwordId"  /><br />
		<input type="submit"/>
		</form>
	</body>
</html>

===========================             sever.html         ============================
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		提交成功
	</body>
</html>

五、计时

(一)setTimeout(“函数”,”时间”)未来的某时执行代码

计时器

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
		    var t;
			function startTime(){
				//t = setTimeout("oper()",3000);//指定时间后执行一次
				t = setInterval("oper()",3000);//每隔指定时间执行一次
				//alert(t);
			}
			function endTime(){
				//clearTimeout(t);//清除setTimeout;
				clearInterval(t);//清除setInterval
			}
			function oper(){
				alert();
				console.log("开始");
			}
		</script>
	</head>
	<body>
		<input type="button" value="开始" onclick="startTime()"/>
		<input type="button" value="结束" onclick="endTime()"/>
	</body>
</html>

(二)clearTimeout()取消setTimeout()

(三)setInterval(“函数”,”时间”)每隔指定时间重复调用

(四)clearInterval()取消setInterval()

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
		    var t;
			function startTime(){
				//t = setTimeout("oper()",3000);//指定时间后执行一次
				t = setInterval("oper()",3000);//每隔指定时间执行一次
				//alert(t);
			}
			function endTime(){
				//clearTimeout(t);//清除setTimeout;
				clearInterval(t);//清除setInterval
			}
			function oper(){
				alert();
				console.log("开始");
			}
		</script>
	</head>
	<body>
		<input type="button" value="开始" onclick="startTime()"/>
		<input type="button" value="结束" onclick="endTime()"/>
	</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值