<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>表单标签</title>
</head>
<body>
<form action="./FormTest" method="post">
<input type="text" value="noName" tabindex="5" maxlength="2" /><br/>
<input type="text" name="name" value="mygu" tabindex="4" /><br/>
<input type="text" name="name" value="hwzhang" tabindex="3" /><br/>
<input type="text" name="disabled" disabled="disabled" value="hwzhang" tabindex="2" /><br/>
<input type="radio" name="isFlag" value="0">
<input type="radio" name="isFlag" value="1"><br/>
<input type="checkbox" name="isCheck" value="1">
<input type="checkbox" name="isCheck" value="1">
<input type="checkbox" name="isCheck" value="1">
<input type="checkbox" name="isCheck" value="1">
<input type="image" src="" alt="look is good"><br/>
<label>label关联表单控件:<input type="text"/></label><br/>
<select name="select" onchange="" multiple="multiple" size="7">
<optgroup label="第一组">
<option>1</option>
<option>2</option>
<option>3</option>
</optgroup>
<optgroup label="第二组">
<option>4</option>
<option>5</option>
<option>6</option>
</optgroup>
</select><br/>
<textarea rows="10" cols="10"></textarea><br/>
<a href="javascript:alert('welcome');">hwzhang</a><br/>
<input type="submit" value="submit" tabindex="1" />
</form>
</body>
</html>
<!-- form表单提交时,该表单中的表单控件将转换成请求参数,相应规则如下:
1、每个有name属性的表单控件对应一个请求参数,没有name属性的表单控件不会生成请求参数。
2、如果多个表单控件name属性相同,则多个表单控件只生成一个请求参数,只是该参数有多个值。
String name = request.getParameter("name");只能得到第一个该参数的值
Map<String,Object[]> valueMap = request.getParameterMap();//一个请求参数对应多个值,也就是一个key对应一个数组集合
System.out.println("valueMap : "+valueMap.get("name")[0]);
System.out.println("valueMap : "+valueMap.get("name")[1]);
for (; arr.hasMoreElements();){
System.out.println(arr.nextElement());//所有请求参数的name属性值
}
3、表单控件的name属性指定请求参数的参数名,value指定请求参数值。
4、如果某个表单控件设置了disabled="disabled"属性,则该表单控件不再生成请求参数。
5、tabindex="1",按tab键时焦点转移到下一个控件上
6、对于单选框(radio)、复选框(checkbox)而言,只有被勾选后才会生成对应的请求参数。
7、<input type="image">与submit相似。区别是图像域是一个图像按钮。
8、<label for="id"></label>标签和表单控件可以关联。单击<label>标签时与之关联的表单控件获取焦点。
关联方式:
1、隐式使用for属性。<label for="被关联表单控件ID属性值"></label>
2、显示关联。<label>label关联表单控件:<input type="text"/></label>
注意:少用显示关联,可能存在兼容性。
9、列表框和下拉菜单:<select multiple="multiple" size="3">当select标签指定multiple="multiple"或size="3"之一时就会变成列表框。multiple="multiple"可以支持选中多个
10、<textarea>标签中rows、cols属性必填。不能指定value属性值。
-->
<!--
javascript脚本
1、javascript脚本运行方式:
1、使用javascript:前缀构建执行javascript代码中的URL。例如javascript:alert("hwzhang");
2、使用<script.../>标签来包含javascript代码。
2、javascript变量的定义:
1、隐式定义:直接给变量赋值的方式。
2、显示定义:使用var先声明再使用。javascript是弱类型语言。javascript变量区分大小写
3、类型转换:
对于减号运算符,因为字符串不支持减法运算,所以系统自动将字符串转换成数值
对于加号运算符,因为字符串可以用加号作为连接运算符,所以系统自动将数值转化成字符串进行连接运算
javascript通过toString()将布尔值、数值等转换成字符串;
通过parseInt()将布尔值、字符串转换成整数;
通过parseFloat()将字符串、布尔值转换成浮点数;
parseInt、parseFloat转换时字符串包含字符是转换成NaN;转换undefined、null、布尔值和其他对象时一律转换成NaN
4、javascript局部变量覆盖全局变量;javascript没有块作用域;javascript的局部变量在整个函数作用域有效,与在函数中定义的位置无关
5、javascript基本数据类型:
1、数值类型:包含整数和浮点数;注:数值的直接量不要以0开始(javascript支持8和16进制)。
数值超出表示范围将出现的两个值:Infinity(无穷大)和-Infinity(负无穷小);Infinity和-Infinity进行算术运算是表达式值为:NaN
javascript运行除数为0;0除以0结果为NaN;正数除以0为Infinity;负数除以0结果为-Infinity
NaN:No a Number;NaN不会与任何数值变量相等,javascript专门用isNaN()函数来判断某个变量是否为NaN
判断两个浮点型变量是否相等:可以计算这两个浮点型数的差值是否小于一个足够小的数即可。
2、布尔类型:只有true和false两种值
3、字符串类型:字符串变量必须以引号或者单引号括起来
match和search都支持使用正则表达式作为子串。区别:match返回值为字符串数组或null,match在正则表达式后加g表示全局匹配,不加g返回第一次结果;search方法返回子串的索引,否则返回-1;
4、undefined:专门用来确定一个已经创建但是没有初值的变量
undefined该值表示某个变量不存在、没有赋值或某个对象的属性不存在。如需严格区分undefined和null需使用精确等于符(===)。
5、null:用于表明某个变量的值为空。
6、正则表达式:javascript的正则表达式必须放在两条斜线之间,如/abd/;/d匹配数字,digit数字,/s匹配空格,space空间;/w匹配单词,包括0~9、26个字母和下划线(_),word单词
$:匹配一行的结尾,^:匹配一行的开头;?:0次或1次;*:0次或多次;+:1次或多次;{m,n}:最少m次,最多n次
用()可以将一个表达式形成一个固定组。还可以在()内使用竖线(|)表示互斥。例如:/((abc)|(def))/可匹配bac或def。
javascript的正则表达式提供了一个test()方法,用于判断表达式是否匹配某个字符串。replace()方法也可以使用正则表达式。
String.prototype.trim = function(){//该方法为非静态方法,属于实例对象
return this.replace("/(^\s*)|($\s*)/g","");
}
7、复合类型是由多个基本数据类型组成的数据体。javascript中的复合类型大致有三种:Object对象;Array数组;Function函数。
对象是一系列命名变量和函数的集合。
数组是一系列的变量。数组定义方式:var a = [1,2,3];var b = []; var c = new Array();
javascript数组的特征:
1、数组长度可变;
2、同一个数组里数组元素的类型可以互不相同;
3、访问数组元素时不会产生数组越界,访问并未赋值的数组元素时,该元素的值为undefined;
函数是javascript中另一种复合类型。
javascript函数的特征:
1、javascript函数无须声明返回值类型。
2、javascript函数无须声明参数类型。
3、javascript函数可以独立存在,不必依附于类。
4、javascript必须使用function关键字调用。
8、运算符:
1、逗号(,)运算符允许将许多表达式排在一起,最后返回最右边表达式的值。例:a=(b=5,c=7,d=56);
2、void运算符用于强行指定表达式不返回值。例:a=void(b=5,c=7,d=56);
3、typeof和instanceof运算符
typeof运算符用于判断某个变量的数据类型,可作为函数来用,例如:typeof(a)可返回变量a的类型;可以作为运算符来使用,例如:typeof a,也可返回变量a的数据类型。
if(typeof name == 'string')
不同类型使用typeof返回值:undefined值:undefined;null值:object;布尔值:boolean,数字值:number;字符串值:string;对象:object;函数:function
与typeof类似instanceof判断某个变量是否为指定类的实例,如果是,则返回true,否则返回false,当该变量为null是返回false
var num = new Number();
alert("num : "+num);
//num = null;
alert(num instanceof Number);
9、异常处理:javascript异常机制与java异常机制存在如下区别:
1、javascript中只有一个异常类Error,无须在定义函数时声明抛出异常,所以没有throws关键字
2、javascript是弱语言类型,所以catch语句后括号里的异常实例无须声明类型
3、javascript只有一个异常类Error,所以try块后只能有一个catch块
4、获取异常描述信息是通过异常对象的message属性。例如e.message
10、with语句:使用with语句可以避免重复书写对象。with后只有一个语句是括号可省略,但意义不大。语法格式:with(object){...}
例如:document.writeln("1233");document.writeln("1233");document.writeln("1233");
可以改写成:with(document){writeln("1233")}
11、for in 循环:for in循环实质上是一种foreach循环:主要作用:
1、遍历数组里的所有元素。当遍历数组时循环计数器是数组元素的索引。
var arr = ["1111","2222","3333"];
for(index in arr){
document.writeln(arr[index]);
}
2、遍历javascript对象里的所有属性。当遍历对象属性时,循环计数器是该对象的属性。
for(field in navigator){
document.writeln(field);
}
12、函数:
1、在匿名函数定义的语法最后不要忘记紧跟分号(;)。var f = function(s){...};
注:var f = function abd(){...};这种写法在调用时abd()失去意义,即用f()没有问题,用abd()调用时在报错。Firefox和Opera不支持。
2、函数和类:函数不仅是一个函数还是一个类。
函数的调用方式:
1、直接调用函数:调用者.函数名(参数列表);----调用者可以省略;直接调用函数如果有return则返回return结果,无return就不返回任何结果。
2、使用关键字new调用函数:这种方式总有返回值,返回值是一个JavaScript对象。
function test(name){//定义一个函数
return "你好," + name ;
}
var rval = test('leegang');//直接调用函数
var obj = new test('leegang');//将函数作为类的构造器
alert(rval + "\n" + obj);
3、函数名.call(调用者,参数列表);
4、 函数名.apply(调用者,arguments);
call与apply的本质一样,只不过apply可以通过arguments来访问当前函数的参数
13、函数的实例属性和静态属性:JavaScript中定义的变量不仅有局部变量,还有实例属性和静态属性。根据声明方式变量分为:
1、局部变量:在函数中以普通方式声明的变量,包括var或不加任何前缀声明的变量。
2、实例变量:在函数中以this前缀修饰的变量。
3、静态变量:在函数中以函数名修饰前缀的变量。
注:JavaScript对象不能访问它所属类的静态属性。
14、函数的参数处理:与java相似,JavaScript的参数传递也全部是值传递方式(存在疑问?)。
函数的参数类型:弱类型语言接受参数应该先判断参数类型,并判断参数是否包含了需要访问的属性、方法后在进行逻辑判断
if (typeof person == 'object' && typeof person.age == 'number') 或者 if (p instanceof Person)
15、JavaScript中对象的本质上是一个关联数组,想java中的map数据结构。有一组key-value组成。因此当访问某个对象的属性时可以obj.propName或obj[propName]
当对象的属性名是变量时(即fieldName是一个自定义的变量)只能采用object[fieldName]的方式访问对象属性;如用object.fieldName形式JavaScript会直接访问object对象的fieldName属性结果就是undefined
var person = [name:"hwzhang",age:22];var str = "name";person.str是不正确的需要用person[str]访问
for (propName in p){//遍历Person对象的属性
document.writeln('p对象的' + propName
+ "属性值为:" + p[propName] + "<br />");
}
16、伪继承和prototype:JavaScript并没有提供真正的继承,当通过某个类的prototype属性动态增加属性或方法时,其实质是对原有类的修改,而不是真正产生一个新的子类,所以这种机制依然只是一种伪继承。
对于需要在类定义中定义方法的情形,尽量避免直接在类定义中定义方法,这样可能造成内存泄漏和产生闭包(简单理解为变量除了作用范围仍然存在)。比较安全的方式通过prototype属性来增加属性或方法。
17、创建JavaScript对象:JavaScript的对象只是一种特殊的关联数组。JavaScript中创建对象大致有三种方式:
1、使用关键字new创建对象。
function Person(name, age){this.name = name; this.age = age;}
var p1 = new Person();//JavaScript支持空参数特性,次数name和age均为undefined
var p2 = new Person("hwzhang",22);
2、使用Object创建即时对象。
var myObj = new Object();//这是一个没有属性和方法的空对象
myObj.name = "hwzhang"; myObj.age = 22; myObj.info = function(){};//为对象动态添加属性或方法
myObj.info=methodName;将已有函数添加为对象方法时,不能在函数名后添加括号。一旦添加括号将表示调用函数,则不是将方法本身赋给对象的方法,而是将函数返回值赋给对象
3、使用JSON语法创建对象。
创建对象格式:var obj = {name:"hwzhang",age:22};
创建数组对象格式:var array = ["hwzhang","mygu"];
-->
分享到:
相关推荐
JavaScript学习笔记JavaScript学习笔记
个人Javascript学习笔记 精华版 个人Javascript学习笔记 精华版 个人Javascript学习笔记 精华版
JavaScript学习笔记,javascript基础知识,基础语法整理.pdf
javascript 学习笔记
挺好的javascript 学习笔记javascript 学习笔记javascript 学习笔记javascript 学习笔记javascript 学习笔记
javascript学习笔记
JavaScript学习笔记.pdf
javascript学习笔记讲解版参考.pdf
javaScript学习笔记总结.docx
JavaScript 学习笔记集和代码库JavaScript 学习笔记集和代码库JavaScript 学习笔记集和代码库JavaScript 学习笔记集和代码库JavaScript 学习笔记集和代码库JavaScript 学习笔记集和代码库JavaScript 学习笔记集和...
JavaScript学习笔记归纳.pdf
javascript学习笔记发放1,以后陆续发布。