JavaScript对象详解(定时器)

一: js
1:概念: 基于对象的脚本语言, 浏览器直接解析:
基于对象: 模拟面向对象。,
基本语言: 不是高级语言, 解析的时候不需要编译。
浏览器:

2: 基本数据类型:
数值类型: number
字符串类(字符): String
undefined: 未定义
null
boolean类型:

3:复合类型
数组:
函数:
对象:

4: 运算符:
算数: ++ –
关系: NaN 和 NaN 自身不相等
逻辑: 1 && 2
条件: (三目)
赋值:

js:非0非null 都是true:

5: 数组的定义:
js和java当中的数组区别:
(1)定义形式不一样。
(2) js当中的数组: 可以存放任意类型:
java当中的数组, 只能存放相同类型或者是兼容类型:
(3)js当中的数组可以自动扩容:
java当中数组的长度是固定的。

var arr=[]; 直接赋值方式:
var arr= new Array(); //定义了一个数组, 数组的长度2
var arr= new Array(12,21); 定义了一个数组, 数组的值12,21

6: 函数的定义:
函数: 三种
function funName(a, b){
return value;
}

var funName= function(){

}

var funName = new Function(“param1”,“param”);
param1: 参数列表:
param2: 方法体:

区别: 
(1)如果函数需要动态的传值, 定义函数的时候, 需要定义具有形式参数的方法:
形式参数在定义需要不需要给出类型。

(2) 如果函数需要定义有返回值, 函数当中, 直接通过return关键字,将函数运算的结果返回。

7:js函数当中是否存在函数的重载:
(1)js当中不存在函数的重载:
(2)可以通过函数当中的内置数组, arguments 模拟函数的重载。

8: js当中的内置对象:
Date: 和日期相关的: var date = new Date();
Array: 和数组相关: var array = new Array();
String:和字符串相关: var str=new String(“加减”);
Function 函数相关: var funName = new Function("","");
Math: 和数学相关: 单体对象: 方法可以通过类名直接调用:

9: 正则表达式:
补充: 正则表达式: 定义和java当中完全一致:
RegExp : 和正则表达式相关的:

定义一个正则表达式:
方式一:var reg = new RegExp("[1][345789][0-9]{9}");
方式二: var reg = /[1][345789][0-9]{9} /;

事件: onsubmit(); 事件是所有事件当中最特别的一个事件,这个事件必须有一个返回值。 true,可以提交。 false 不能提交。

10: script放在位置“:
script: 引入外部文件: 在head标签:
自定义js代码: body解释之前。

11: 创建对象:
创建一个json对象:
var obj ={}; //创建一个对象:
var obj ={“username”:“wnagdaoyan”,“age”:30,“gender”:“nv”};

创建一个对象: 使用构造器:
//创建一个构造器“:
function Person(name,age,gender){
this.name= name;
this.age=age;
this.gender= gender;

}

//将对象转换成一个json格式:
var json = JSON.stringify(Bean);

location对象:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<input type="button" name="btn" id="btn" value="but" onclick="fun();"/>
		
		<input type="button" name="btn" id="btn" value="but" onclick="deleteFun();"/>
		
		<input type="button" name="btn" id="btn" value="but3" onclick="deleteFun2();"/>
		
		<input type="button" name="btn" id="btn" onclick="fun3();" value="关闭" />
		
		<script type="text/javascript">
			//href属性: 
			function fun(){
				//window对象: 可以省略不写: 
				window.location.href="${pageContext.request.contextPath}/servlet/VerifyCodeServlet?time="+new Date().getTime();
			}
			
			//window.document.write()
			
			function deleteFun(){
				var flag = window.confirm("确定要删除吗?");
				if(flag){
					alert("success");
				}else{
					alert("fail");
				}
			}
			
			//提示框:  带有用户输入的提示框
			function deleteFun2(){
				var value= window.prompt("请现写你的银行卡号和密码","xxx");
				//带有用户输入框:
				document.write(value);
			}
			
			
			function fun3(){
				window.close();
			}
		</script>
		
		
	</body>
</html>

在这里插入代码片

对象的创建以及转换json:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			//
			var person1={"username":"yinxiaoyu","age":29,"gender":"nan"};
			
			document.write(person1.username);
		
		
		//使用构造器创建: 
		function Person(name, age, gender){
			this.name= name; 
			this.age=age; 
			this.gender=gender; 
		}
		
		//创建对象: 
		var p= new Person("llisi",21,"nana");
		document.write("<br/>");
		document.write(p.gender);
		
		//将对象转换成json: 
		var jsonP= JSON.stringify(p);
		document.write(jsonP);
		</script>
	</body>
</html>

12: js的组成:

js: ECMAScript: 语法,语句, 关键字。 运算符。对象的定义:
BOM: 浏览器对象模型:
DOM: 文档对象模型:

二: BOM对象: (有重点)
Navigator: 浏览器的基本信息; 版本信息: 浏览器的名称等:
Screen: 封装类浏览器的屏幕信息, 浏览器的高度,宽度。
history: 对象:
forward();
back();
go(+1);//相当于forward
go(-1);//相当于back:
location: 重点:
href属性: 能够进行页面的跳转:

window对象: 是所有对象的父对象:
API方法:
alert();
confirm(); //带有确定和取消按钮的提示框:
prompt(param1,param2);带有用户输入的提示框
param1:提示用户的信息:
param2:输入框当当中的默认值。
函数带有返回值 , 用户点击确定, 获得了用户输入的值。

和定时器相关:
setInterval(“param1”,“param2”);
param1:js代码:
param2:执行的时间: 毫秒单位:
返回返回值, 返回的定时器的id的值。

clearInterval(id);//取消指定的定时器:

setTimeout(“js代码”,“millis”);指定的毫秒后,指定一次js函数。
clearTimeout(id);//取消指定的定时器。

open("","","");
参数一: URL 地址: 指定开启的页面。
参数二: 给当前窗口命名。
参数三: 窗口的样式信息。
定时器的代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<input type="button" name="btn" id="btn" onclick="fun();"
			 value="取消" />
			 
			 <input type="button" name="btn" id="btn" onclick="fun2();"
			 value="取消2" />
		<script type="text/javascript">
		
		//var id =setInterval("alert('x')",3000);
	
	     function fun(){
	     	//取消定时器:
	     	window.clearInterval(id);
	     }
	     
	     //只指定一次js代码
	    var id2=  setTimeout("alert('xxxxxx')",3000);
	    
	     function fun2 () {
	     	window.clearTimeout(id2);
	     }
		</script>
	</body>
</html>

三:Dom: 文档对象模型:

HTML: 浏览器在对其进行解析的时候, 把html封装成一个树形结构:

document: 对象: 对应整个树:
Element: 标签节点:
Attribute 属性节点:
TextNode : 文本节点:
Node: 标签节点, 属性节点, 文本节点的一个父节点。

API方法:

document:
获得其他的节点:
document.getElementById(“id”);//返回的是一个元素:
document.getElementsByName(“name”);//获得复选框,返回的数组。
document.getElementsByTagName(“tagname”);//通过标签的名称,获得元素。, 返回的是数组。

//创建元素节点: 增加
document.createElement(“li”);//


  • document.createTextNode(“文本”);//
    appendChild(“childNode”);

    //删除:
    removeChild(“childNode”);
    //替换:
    replaceChild(“newNode”,“oldNode”);

    具体操作代码:

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="UTF-8">
    		<title></title>
    	</head>
    	<body>
    		<ul>
    			<li id="yangyuhuan">杨玉环</li>
    			<li>王昭君</li>
    			<li>貂蝉</li>
    			<li>西施</li>
    		</ul>
    		<input type="button" name="" id="" value="add"onclick="fun();" />
    		<input type="button" name="" id="" value="replace"onclick="fun2();" />
    		<script type="text/javascript">
    			function fun(){
    				/*
    			 * 添加: 
    			 * 1: 创建一个新的节点:L
    			 * 2:创建文本节点: 
    			 * 3:文本节点和创建新的节点建立关系: 
    			 * 4: 获得父节点: 
    			 * 5:执行添加操作:
    			 */
    			var liEle = document.createElement("li"); 
    			var textNode = document.createTextNode("高圆圆");
    			liEle.appendChild(textNode); 
    			var ulEle = document.getElementsByTagName("ul")[0]; 
    			ulEle.appendChild(liEle);
    			}
    			
    			//insertBefore();
    			
    			function fun2(){
    				/*
    				 *  创建文本节点。 
    				 *  创建li节点。 
    				 *  建立关系。 
    				 * 获得ul节点。 
    				 * 获得要替换的节点。 
    				 * ul执行替换。 
    				 */
    				
    				var liEle1 = document.getElementsByTagName("li")[0];
    				
    			   var liEle = document.createElement("li"); 
    			   var textNode = document.createTextNode("高圆圆");
    			   liEle.appendChild(textNode);
    				//父节点直接执行替换操作: 
    				liEle1.parentNode.replaceChild(liEle,liEle1);
    			}
    			/*
    			 * 获得其他的节点: 
    			 */
    			var liEle1 = document.getElementsByTagName("li")[1];
    		    var preEle = liEle1.previousElementSibling; 
    //		     alert(preEle.id);
    		    var nextEle =  liEle1.nextElementSibling;
    		    
    		</script>
    	</body>
    </html>
    
    

    四: innerHTML属性:

    属性不是dom的一部分, 但是大部门浏览器都支持。
    作用: 能够获得标签当中的内容。
    设置标签当中的内容。

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="UTF-8">
    		<title></title>
    		<style type="text/css">
    			div{
    				width:100px;
    				height: 200px;
    				border:1px solid red;
    			}
    		</style>
    	</head>
    	<body>
    		<script type="text/javascript">
    			window.onload= function (){
    				var divEle = document.getElementsByTagName("div")[0];
    			    divEle.innerHTML="<h1>哈哈</h1>";
    			/*
    			 * 1:创建一个新的节点: 
    			 * 2:文件文本节点: 
    			 * 3:建立关系: 
    			 * 4:放在div下: 
    			 * 传统的方式: 
    			 */
    			
    			}
    		
    		</script>
    		
    		<div class="c1">
    			
    		</div>
    	</body>
    </html>
    
    

    五: Element对象:

    获得元素的值:
    查询:
    对象.value; //前提具备value属性: input
    对象.getAttribute();

    //增加:
    setAttribute(“attName”,“attValue”);

    //删除:
    removeAttribute(“attName”);

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="UTF-8">
    		<title></title>
    	</head>
    	<body>
    		<input type="text" name="username" id="username" value="ddd" />
    		
    		<script type="text/javascript">
    			/*
    			 * Element对象
    			 */
    			var inputEle = document.getElementById("username"); 
    			document.write(inputEle.value);
    			
    			//方法: 
    			alert(inputEle.getAttribute("value"));
    			
    			//增: 
    			inputEle.setAttribute("maxlength","6");
    			
    			
    			//删除: 
    			inputEle.removeAttribute("value");
    		</script>
    	</body>
    </html>
    
    

    六: Node对象:

    属性的名称 :标签节点 | ********** 属性节点| ************** 文本节点
    nodeType: 1 ********* ***************** 2 ******************* 3
    nodeName: 标签名称大写 ***********属性名称 **********text
    nodeValue : ***** NULL ************** 属性值: *********** 文本的内容:

    获得其他的节点:
    获得父节点; parentNode;
    同步节点: 上一个节点:previousElementSibling
    下一个节点: nextElementSibling
    获得孩子节点: childNodes; 不兼容:
    document.getElementsByTagName();

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="UTF-8">
    		<title></title>
    	</head>
    	<body>
    		<ul>
    			<li id="yangyuhuan">杨玉环</li>
    			<li>王昭君</li>
    			<li>貂蝉</li>
    			<li>西施</li>
    		</ul>
    		<input type="button" name="" id="" value="add"onclick="fun();" />
    		<input type="button" name="" id="" value="replace"onclick="fun2();" />
    		<script type="text/javascript">
    			function fun(){
    				/*
    			 * 添加: 
    			 * 1: 创建一个新的节点:L
    			 * 2:创建文本节点: 
    			 * 3:文本节点和创建新的节点建立关系: 
    			 * 4: 获得父节点: 
    			 * 5:执行添加操作:
    			 */
    			var liEle = document.createElement("li"); 
    			var textNode = document.createTextNode("高圆圆");
    			liEle.appendChild(textNode); 
    			var ulEle = document.getElementsByTagName("ul")[0]; 
    			ulEle.appendChild(liEle);
    			}
    			
    			//insertBefore();
    			
    			function fun2(){
    				/*
    				 *  创建文本节点。 
    				 *  创建li节点。 
    				 *  建立关系。 
    				 * 获得ul节点。 
    				 * 获得要替换的节点。 
    				 * ul执行替换。 
    				 */
    				
    				var liEle1 = document.getElementsByTagName("li")[0];
    				
    			   var liEle = document.createElement("li"); 
    			   var textNode = document.createTextNode("高圆圆");
    			   liEle.appendChild(textNode);
    				//父节点直接执行替换操作: 
    				liEle1.parentNode.replaceChild(liEle,liEle1);
    			}
    			/*
    			 * 获得其他的节点: 
    			 */
    			var liEle1 = document.getElementsByTagName("li")[1];
    		    var preEle = liEle1.previousElementSibling; 
    //		     alert(preEle.id);
    		    var nextEle =  liEle1.nextElementSibling;
    		    
    		</script>
    	</body>
    </html>
    
    

    2018年12月4日21:14:47于易动
    时间匆忙,又赶上期末复习。
    写的比较粗糙,见谅~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东方-教育技术博主

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值