js巩固

1.js简介

// 写入HTML输出
document.write("<h1>aaa</h1>")  //不推荐使用这种方法
//对事件作出反应      alert函数 
<button type="button" onclick="alert('welcome!')">点击这里</button>
///改变HTML内容
x=document.getElementById('demo');  /*获取元素*/
x.innerHTML="Hello JavaScript!";  /*改变元素显示*/

//改变图片

<!DOCTYPE html>
<html>
<head>
	<title>更换灯泡</title>
	<meta charset="utf-8">
</head>
<body>
<img id="demo" src="http://www.w3school.com.cn/i/eg_bulboff.gif">
<button type="button" onclick="changecolor()" value="switch">开关</button>
<script type="text/javascript">
	function changecolor() {
		x=document.getElementById('demo');
		if (x.src.match("bulboff")) {
			x.src="http://www.w3school.com.cn/i/eg_bulbon.gif";
		}
		else{
			x.src="http://www.w3school.com.cn/i/eg_bulboff.gif";
		}
	}
</script>
</body>
</html>

//改变样式
x=document.getElementById('demo'); /*获取元素*/
x.style.color="red"; /*改变元素样式*/

//验证输入

<!DOCTYPE html>
<html>
<head>
	<title>数字判断</title>
	<meta charset="utf-8">
</head>
<body>
<input type="text" id="demo">
<script type="text/javascript">
function aaa() {
	var x=document.getElementById('demo').value;
	if(x==""||isNaN(x)){  /*判断是否为空,或是否是非数字*/
		alert("不能为空且只能输入数字");
	}
}

</script>
<button type="button" onclick="aaa()">确定</button>
</body>
</html>

// 在html5中<script>已经无需+type="text/JavaScript"


// 通常的做法是外部js放在head中
<script src="myScript.js"><script>
// 内部js放在页面底部。

// js对大小写敏感


//能通过反斜杠\对字符串这行
document.write("Hello \
 World!")


//单行注释,/**/多行注释

//定义变量
var x=2; //这是数字
var x="2"; //这是字符串
var name="KF",age=18,job="CEO";  /*一语句定义多变量*/
var name;  /*相当于name=undefined*/
var x=y+2;  /*定义算法*/

//数组1
var cars=new Array();
cars[0]="ag";
cars[1]="b";
//数组2
var cars=["a","b","c"];
//js对象
var person{firstname:"jc",lastname:"h",id:123};
document.write(person.firstname); //引用,得到jc
document.write(person[firstname]); //引用,得到jc
//undefined表示变量不含有值,通过cars=null将变量cars的值设置为空
// 声明类型
var carname=new String;//字符串类型
var x=new Number; //整型
var y=new Boolean; //布尔类型
var cars=new Array; //数组类型
var person=new Object; //对象类型

// js函数(在script)
function funName(arg1,arg2){
 alert(arg1);
 return arg2;  //返回指定值,如果直接 return; 表示退出函数
}
var myVar=funName("a","b");   //这样myVar="b";

//js比较
greeting=(visitor=="a")?"b":"c";
//判断visitor是否等于"a",如果为真取b,否则取C、

//js Switch
switch(n)
{
case 1:
  执行代码块 1
  break;
case 2:
  执行代码块 2
  break;
default:
  n 与 case 1 和 case 2 不同时执行的代码
}

// 循环continue
var x="";
for (var i = 0; i < 10; i++) {
 if (i==3) {coninue;}
 x=x+i+"<br/>";
}
document.getElementById('demo').innerHTML=x;
//如果i小于10,i+1。但i=3时,continue会直接调到重新循环 ,不会执行x=x+i+"<br/>",也就是显示时不会有数字3。

//break不仅能用在循环和switch中,还能用于跳出javascript块。
list:{  /*不懂这个list:{}*/
 ...
 break list;
 ...  //因为break了,所以后面的代码不会执行
}

// js错误

<!DOCTYPE html>
<html>
<head>
	<title>JS错误</title>
	<meta charset="utf-8">
</head>
<body>
<h1>这将测试输入值是否满足我们的规定</h1>
<p>请输入5~9之间的数字:</p>
<input type="text" name="num" id="input" />
<button type="button" onclick="testnum()">测试输入值</button>
<p id="mistake"></p>
<script type="text/javascript">
	function testnum() {
		try{
			x=document.getElementById("input").value;
			if (x=="") {throw "不能为空";}
			else if (isNaN(x)) {throw "必须是数字";}
			else if (x<5) {throw "输入值太小";}
			else if (x>9) {throw "输入值太大";}
			else{throw "你终于输入正确了";}

		}
		catch(err){
			document.getElementById('mistake').innerHTML="错误:"+err;
		}
	}
</script>
</body>
</html>

2.HTML DOM

var x=document.getElementById("main");

var y=x.getElementByTagName("p");
y[0].innerHTML="00"; /*代替原有p元素下的内容*/
document.write(y[0].innerHTML) /*新开一行取y的值*/

//HTML DOM 修改htnl
Date()  /*获取时间*/
document.getElementById('id').innerHTML="需要修改内容";  /*改变内容*/
document.getElementById('img').scr="/i/htc.jpg"; /*改变属性值*/
document.getElementById('P1').style.color="blue"; /*改变样式属性值*/
document.getElementById('p1').style.visibilit="bisible";  /*设置可见*/


//HTML DOM事件
onclick事件  //还有onload事件(打开页面启动),onunload事件(有效但关闭网页时,alert已经被关闭),onmouseover事件,onmouseout事件,onmousedown事件,onmouseup事件,onfocus事件。
 <h1 onclick="changetext(this)">请点击文本</h1>   //*直接分配属性*/
 //使用html dom分配属性,id为mybutton的onclick属性被修改
 document.getElementById('mybutton').onclick.function(){displayDate()};  

<!DOCTYPE html>
<html>
<head>
	<title>测试html_dom事件</title>
	<meta charset="utf-8">
	<style type="text/css">
		div.test{
			background-color: purple;
			color: white;
			width: 3em;
			font-size: 24px;
			font-weight: bold;
			margin:0px;
			border: 1px solid red;
		}
		input{
			margin:2px auto;
			border: 1px solid red;
		}
	</style>
</head>
<body onload="welcome()">
	<div class="test" onmouseover="onover(this)" onmouseout="onout(this)" onmousedown="ondown(this)" onmouseup="onup(this)">HuangJC</div>
	<div><input type="text" name="yourname" onfocus="changeyellow(this)" onfocusout="changenull(this)" /></div>
	<script type="text/javascript">
		function welcome(argument) {
			alert("welcome to my web!")
		}
		function byebye(argument) {
			alert("byebye");
		}
		function onover(argument) {
			argument.innerHTML="就是帅";
		}
		function onout(argument) {
			argument.innerHTML="HuangJC";
		}
		function ondown(argument) {
			argument.style.backgroundColor="red";  //注意:竟然不是background-color.
		}
		function onup(argument) {
			argument.style.backgroundColor="purple";  //注意:竟然不是background-color.
		}
		function changeyellow(argument) {
			argument.style.backgroundColor="yellow";
		}
		function changenull(argument) {
			argument.style.backgroundColor="white";
		}
	</script>

</body>
</html>

//HTML DOM节点(就是用javascript的方式创建div,段落等)
var para=document.createElement("p");  /*创建段落元素p*/
var node=document.createTextNode("这是字符串。");  /*创建文字节点*/
para.appendChild(node);  /*向段落元素p追加文本节点,就是将文本放入P中*/

/*删除html元素,需要先获取该元素的父元素*/
var parent=document.getElementById('div1');
var child=document.getElementById('p1');
parent.removeChild(child);
/*通常做法:(这种做法不需要知道父元素ID)*/
var child=document.getElementById('p1');
child.parentNode.removeChild(child);

3. JS对象

var x=message.length;  /*获取message对象属性*/

var x=message.toUpperCase(); /*获取message字符串方法*/
/*创建JS对象方法1*/
person=new Object();
person.name="KF";
/*创建JS对象方法2*/
person={name:"KF",age:18};
/*创建JS对象方法3,使用对象构造器*/
function person(name,age) {
 this.name=name;
 this.age=age;
 this.changename=function changename(na) {  /*添加方法*/
  this.name=na;
 }

}
/*利用对象创建实例*/
var myFather=new person('HJF',19)
var myMother=new person('CXM',14)
/*循环获取实例中的属性值*/
for(x in person){}

4.JS数字


所有数字都存储为8字节64位,浮点型。
var y=0377  /*0开头是八进制*/
var z=0xff   /*0x开头是16进制*/
/*JS数字属性*/
MAX_VALUE   /*最大的数*/
MIN_VALUE   /*最小的数*/
NaN   /*非数字值*/
NEGATIVE_INFINITY  /*负无穷大*/
NPOSITIVE_INFINITY  /*正无穷大*/
if(test.constructor==Array)   /*判断数字类型*/
prototype  /*是您有能力向对象添加属性和方法*/
/*JS数字方法*/
toString()   /*把数字变成字符串,使用指定的基数*/

5.JS字符串方法

+KF.age.fontcolor("red")+  /*KF.age是一个对象中的属性,显示时时该属性值变成红色*/
.fontsize(16)  /*字符大小*/
.big()  /*变大*/
.small() /*变小*/
.bold()   /*加粗*/
.italics()  /*倾斜*/
.fixed()   /*固定,案例中只是字母变细了*/
.strike()   /*罢工,就是字符串中间又横杠*/
.toUpperCase()  /*全大写*/
.toLowerCase()  /*全小写*/
.sub()  /*靠下图标*/
.sup()   /*靠上图标*/
.link("www.zhilaiwu.com")  /*链接*/
.index("a")   /*指定a首次出现的位置,从左第0位开始*/
.match("hjc")  /*匹配是否包含“hjc”,是返回"hjc",否返回null*/
str.replace(/abc/,"hjc")  /*用"hjc"代替str中的“abc”

6.JS日期

Date() /*可直接返回日期,包括年月日时分秒和时区*/

getTime()  /*获取从1997年1月1日到现在的 毫秒 数 */
setFullYear(year,month,day)   /*用于设置年份。年必填,month取值区间0~11,day取值区间1-31,时分秒去现在的*/
toUTCString()  /*将获取的时间变成字符串*/

today=new Date()
today.getDay()  /*返回星期几,是数字*/
today.getHours()  /*获取时钟*/
today.getMinutes() /*获取分钟*/
today.getSeconds()  /*获取秒钟*/

案例:显示星期和实时时间

<!DOCTYPE html>
<html>
<head>
	<title>获取星期几和实时时间</title>
	<meta charset="utf-8">
</head>
<body>
	<h1>点击按钮会展示星期和实时时间</h1>
	<button type="button" onclick="showdate()">出来吧!</button>
	<p id="p1"></p>
<script type="text/javascript">
	function showdate() {
		var d=new Date()

		var w=d.getDay()
		
		var weekend=new Array(7)
		weekend[0]="星期日"
		weekend[1]="星期一"
		weekend[2]="星期二"
		weekend[3]="星期三"
		weekend[4]="星期四"
		weekend[5]="星期五"
		weekend[6]="星期六"

		var h=d.getHours()
		var m=d.getMinutes()
		var s=d.getSeconds()

		m=checkTime(m)
		s=checkTime(s)
		function checkTime(i) {
			if(i<10){
				i="0"+i
			}
			return i
			
		}

		document.getElementById('p1').innerHTML="今天是:"+weekend[w]+"<br />"+"时间是:"+h+":"+m+":"+s
		t=setTimeout("showdate()",500)
		
	}
</script>
</body>
</html>

7.js数组


/*创造数组并输出*/
var myarray=new Array()   /*再创建数组时如果括号中有值,如Array(3),表示这数组有3个值*/
myarray[0]='1'
myarray[1]="2"
for(x in myarray){
 document.write(myarray[x]+"<br />")
}
/*另一种创建数组方法*/
var myarray=new Array("a","b","c")
/*合并数组*/
arr1.concat(arr2)   /*arr2中的值排在arr1中的值后面*/
/*将所有值组成一个字符串,以.分开每个值*/
arr.join(".")
/*数组中的值以字母顺序排序*/
arr.sort()
/*对数组中的数字进行排序*/
arr.sort(sortNumber)


8.js布尔对象(逻辑)


true:    1,字符串
false:   0,-0,空字符串"",null,NaN,undefined,
/*创建布尔*/
var myBoolean=new Boolean()


9.js算数对象(math)


无需创建对象

/*算数值*/
Math.E  /*常数*/
Math.PI  /*圆周率*/
Math.SQRT2  /*2的平方根*/
Math.SQRT1_2  /*1/2的平方根*/
Math.LN2  /*2的自然对数*/
Math.LN10  /*10的自然对数*/
Math.LOG2E  /*以2为底的e的对数*/
Math.LOG10E  /*以10为底的e的对数*/
/*算数方法*/
Math.round(4.7)  /*四舍五入*/
Math.random()   /*随机数0~1之间*/
Math.max(1.5,1.7)  /*取最大值,min是最小值*/
Math.floor(1.6)  /*返回接近小于或等于的整数,这里返回值是1*/


10.JS正则表达式(RegExp)


/*创建对象,检索内容为"e"*/
var patt1=new RegExp("e")
/*如果存在"e",返回true,否则返回false*/
document.write(patt1.test("Hello,World"))
/*这种是存在"e",就返回"e",否则返回null*/
document.write(patt1.exec("Hello World"))
/*在上面基础上,全球检索,连续返回,结果类似eeenull*/
var patt1=new RegExp("e","g")  /*g代表global*/
/*已经检索了e,但又想连续不断检索是否有q*/
var patt1=new RegExp("e")
document.write(patt1.test("Hello,World"))
patt1.compile("q")
document.write(patt1.test("Hello,World"))/*返回truefalse*/

猜你喜欢

转载自my.oschina.net/u/3384982/blog/1544669