15、javascript脚本语言

JavaScript是Netscape公司开发的一种基于客户端浏览器、面向对象、事件驱动的网页脚本语言

JavaScript特点:事件驱动式的脚本程序设计思想,动态交互式的操作

Javascript作用:交互操作,表单验证,网页特效,Web游戏,服务器脚本开发等

Java采用强类型变量检查,变量使用前必须声明;JavaScript采用弱类型,变量使用前不需要声明

Java采用静态编译,即Java的对象引用必须在编译时进行,以使编译器能够实现强类型检查,如不编译则就无法实现对象引用的检查。JavaScript采用动态联编,即JavaScript的对象引用在运行时进行检查。

JavaScript的格式:JavaScript区分大小写;JavaScript脚本程序必须嵌入在HTML文件中;每行一条脚本语句;语句末尾可以加分号;javaScript脚本程序可以独立保存为一个外部文件,但其中不能包含<script></script>标签

JavaScript的库:jQuery、dojo、extJs

JavaScript脚本程序的几种基本格式:

    - <script>
          document.write("hello");
        </script>

    - <script language="JavaScript">
          document.write("hello");
        </script>

    - <script language="JavaScript" type="text/JavaScript">
        document.write("hello");
       </script>
    - <script src="hello.js"></script>    注意:document.write("hello");必须保存为一个外部文件:hello.js

变量声明:var 变量名 也可以省略var,函数中如果定义变量,且没有使用var则这个变量是全局变量,否则,如果使用了var,则是局部变量,定义在函数外的变量一定是全局变量

变量作用域:

with语句:

for...in语句:

对象:默认对象

    - 日期对象:Date

    - 数组对象:new Array();

        var fruit = new Array("苹果","鸭梨","苹果"); 
        var fruit = ["苹果","鸭梨","苹果"];
        var fruit = new Array(3);    fruit.push("苹果");

       数组对象的方法:join([分隔符]):数组元素组合为字符串
                                       toString() : 以字符串表示数组
                                       reverse() : shuzufanzhuan
                                       valueOf() : 返回数组值

    - 字符串对象:变量 = new String()
                               变量 = "字符串"

      方法:charAt(索引) :返回索引位置的字符串
                  indexOf("字符串"[,索引]) : 返回字符串在对象中的索引位置
                  lastIndexOf("字串"[,索引]) : 返回字串在对象中的索引位置(反向搜索)
                  replace("字串1","字串2") : 字串2替换字串1
                  search("字串") : 返回字串在对象中的索引位置
                  substring(索引|i[,索引j])返回索引j到索引j-1的子串

自定义对象:构造函数定义对象类型      ;          建立对象实例

动态的定义对象属性:构造函数定义

事件处理程序:浏览器响应某个事件,实现用户的交互操作而进行的处理(过程);事件处理程序的调用:浏览器等待用户的交互操作,并在事件发生时,自动调用事件处理程序(函数),完成事件处理过程。

定时器:用于指定在一段特定的事件后执行某段程序。setTimeout(): 格式 :   [定时器对象名=] setTimeout("<表达式>",毫秒)    功能:执行<表达式>一次。
               setInterval()  :格式  :  [定时器对象名=] setInterval("<表达式>",毫秒)    功能:重复执行<表达式>,直至窗口、框架被关闭或执行clearInterval。
                clearInterval():终止定时器    格式:clearInterval(定时器对象名)

JavaScript内置对象:

    - 图像对象
    - 导航对象
    - 窗口对象
    - 屏幕对象
    - 事件对象
    - 历史对象
    - 文件对象
    - 锚点对象
    - 连接对象
    - 框架对象
    - 表单对象
    - 位置对象

alert()窗口是一个模态的,就是说必须处理,否则无法继续输入

屏幕对象:screen

事件对象:在js中为某个对象(控件)绑定事件通常可以采取两种手段:
       1)<input type="button" onclick="clickHandler();">
       2)<input type="button" id="button1">

                <script type="text/javascript">

                var v = document.getElementById("button1");

                 v.onclick = clickHandler;

                 </script>

当事件发生时,浏览器自动建立该对象,并包含该事件的类型、鼠标坐标等

历史对象:history

位置对象:用来代表特定窗口的URL信息  location

连接对象:网页中的链接均会被自动看做链接对象,并依顺序,分别表示为document.links[0],document.links[1]...;定义链接对象的 格式:字串.link(属性)

Cookie对象:是一种以文件(Cookie文件)的形式保存在客户端硬盘的Cookies文件夹中的用户数据信息(Cookie数据)。Cookie文件由所访问的Web站点建立,以长久的保存客户端与web站点间的会话数据,并且该Cookie数据只允许被所访问的web站点进行读取。
          Cookie文件的格式:NS:Cookie.txt           IE:用户名@域名.txt

写入cookie:   格式:  document.cookie = “关键字 = 值[;expires = 有效日期][;...]”

有两种类型的cookie:1)持久性cookie,会被存储到客户端的硬盘上。   2)会话cookie:不会存储到客户端的硬盘上,而是放在浏览器进程所处的内存中,当浏览器关闭则该会话cookie就销毁了。

举例:用javascript控制页面元素的显示与否:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'begin.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
	<script type="text/javascript">
	function validate()
	{
		var num = document.getElementsByName("number")[0];
		if(num.value.length < 1)
		{
			alert("不能为空");
			num.focus();
			return false;
		}

		for(var i = 0; i < num.value.length; i++)
		{
			var param = "0123456789";
			if(param.indexOf(num.value.charAt(i)) == -1)
			{
				alert("输入必须为数字");
				num.focus();
				return false;
			}
		}
		if(parseInt(num.value) < 5 || parseInt(num.value) > 15)
		{
			num.value = 10;
			
		}
		return true;
	}
	
	</script>
  </head>
  
  <body>
  
    <form action="js/end.jsp" name="form1" method="post" onsubmit="return validate();">
    请输入数字(5——15):<input type="text" name="number"><br/>
    <input type="submit" value="submit">
    
    </form>
  </body>
</html>



<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'end.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
	<script type="text/javascript">
	function checkAll()
	{
		var s = document.getElementsByName("check");
		var m = document.getElementsByName("all")[0];
		if(m.checked)
		{
			for(var i = 0; i < s.length; i++)
			{
				s[i].checked = true;
			}
		}
		else
		{
			for(var i = 0; i < s.length; i++)
			{
				s[i].checked = false;
			}
		}
	}

	function turn()
	{
		with(document)
		{
			var m = getElementById("change");
			var n = getElementById("table");

			if(m.value =="收缩")
			{
				n.style.display = "none";
				m.value = "展开";
			}
			else
			{
				n.style.display = "block";
				m.value = "收缩";
			}
		}
	}
	</script>
  </head>
  
  <body>
  <table border="1" align="center" width="60%">
  	<tr>
  		<td>
  			<input type="checkbox" name="all" onclick="checkAll();" >全选
  		</td>
  		<td>
  			<input type="button" value="收缩" id="change" onclick="turn();">
  		</td>
  	</tr>
  </table>
  
    <% int number = Integer.parseInt(request.getParameter("number")); %>
    <table border="1" align="center" width="60%" id="table">
    <% for(int i = 1; i<=number;i++)
    	{%>
    <tr>
    	<td>
    		<input type="checkbox" name="check">
    	</td>
    	<td>
    		<%= i %>
    	</td>
    </tr>
    <% } %>
    </table>
  </body>
</html>


 

你可能感兴趣的:(15、javascript脚本语言)