window.close()">关闭窗体
Ø引用JavaScript脚本
3.注释
Ø单行注释
“//”符号
//单行注释
Ø多行注释
“/*”和“*/”之间
/*
多行注释
*/
4.变量
Ø隐身定义:
直接给变量赋值
Ø显示定义:
使用var关键字定义变量
vara="haha";
b="abcd";
varup,down,left,right;
Ø变量命名
必须以一个字母或下划线”_”开始,后面字符可以是数字,字母
不能使用JavaScript的保留字
JavaScript区分大小写
JavaScript中重复定义同名变量是合法的,但后面的定义将覆盖前面的定义
varv1="123";
varv1="456";
5.作用域
Ø全局变量:
函数之外的变量为全局变量,在任何位置,包括函数内部,缺省var关键字定义的变为均为全局变量
Ø局部变量:
定义在函数内部的变量称为局部变量
函数中可以使用全局变量,函数外部不能使用函数中定义的局部变量
当函数中定义的局部变量与全局变量同名时,局部变量将覆盖全局变量。
函数中将使用函数中定义的局部变量,而不是用函数之外定义的全局变量,也不会影响函数之外的全局变量。
varname="张三";
functionshowname()
{
varname="李四";
document.write(name);
}
showname();
document.write(name);
输出李四张三
如果去掉函数中的var?
函数中定义的局部变量,该变量作用域为函数中任何地方,不仅仅包括变量定义语句之后,也包括变量定义语句之前
varname="张三";
functionshowname()
{
document.write(name);
varname="李四";
}
showname();
document.write(name);
输出undefined张三
6.数据类型
JavaScript支持5种基本数据类型和3中引用数据类型(复合数据类型)
Ø基本数据类型:
number(数值)
string(字符串)
boolean(布尔)
undefined(未定义)
null(空)
Ø数值:
数值类型包括整数和浮点。
JavaScript中所有的数值均被做为浮点数处理,均以64位浮点数的形式进行表示
varn1=1;
varn2=0.123;
varn3=0xff;
varn4=1.23e14;
NaN表示不是一个数字
Ø字符串
由单引号或双引号括起来的一串字符
vars1="asda";
vars2='asdasd';
“\”转义字符
Ø布尔
true和false
Øundefined和null
当一个对象属性不存在或者变量定义后从未赋值时,返回undefined
判断一个变量是否是undefined
varaaa;
if(typeof(aaa)=="undefined")
{
}
typeof是一个一元运算符,以字符串形式返回变量的类型名称
null类型只有一个值null,该变量没有保存有效的数值、字符串、布尔、数值或对象。
可以通过给一个变量赋null来清除变量的内容。
Ø引用数据类型(复合数据类型)
Array数组Object对象Function函数
Ø数组
JavaScript数组中可以存储任何一种数据类型。
组成数组的每一个数据称为数组的一个数组元素
通过数组名称和索引访问数组元素,数组名+[]
索引由0开始
数组特点
⏹不要求数组元素的类型,元素可以是任何数据类型,同一个数组个元素数据类型可以不同
⏹数组长度可以动态变化
⏹不支持多维数组,但数组元素可以是数组
Ø定义数组
通过Array()构造器定义
varnames=newArray(3);
这个3没有什么用,因为数组长度可以动态变化
varnames=newArray();
names[0]="hahaha";
names[1]=1234;
names[2]=true;
varnames=newArray("hahaha",123,true);
直接复赋值
varnames=["hahaha",1234,true];
数组元素
vararr=newArray(9);
arr[0]=1;
arr[1]=1;
arr[8]=1;
//arr[2]到arr[7]undefined类型
元素索引是自动增加的非负整数,索引不能为其他类型的值,如果采用其他类型的值作为元素索引,实际上是为数组对象创建一个属性
vararr2=newArray();
arr2['name']="test";
//为数组对象arr2创建了一个名为name的属性
varn=arr.name;
varn1=arr['name'];
数组嵌套
vararr3=newArray
(2);
arr3[0]=12;
arr3[1]=[1,2,3,4];
数组长度
JavaScript中,数组又被作为对象处理,length属性,表示数组长度
7.数据类型转换
JavaScript是弱数据类型语言,定义变量是并没有严格要求,不需要定义变量的数据类型,对变量赋值操作时,根据值的类型来确定变量的数据类型。
一个变量并不只局限于一种数据类型,变量的数据类型可以在程序中发生变化
Ø自动转化
Ø布尔转化
varname="aa";
if(name){alert("asdasdas")}
varname2;
if(name2){alert("asdasdas")}
Ø其他类型转布尔
原数据
转化得到的布尔值
数值型
值为0或NaN,false,否则true
字符串
字符串为null时false,其他true
Undefined
false
Null
false
对象
true
Ø布尔转数值或字符
转化后类型
转化得到的值
数值
true时1,false时0
字符串
true时”true”,false时”false”
Ø其他类型转字符串
类型
转化得到的值
数值型
数值字符串或字符串”NaN”
布尔
“true””false”
undefined
“undefined”
null
“null”
对象
如果有toString()方法,则使用此返回值,否则”undefined”
Ø强制转化
parseInt():
用于在字符串中由左至右提取一个整数值,遇到非数值时停止提取。
parseFloat():
用于在字符串中由左至右提取一个浮动数值,遇到非数值时停止提取。
当第一个字符为非数字字符时,函数返回NaN
Øtypeof
返回数据类型对应的字符串
类型
返回字符串
数值型
“number”
字符串
“string”
布尔
“boolean”
Undefined
“undefined”
Null
“null”
对象
“object”
函数
“function”
8.运算符
Ø运算符
算术运算符
+、-、*、/、%、++、--、-(取反)
Ø关系运算符
==、!
=、===、!
==、>、<、>=、<=
等于==
vara=5;
if(a=="5")
{
alert("ok");
}
全等运算符
===,JavaScript不会进行数据类型转化,只有当2个数据类型与值相同时,比较结果才是true
if(a==="5")
{
alert("ok2");
}
引用对象、数组、函数比较时,当他们引用的对象、数组、函数相同时,比较结果true,否则false
当运算数都是null或undefined时,===成立
Ø逻辑运算符
&&、||、!
、~、<<、>>、>>>
Ø条件运算符
表达式?
m:
n
Ø点运算符
用户访问对象的属性或方法
9.语句
Ø赋值语句
=
Ø函数调用
用户自定义的函数,直接通过函数名调用,而JavaScript内建对象函数、需要使用对应对象通过”.”运算符进行调用
functiontestfun()
{
return"abc";
}
document.write(testfun());
window.close();
Øif语句
if(条件)
{
}
elseif(条件2)
{
}
else
{
}
Øfor循环语句
for(初始化;条件判断;条件更新)
{
}
for(nameinarr)
{
}
每次循环时取对象属性的名称,或数组元素的索引,而不是值
functiontestfun()
{
vararr=["123",23,true];
for(nameinarr)
{
alert(name);
}
}
testfun();
functiontestfun()
{
for(nameinnavigator)
{
document.writeln(name);
document.writeln(":
");
document.writeln(navigator[name]);
document.writeln('
');
}
}
testfun();
Øwhile循环语句
while(条件)
{
}
Ødowhile循环
do
{
}
while(条件)
Ø循环控制
break
continue
Øswitch分支语句
switch(参数)
{
case条件1:
代码块1
break;
case条件2:
代码块2
break;
case条件3
代码块3
break;
}
变量或表达式结果可以是数值型或字符型
Øwith语句
用户简化对象的使用。
JavaScript内部使用”.”运算符访问对象的元素、属性和方法,通过with可以将对象名提出来,访问元素、方法、属性时,对象名可以省略。
for(nameinnavigator)
{
with(document)
{
writeln(name);
writeln(":
");
writeln(navigator[name]);
writeln('
');
}
}