JavaScript基础知识一
JavaScript 变量###
与代数一样,JavaScript 变量可用于存放值(比如 x=2)和表达式(比如 z=x+y)。变量可以使用短名称(比如 x 和 y),也可以使用描述性更好的名称(比如 age, sum, totalvolume)。
- 变量必须以字母开头
- 变量也能以 $ 和 _ 符号开头(不过我们不推荐这么做)
- 变量名称对大小写敏感(y 和 Y 是不同的变量)
提示:JavaScript 语句和 JavaScript 变量都对大小写敏感。
声明(创建) JavaScript 变量####
在 JavaScript 中创建变量通常称为“声明”变量。我们使用 var 关键词来声明变量:
var carname;
一条语句,多个变量####
您可以在一条语句中声明很多变量。该语句以 var 开头,并使用逗号分隔变量即可:
var name="Gates", age=56, job="CEO";
声明也可横跨多行:
var name="Gates",
age=56,
job="CEO";
Value = undefined####
在计算机程序中,经常会声明无值的变量。未使用值来声明的变量,其值实际上是 undefined。在执行过以下语句后,变量 carname 的值将是 undefined:
var carname;
重新声明 JavaScript 变量####
如果重新声明 JavaScript 变量,该变量的值不会丢失。在以下两条语句执行后,变量 carname 的值依然是 "Volvo":
var carname="Volvo";
var carname;
JavaScript 错误 - Throw、Try 和 Catch###
try 语句测试代码块的错误;catch 语句处理错误;throw 语句创建自定义错误。
JavaScript 测试和捕捉####
try 语句允许我们定义在执行时进行错误测试的代码块;catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块;JavaScript 语句 try 和 catch 是成对出现的。
语法#####
try
{
//在这里运行代码
}
catch(err)
{
//在这里处理错误
}
Throw 语句####
throw 语句允许我们创建自定义错误。正确的技术术语是:创建或抛出异常(exception)。如果把 throw 与 try 和 catch 一起使用,那么您能够控制程序流,并生成自定义的错误消息。异常可以是 JavaScript 字符串、数字、逻辑值或对象。
语法#####
throw exception
实例#####
本例检测输入变量的值。如果值是错误的,会抛出一个异常(错误)。catch 会捕捉到这个错误,并显示一段自定义的错误消息:
<script>
function myFunction(){
try{
var x=document.getElementById("demo").value;
if(x=="") throw "empty";
if(isNaN(x)) throw "not a number";
if(x>10) throw "too high";
if(x<5) throw "too low";
}
catch(err){
var y=document.getElementById("mess");
y.innerHTML="Error: " + err + ".";
}
}
</script>
<h1>My First JavaScript</h1>
<p>Please input a number between 5 and 10:</p>
<input id="demo" type="text">
<button type="button" onclick="myFunction()">Test Input</button>
<p id="mess"></p>
JavaScript 表单验证###
JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证。
被 JavaScript 验证的这些典型的表单数据有:
- 用户是否已填写表单中的必填项目?
- 用户输入的邮件地址是否合法?
- 用户是否已输入合法的日期?
- 用户是否在数据域 (numeric field) 中输入了文本?
必填(或必选)项目####
下面的函数用来检查用户是否已填写表单中的必填(或必选)项目。假如必填或必选项为空,那么警告框会弹出,并且函数的返回值为 false,否则函数的返回值则为 true(意味着数据没有问题):
function validate_required(field,alerttxt){
with (field)
{
if (value==null||value==""){
alert(alerttxt);return false
}else{
return true
}
}
}
下面是连同 HTML 表单的代码:
<html>
<head>
<script type="text/javascript">
function validate_required(field,alerttxt){
with (field){
if (value==null||value==""){
alert(alerttxt);
return false;
}else{
return true
}
}
}
function validate_form(thisform){
with (thisform){
if (validate_required(email,"Email must be filled out!")==false){
email.focus();
return false
}
}
}
</script>
</head>
<body>
<form action="submitpage.htm" onsubmit="return validate_form(this)" method="post">
Email: <input type="text" name="email" size="30">
<input type="submit" value="Submit">
</form>
</body>
</html>
E-mail 验证####
下面的函数检查输入的数据是否符合电子邮件地址的基本语法。意思就是说,输入的数据必须包含 @ 符号和点号(.)。同时,@ 不可以是邮件地址的首字符,并且 @ 之后需有至少一个点号:
function validate_email(field,alerttxt){
with (field){
apos=value.indexOf("@");
dotpos=value.lastIndexOf(".");
if (apos<1||dotpos-apos<2) {
alert(alerttxt);return false
}else{
return true
}
}
}
下面是连同 HTML 表单的完整代码:
<html>
<head>
<script type="text/javascript">
function validate_email(field,alerttxt){
with (field){
apos=value.indexOf("@");
dotpos=value.lastIndexOf(".");
if (apos<1||dotpos-apos<2){
alert(alerttxt);return false
}else{
return true;
}
}
}
function validate_form(thisform){
with (thisform){
if (validate_email(email,"Not a valid e-mail address!")==false){
email.focus();
return false;
}
}
}
</script>
</head>
<body>
<form action="submitpage.htm"onsubmit="return validate_form(this);" method="post">
Email: <input type="text" name="email" size="30">
<input type="submit" value="Submit">
</form>
</body>
</html>
JavaScript 对象####
访问对象的属性####
属性是与对象相关的值。访问对象属性的语法是:
objectName.propertyName;
这个例子使用了 String 对象的 length 属性来获得字符串的长度:
var message="Hello World!";
var x=message.length;
在以上代码执行后,x 的值将是:12
访问对象的方法####
方法是能够在对象上执行的动作。您可以通过以下语法来调用方法:
objectName.methodName();
这个例子使用了 String 对象的 toUpperCase() 方法来将文本转换为大写:
var message="Hello world!";
var x=message.toUpperCase();
在以上代码执行后,x 的值将是:HELLO WORLD!
创建 JavaScript 对象####
通过 JavaScript,您能够定义并创建自己的对象。创建新对象有两种不同的方法:
- 定义并创建对象的实例
- 使用函数来定义对象,然后创建新的对象实例
创建直接的实例#####
这个例子创建了对象的一个新实例,并向其添加了四个属性:
实例######
person=new Object();
person.firstname="Bill";
person.lastname="Gates";
person.age=56;
person.eyecolor="blue";
实例######
person={firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"};
使用对象构造器#####
本例使用函数来构造对象:
实例######
function person(firstname,lastname,age,eyecolor){
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;
}
一旦您有了对象构造器,就可以创建新的对象实例,就像这样:
var myFather=new person("Bill","Gates",56,"blue");
var myMother=new person("Steve","Jobs",48,"green");
Object 类型####
创建Object实例的方式有两种。第一种是使用new操作符后跟Object构造函数,如下所示:
var person = new Object();
person.name = "Nicholas";
person.age = 29;
另一种方式是使用对象字面量表示法。如下所示:
var person = {
name : "Nicholas",
age : 29
};
在这个例子中,左边的花括号({)表示对象字面量的开始,赋值操作符表示后面是一个值,所以左边花括号在这里表示一个表达式的开始。
然后,我们定义了name属性,之后是一个冒号,再后面是这个属性的值。在对象字面量中,使用逗号来分隔不同的属性,因此"Nicholas"后面是一个逗号。但是,在age属性的值29的后面不能添加逗号,因为age是这个对象的最后一个属性。在最后一个属性后面添加逗号,会在IE7及更早版本和Opera中导致错误。
在使用对象字面量语法时,属性名也可以使用字符串,如下面这个例子所示:
var person = {
"name" : "Nicholas",
"age" : 29
};
一般来说,访问对象属性时使用的都是点表示法,这也是很多面向对象语言中通用的语法。不过,在JavaScript也可以使用方括号表示法来访问对象的属性。在使用方括号语法时,应该将要访问的属性以字符串的形式放在括号中,如下所示:
alert(person["name"]); //"Nicholas"
alert(person.name); //"Nicholas"
从功能上看,这两种访问对象属性的方法没有任何区别。但方括号语法的主要优点是可以通过变量来访问属性。如果属性名中包含会导致语法错误的字符,或者属性名使用的是关键字或保留字,也可以使用方括号表示法。
var propertyName = "name";
alert(person[propertyName]); //"Nicholas"
person["first name"] = "Nicholas";
Array类型####
ECMAScript数组的每一项可以保存任何类型的数据。也就是说,可以用数组的第一个位置保存字符串,用第二位置来保存数值,用第三个位置来保存对象,以此类推。而且ECMAScript数组
浙公网安备 33010602011771号