JavaScript基础(2)

Array对象:

        数组的创建:
                 创建方式1.1:相当于动态初始化;
                        var arr = new Array(3) ;
                创建方式1.2:
                        var arr = new Array() ;     //表示0个长度,之后给数组赋值;
                创建方法1.3:直接指定数组中具体元素;
                        var arr = new Array("hello",100,true,'a') ;
                创建方式2.1:直接指定数组的元素,不需要new Array() ;

                        var arr = [10,"hello","world",true] ;

        常用方法:
                join():将数组中的所有元素以一个符号进行拼接,返回一个新的字符串;

                reverse():将数组中的元素进行反转;

        注意:
                1> 在js中,数组可以存储任意类型的元素;
                2> 在js中,不存在数组角标越界一说,数组中的元素数量是可以不断的增加.,不会出现异常;

        举例:

<script type="text/javascript">

var arr = ["java","php","python","hadoop"] ;

        //将数组以"-"符号进行拼接
        arr = arr.join("-") ;
        document.write("arr:"+arr);

        document.write("<hr/>") ;

        document.write("反转前:") ;
        for(var i = 0 ; i<arr.length ; i++){
                document.write(arr[i]+"&nbsp;") ;
        }
        document.write("<hr/>") ;
        //反转
        arr = arr.reverse() ;
        document.write("反转后:") ;
        for(var i = 0 ; i<arr.length ; i++){
                document.write(arr[i]+"&nbsp;") ;
        }

</script>


javascript中自定义对象:

        方式1:有参构造的形式;
//有参构造
function Person(name,age){ //this:代表当前对象
	//定义属性
	this.name = name ;
	this.age = age ;
	//定义方法
	this.speak = function (){
		alert("这是说话的功能...")
	}
}
//创建对象
var p = new Person("张三",28);

//要么使用for-in语句将对象的属性遍历出来,或者直接输出
document.write(p.name+"<br/>") ;
document.write(p.age+"<br/>") ;

//调用方法
p.play();
        方式2:无参构造的形式;
//无参构造
function Person(){
		
}

//创建对象
var p = new Person() ;
//追加属性
p.name = "李四" ;
p.age = 38 ;
//追加方法
p.speak = function(){
	alert("这是李四说话的功能...")
}
//要么使用for-in语句将对象的属性遍历出来,或者直接输出
document.write(p.name+"<br/>") ;
document.write(p.age+"<br/>") ;
//调用方法
p.play();
        方式3:利用Object对象,Object对象在js中代表任意对象的一个模板;
//定义对象
function Person(){

}

//创建对象
var p = new Object() ;

//追加属性
p.name = "厄齐尔" ;
p.age = 29 ;

//追加方法
p.play = function (){
	alert("全场隐形...") ;
}
//要么使用for-in语句将对象的属性遍历出来,或者直接输出
document.write(p.name+"<br/>") ;
document.write(p.age+"<br/>") ;

//调用方法
p.play();
        方式4:
var p = {
        //就是json格式的写法
	//追加属性
	"name":"王五",
	"age":28,
	"play":function(){
		alert("王五会踢球...")
	}
};

//要么使用for-in语句将对象的属性遍历出来,或者直接输出
document.write(p.name+"<br/>") ;
document.write(p.age+"<br/>") ;

//调用方法
p.play();

原型(prototype):

         作用:就是给js中的内置对象追加方法使用的;
                 1> 每一个js内置对象都有一个原型属性(prototype);
                 2> 如果往原型对象中追加一个方法,那么这个方法会自动追加到内置对象中;

                3> 原型属性是可以直接被内置对象调用然后追加方法;

        举例:

<script type="text/javascript">
	//使用内置对象的原型改进
	//给Array对象追加search
	Array.prototype.search = function(target){
		//遍历Array对象中的数组
		for(var i = 0 ; i< this.length ; i++){
			//判断
			if(this[i] == target){
				return i ;
			}
		}
		//找不到,返回-1
		return -1 ;
	}
	
	
	//内置对象的原型属性追加max() 
	Array.prototype.max = function(){
		//定义参照物
		var max = this[0] ;
		//遍历其他元素
		for(var i = 1 ; i < this.length; i++){
			//判断
			if(this[i] > max){
				max = this[i] ;
			}
		}
		return max ;
	}
	
	
	////创建一个数组,静态初始化
	var arr = [43,65,13,87,3,19] ; //var arr = new Array(43,65,13//) ;
	var index = arr.search(3) ;
	document.write("你要查找的元素的位置是:"+index+"<br/>") ;
	
	var max = arr.max() ;
	document.write("该数组中的最大值是:"+max) ;
	
</script>

window对象:

        作用:它表示浏览器的一个窗口;

        和弹框相关的方法:
window.alert("提示框")://window可以省略;
window.confirm("消息对话框"):有确认框,取消框;
prompt:提示对话框,其中带有一条消息和一个输入框;

         和定时器相关的方法:
setInterval("任务",时间毫秒值):每经过多少毫秒后重复执行这个任务;
clearInterval():取消和setInterval相关的任务;
window.clearInterval(iIntervalID):这个要插入一个Id;
setTimeout("任务",时间毫秒值):经过多少毫秒后只执行一次;

clearTimeout():取消和setTimeout相关的超时事件;

        举例:

<body>
	<input type="button" value="open()" onclick="testOpen()" />
	<input type="button" value="setInterval()" onclick="testSetInterval()"  />
	<input type="button" value="clearInterval()" onclick="testClearInterval()"  />
	<input type="button" value="setTimeout()" onclick="testSetTimeout()"  />
	<input type="button" value="clearTimeout()" onclick="testClearTimeout()"  />
	<input type="button" value="alert()"  onclick="testAlert()" />
	<input type="button" value="confirm()"  onclick="testConfirm()" />
	<input type="button" value="prompt()" onclick="testPrompt()" />
</body>
<script type="text/javascript">
	//触发open单击事件
	
	function testOpen(){
		
		//调用open 方法
		window.open("06.广告页面.html","_blank") ;
	}
	
	//和定时器相关的函数
	//定义一个任务id
	var taskId ;  
	function testSetInterval(){
		
		//每经过2秒重复执行testOpen
		taskId = window.setInterval("testOpen()",2000) ;
		
	}
	
	//清除和setInterval相关的定时器
	function testClearInterval(){
		
		//调用功能
		window.clearInterval(taskId) ;
	}
	
	
	//定位任务id
	var timeoutId ;
	//setTimeOut定时器
	function testSetTimeout(){
		
		//经过3秒后执行testOpen函数
		  timeoutId = window.setTimeout("testOpen()",3000) ;
	}
	
	function testClearTimeout(){
		
		window.clearTimeout(timeoutId)
	}
	
	
	//alert的方法
	function testAlert(){
		
		//window.alert("今天天气不错....");
		alert("今天天气不错....");
	}
	
	
	function testConfirm(){
		
		//调用
		var flag = window.confirm("确认删除吗?一旦删除,数据不可恢复!!") ;
		if(flag){
			alert("数据已删除")
		}else{
			alert("您取消了删除") ;
		}
	}
	
	
	//和确认提示框,有一条消息
	function testPrompt(){
		
		
		var flag = window.prompt("请您输入u顿密码!") ;
		if(flag){
			alert("输入正确");
		}else{
			alert("请重新输入");
		}
	}
	
</script>

loaction对象:

        作用:包含关于当前URL的信息;
        主要学习一个属性一个方法:
                href属性:可以修改页面的href属性来实现页面跳转;

                reload():定时刷新;

        举例:

<body>
        <a href="06.广告页面.html">超链接</a>
        <input type="button" value="跳转"  onclick="testHref()"/>
        <input type="button" value="定时刷新" onclick="testRefresh()"  />
        </body>
<script type="text/javascript">

        //loaction:地址栏对象
        function testHref(){

                //alert(window.location.href) ;

                //修改location的href属性
                window.location.href="06.广告页面.html" ;  //location的 href属性
        }
        function testRelod(){

                //调用reload定时刷新
                window.location.reload() ;
        }
        //定时器
        //注意:如果setTimeout()方法和reload()一起使用,
        //并且setTimeout()不借助任何函数,那么就会相当于setInterval()
        window.setTimeout("testRelod()" ,1000) ;
</script>

history对象:

        作用:包含了用户已浏览的URL的信息;
        方法:
                forward():装入历史列表中下一个url;
back():装入历史列表中前一个url;
                go(正整数或者负整数):从历史列表中转入url;

        举例:

<body>
        <a href="09.history对象.html">超链接</a><br />
        <input type="button" value="前进"  onclick="testForward()" />
</body>
<script type="text/javascript">
        function testForward(){

        //调用功能
        //window.history.forward() ;

        window.history.go(1) ;
        }
</script>

screen对象(屏幕对象):

        作用:包含关于客户屏幕和渲染能力的信息;

        常用属性:
                availHeight:获取系统屏幕的工作区域高度,排除 Microsoft® Windows® 任务栏;

                availWidth:同上;

        举例:

<script type="text/javascript">
	document.write(screen.availHeight+"<br/>") ; //不包括任务栏
	document.write(screen.height+"<br/>") ;      //包含有任务栏
	document.write(screen.availWidth+"<br/>") ;  //宽度没有任务栏
	document.write(screen.width+"<br/>") ;
</script>

事件编程的分类:

        1> 和点击相关的事件:
                单击点击事件:onclick
                双击点击事件:ondbclick
        2> 和焦点相关的事件:
                获取焦点事件:onfocus
                失去焦点事件:onblur

        举例:点击和焦点相关的事件;

<body>
        <input type="button"  value="点我试试" onclick="testClick()" /><br />
        <input type="button" value="再点" ondblclick="testDbClick()"  /><br />
        <input type="text" id="username" value="请输入6到12位的数字或者字母" size="25" onfocus="testFocus()" onblur="testBlur()" /><span id="nameTip"></span>
        </body>
<script type="text/javascript">

        //和单击点击相关的函数
        function testClick(){
                alert("点了...") ;
        }

        //双击
        function testDbClick(){
                alert("你得双击...") ;
        }

        //获取焦点(在js中,一般情况如果要获取标签对象,最好的使用方式就是给它给一个id,id是唯一的)
        function testFocus(){
                //通过id属性
                var usrename = document.getElementById("username") ; //获取标签对象
                username.value =""	 ;
        }

        //失去焦点(鼠标光标从文本输入框中移出来)
        function testBlur(){
                //获取用户在文本输入框中的内容
                var username = document.getElementById("username").value ;

                //获取span标签对象
                var nameTip = document.getElementById("nameTip") ;
                //如果输入的值不是"eric",就是提示用户名不符合规则
                if(username =="eric"){
                        //给nameTip设置innerHTML属性
                        nameTip.innerHTML = "校验成功,符合规则".fontcolor("#00ff00") ;
                }else {
                        nameTip.innerHTML ="用户名不符合规则".fontcolor("#ff0000");
                }
        }
</script>
        3> 和选项卡发生变化相关的事件:onchange
        4> 和鼠标相关的事件:
                鼠标经过的事件:onmouseover
                鼠标移出的事件:onmouseout
        5> 和页面加载相关的事件:onload

                注意:一般用在body,当body中的内容加载完毕之后就会触发这个事件;

        举例:

<html>

	<head>
		<meta charset="UTF-8">
		<title>事件分类</title>
		<style type="text/css">
			#div1 {
				width: 100px;
				height: 100px;
				border: 1px solid #00F;
			}
		</style>
		<script type="text/javascript">
			//触发onchange事件相关的函数
			function testChange() {
				//alert("选项卡已经发生变化了") ;

				//通过id属性值获取当前id="jiguan"所在内容
				var jiguan = document.getElementById("jiguan").value;
				//alert(jiguan) ;

				//获取id="city"所在的select标签对象
				var city = document.getElementById("city");

				//每次选择之前,要情况city的innerHTML属性
				city.innerHTML = "";

				//判断
				if(jiguan == "广东") {
					//给每一个省会添加三个城市	
					//广州 珠海  深圳
					//创建数组
					var arr = ["广州", "珠海", "深圳"];
					//遍历数组
					for(var i = 0; i < arr.length; i++) {
						//arr[i]都有了
						city.innerHTML += "<option value='" + arr[i] + "'>" + arr[i] + "</option>";

					}
				}

				//判断
				if(jiguan == "陕西") {
					//给每一个省会添加三个城市	
					//广州 珠海  深圳
					//创建数组
					var arr = ["西安", "咸阳", "宝鸡"];
					//遍历数组
					for(var i = 0; i < arr.length; i++) {
						//arr[i]都有了
						city.innerHTML += "<option value='" + arr[i] + "'>" + arr[i] + "</option>";

					}
				}

				//判断
				if(jiguan == "山西") {
					//给每一个省会添加三个城市	
					//广州 珠海  深圳
					//创建数组
					var arr = ["太原", "运城", "大同"];
					//遍历数组
					for(var i = 0; i < arr.length; i++) {
						//arr[i]都有了
						city.innerHTML += "<option value='" + arr[i] + "'>" + arr[i] + "</option>";

					}
				}

			}

			//鼠标经过的事件
			function testMouseOver() {
				alert("鼠标经过了...");
			}

			//鼠标移出的事件
			function testMouseOut() {
				alert("鼠标移出了...");
			}

			//和页面加载相关的事件
			function testLoad() {
				alert("页面中的body部分已经加载完毕了...");
			}
		</script>
	</head>

	<body onload="testLoad()">
		请选择籍贯:
		<select onchange="testChange()" id="jiguan">
			<option value="请选择">请选择</option>
			<option value="广东">广东</option>
			<option value="陕西">陕西</option>
			<option value="山西">山西</option>
		</select>
		城市:
		<select id="city">
			<!--通过 id="city"的select标签对象的innerHTML属性拼接"<option value=''>值</option>"-->
		</select>

		<hr/>
		<div id="div1" onmouseover="testMouseOver()" onmouseout="testMouseOut()"></div>
	</body>

</html>

                


猜你喜欢

转载自blog.csdn.net/Future_LL/article/details/80759387