JavaScript 编程基础
一、数据类型
 数据类型指的是值的类型,有如下:
 1、数值型:整数、浮点数;
  整数是由数字、正负号、或0所构成,可以用十进制、八进制和十六进制来表示。
整数
解释
12
一个十进制整数
0238
一个十进制整数(因为有8),即238
0237
一个八进制整数,等于十进制数159
0XFF
一个十六进制整数,等于十进制数255
-0X2E5
一个十六进制整数,等于十进制数-741
  浮点数是可以有小数部分的数字值,只能采用十进制,表示形式有普通形式和指数形式(E后面指数部分的位数不能大于3,而且必须是整数,如23E43211.2E2.5等都是不合法的)。
浮点数
解释
4.12
一个十进制数4.12
0.123
一个十进制数0.123
.123
一个十进制数0.123
5.34e5
表示5.34*105
312E4
表示312*104
 
 2、字符串值:是由0个或多个字符组成的序列,它可以包括大小写字母、数字、标点符号或其他可以显示字符以及特殊字符,也可以包含汉字。在JS中,字符串通过在其首尾添加成对的双引号("")或单引号('')来说明。
字符串
解释
"javascrip"
字符串为:javascrip
'你好!'
字符串为:你好!
""
空字符串
" "
由空格构成的字符串
"'Hi'"
字符串为:'Hi'
'"Hi"'
字符串为:"Hi"
 
 3、布尔值:也就是逻辑值,它只有两个值 true false,分别表示逻辑“真”和逻辑“假”。在JS中,也可以用整数0表示false,而非0表示true
 4、空值:就是null,一种特殊的关键字,表示没有值,用于定义空的或不存在的引用。要注意,空值不等同于空字符串或0。当使用对象进行编程时可能会使用这个值。
 5、未定义值:就是undefined,表示变量已经声明,但没有赋值;或对象不存在。
 6、特殊字符串(转义字符):显示无法输入的字符串,使用\符号开头的字符。
转义字符
字符
\b
退格
\f
换页
\n
换行
\r
返回、回车符
\t
制表符(Tab
\'
单引号('
\"
双引号("
\\
反斜线(\
编程实现如下页面:
 
二、数据类型的转换
 1、如果表达式中使用加号(+)运算符,JS自动将数值转成字符串。
表达式
"小张工资"+1000
小张工资1000
"20"+5
205
 2、如果表达式中使用其他运算符,则自动先将字符串转成数值,再进一步运算。
表达式
"30"/6
5
"20"-"10"
10
表达式
布尔+字符串
布尔被强制转换为字符串truefalse
布尔+数字
布尔被强制转换为数字10
 4、指定转换
  eval(字符串):转化为相对应的数值。
  parseInt(字符串,[底数]):转换成指定底数的数值。
  parseFloat(字符串):转换成浮点数值。

三、常量
  JS用常量来表示一个固定的值。这所以叫做“常量”,是与“变量”作区分,它是一个常态性的值,不会改变的值。
 1、数组常量
  所谓的“数组常量”是由一些组件,称作“数组组件”所构成,使用的时候要用中括号[]括起,不同的组件中间用逗号(,)隔开。
  job=["教师","学生"]
  job[0]="教师"
  job[1]="学生"

  job=["教师","学生",,"IT"]
  job[0]="教师"
  job[1]="学生"
  job[0]=""
  job[1]="IT"

四、变量
  在程序执行过程中,值不断发生变化的量。从用户角度看,变量就是存取信息的基本单元,从系统角度看,变量是计算机内存中的一个存取空间。它有两个基本特征,即变量名(标识变量的名称)和变量值(变量所存储的数据)。变量的值可以(通过赋值)发生变化,不过在为变量赋予新值之前,它会一直保持它原先所存储的数据。
  绝大多数程序都会使用变量,要使用好变量,必须明确变量的命名、变量的类型以及变量的作用域。
 1、变量取名
  变量名必须以字母或下划线(_)开始,可以含有(0-9A-Za-z_),不能有(空格、+-、,等);
  不能使用JS中的保留字作为变量名,如var,new,int,goto等等;
  变量名区分大小写
 2、变量声明
  要声明一个变量,可以使用关键字 var ,在这个关键字之后的字符串将代表一个新的变量名,多个变量名之间可以逗号隔开。
  var job

  var name,age,job
  var i=p=1
  var name="张三",age="23"
 3、变量赋值
  s=12

  text="你好!"
 4、变量的作用域
  全局变量:定义在所有函数体之外,作用范围是整个函数
  局部变量:定义在函数体之内,只对该函数是有效的
例:
<Script>
var JS = "JavaScript"; //JS是全局变量
test();
function test() {
 var VBS = "VBScript"; //VBS是局部变量
 document.write( "<LI>" +JS);
 document.write( "<LI>" +VBS);
}
document.write("<LI>" + JS);
document.write("<LI>" + VBS);
</Script>

五、运算符与表达式
  运算符是指定计算操作的一系列符号,也称操作符。运算符用于将一个或几个值进行计算而生成一个新值,对其进行运算的值称为算子或操作数。JS常用运算符包括算术运算符、逻辑运算符、比较运算符、字符串运算符、赋值运算符、条件运算符和其他运算符。
  单目运算符:只需一个操作数。如i++ 等;
  双目运算符:“操作数1+ 运算符 + 操作数2”组成,即由两个操作数和一个运算符组成。如10+20"小张"+"小王"等;
  三目运算符:条件运算符。
  表达式是运算符和操作数组合而成的式子。表达式具有值,这个值是对操作数实施运算符所确定的运算后产生的结果。可分为算术表达式、字符串表达式、赋值表达式以及逻辑表达式等。
 1、算术运算术
运算符
解释
+
?10+5等于15
-
减或单目减 10-5等于5-(-3)等于3
*
/
%
取模 即取两数相除的余数 10%3等于1
++
1运算 X++ ++X
--
1运算 X-- --X
 2、比较运算符
  对操作数进行比较,然后返回一个布尔值 truefalse
运算符
解释
>
小于
<
大于
>=
大于等于
<=
小于等于
==
等于
===
严格等于
!=
不等于
!==
严格不等于
 写出程序执行结果:<小于号,>大于号
3、逻辑运算符
运算符
解释
&&
逻辑与,只有当两个操作数的值都为时true,结果才为true
||
逻辑或,只要两个操作数中其中之一为true,结果就为true
逻辑非,取反。表达式!3>4 结果为
写出程序执行结果:
 
4、字符串运算符
 5、赋值运算符
运算符
解释
=
给变量赋值? a=3
+=
将左边的变量递增右边表达的值 a+=b,相当于a=a+b
-=
将左边的变量递减右边表达的值 a-=b,相当于a=a-b
*=
将左边的变量乘以右边表达的值 a*=b,相当于a=a*b
/=
将左边的变量除以右边表达的值 a/=b,相当于a=a/b
%=
将左边的变量用右边表达的值求模 a%=b,相当于a=a%b
写出执行结果:
 6、条件运算符
  一种三目运算符,格式如下:
  条件?结果1:结果2
  执行结果:首先判断条件,若条件成立,则表达式值为结果1,若条件不成立,则表达式值为结果2
写出执行结果:
 7、其它运算符
运算符
解释
.
成员选择运算符,用于引用对象的属性和方法.,document.write
[]
下标运算符,用于引用数组元素.,job[2]
()
函数调用运算符,用于函数调用.,job()
delete
删除一个对象的属性或一个数组索引处的元素.,delete job[2],表示删除job 数组的第3个元素
New
生成一个对象的实例., new Date
Typeof
返回表示操作数类型的字符串值.,typeof(true)的值为Blloean
This
代表当前对象
void
void运算符不返回任何数值
 8、运算符的优先级
类型
运算符
括号
()[]
一元
! ~ - ++ -- typeof void delete new
算术
* / % + -
移位
<< >> >>>
比较
< <= > >= == != === !==
位逻辑
& ^xor |
逻辑
&& ||
条件
?:
赋值
= += -= *= /= %= <<= >>= >>>= &= ^= |=
逗号
写出执行结果:
<script language=javascript>
var a;
a = 3+4*(5+3)%2&&3<4
document.write("3+4*(5+3)%2&&3<4 = "); document.writeln(a);
</script>
 9、表达式中的类型转换
二、JS程序的基本流程
  顺序结构:按照语句的书写顺序从头到尾依次执行。
分支结构
三、IF语句
 1if 语句
  基本形式:

  if(条件)
    语句1
  else
   语句2
例:
<script language=javascript>
var x,y,max;
x = parseFloat(prompt("x=:","0"));
y = parseFloat(prompt("y=:","0"));
if (x>y)
max=x;
else
max=y;
alert("最大值是:" + max)
</script>
 2、没有else部分的if 语句
  基本形式:
  if (条件) 语句;
例:
<script language="javascript">
function Click()
{
if(event.button==2)
{
alert('您无权查看右键!');
javascript程序设计软件}
}
usedown=Click;
//将自己的处理函数注册
</script>
 3if语句的嵌套
  基本形式:
  if (条件1)
   语句1
  else if (条件1)
   语句2
  else
   语句3

 注:
  使用语句组:如果程序语句不保一行,必须用大括号括起来。
  if语句的书写是比较灵活的,if语句的各个部分既可以分行书写,也可以在同一行中书写。
如:
if(x>y) max=x;else max=y;

if(x>y) max=x;
else max=y;

if(x>y)
max=x;else max=y;
建议格式:
if(x>y) max=x;else max=y;

if(x>y)
  max=x; //缩进2~4个空格
else
  max=y; //相同。

四、switch 语句
  switch语句根据表达式的值,选择不同的分支执行。
switch(表达式)
{
case 常数表达式1:语句1;break;
case 常数表达式2:语句2;break;

case 常数表达式n:语句n; break;
default: 语句n+1; break;
}

编程实现2

case "A":错!香港是中国的特别特政区;
case "B":"错!广州是中国南部的大都市;
case "C":对!北京是中国的首都,在中国北方;
case "D":错!上海是中国东部的大都市";
default:"选择错误!只能选填字母 ABCD";

循环结构
五、for 语句
 for语句的格式是:
  for(初值表达式;循环判定式;更新表达式) 循环体语句
 执行流程
  1.计算初值表达式;
  2.计算循环判定式(即,条件表达式)的值;
  3.如果循环判定式的值为true就执行步骤4,否则退出for语句;
  4.执行循环体语句,之后再计算更新表达式;
  5.重复执行步骤234,直至退出循环。
例:
<script language=javascript>
var i,j
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
{
if(j>1) document.write("\t");
document.write(j+"*"+i+"="+j*i);
}
document.writeln();
}
</script>

六、while 语句
 格式:
  while(循环判定式) 循环体语句
 执行流程:
  1.计算循环判定式的值;
  2.如果循环判定式的值为true,则执行循环体语句,否则退出循环;
  3.重复执行步骤1,2,直至退出循环。
七、do while 语句
 格式:
  do 循环体语句 while(循环判定式);
 执行流程
  1.执行循环体语句;
  2.计算循环判定式的值;
  3.如果循环判定式的值为true,则转去执行步骤1,否则退出循环。
例:
<script language="javascript">
var target=66
var number=0
do {
number=prompt("输入数字",number)
if(number==null || number==target)
break
if(number>target){
document.write(number+"太大!<br>")
continue
}
else
if(number!=target){
document.write(number+"太小<br>")
continue
}
}while(true)
if(number==null)
document.write("猜不出来了吧!告诉你答案为:"+target+"<br>")
else
document.write("恭喜你,猜对了!答案为:"+target+"<br>")
</script>

八、在循环中使用break continue 语句
 break语句可跳出整个循环语句。
 continue跳过循环体中未执行的语句,结束本次循环,跳至求循环判定式,决定是否继续循环。
 区别:continue语句只结束本次循环,而break语句则结束整个循环。
例:
<Script>
var i = 5;
while ( i > 0 ) {
  if ( i == 3 ) break;
  document.write("i = " ,i ,"<BR>");
  i--;
}
</Script>
<Script>
var i = 5;
while ( i > 0 ) {
  i--;
  if ( i == 3 ) continue;
  document.write("i = " ,i ,"<BR>");
}
</Script>

九、循环的嵌套
 在一个循环语句的循环体中也可以包含另一个循环语句,这称为循环的嵌套。
 双重循环
 多重循环
例:
<script language=javascript>
var i,j
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
{
if(j>1) document.write("\t");
document.write(j+"*"+i+"="+j*i);
}
document.writeln();
}
</script>

十、调试程序
 错误分类:一类是语法错误;另一类是语义错误。
 所谓调试程序就是排除程序中的错误。
 排除语法错误
  语法错误是指代码不符合JavaScript的语法规则。
  当浏览器执行或制作工具(FrontPage)预览含有语法错误的页面时,它会提示出现了什么错误以及出错的代码在哪一行。
例:
<script language=javascript>
var x,y,max;
x = parseFloat(prompt("x=:","0"));
y = parseFloat(prompt("y=:","0"));
if x>y
max=x;
else
max=y;
alert("最大值是:" + max)
</script>
 排除语义错误
  语义错误是代码符合语法规则,但执行结果不符要求。
  原因:
  1、没有弄清楚问题
  2、算法有误
  3、流程控制语句使用不当或者变量使用不当