JavaScript 的基本语法
JavaScript的标识符
标识符是指JavaScript中定义的符号,例如,变量名、函数名、数组名等。
标识符可以由字母、数字、下划线(_)和美元($)
注意:标识符不能以数字开头
JavaScript大小写敏感
JavaScript程序代码的格式
以分号(;)结束
JavaScript程序的注释
① // 单行注释
② /* .... */ 中可以嵌套"//",但是/* */不能相互嵌套
基本数据类型与常量
整型常量
a、十六进制:以0x或者0X开头,例如:0x8a、0Xff
b、八进制:以0开头,例如:0123
c、十进制:例如:12345
实型常量(即浮点型):12.32、5E7、4e59
布尔值:true 和 false
字符串型常量:"a book of JavaScript"、"abc"、"a"、""。
字符串中的特殊字符,需要以反斜杠(\)后跟一个普通字符来表示,例如:\r、\n,\b,\',\",\\
null 常量 变量已经有值而且值为空
undefined 常量:变量不存在或者类型未定义
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="TEXT/HTML; Charset=GB2312">
4 <title> 未定义类型 </title>
5 </head>
6 <body bgcolor="white">
7 <script language = JavaScript>
8 <!--
9 var number;
10 alert(number + " abc");
11 //-->
12 </script>
13 </body>
14 </html>
输出结果为:undefined abc
变量
定义一个变量,系统就会为之分配一块内存,程序可以用变量名来表示这块内存中的数据。
JavaScript为弱类型,所以不能指定变量类型,系统会自动指定类型
声明变量要使用Var关键字
例如:var name
声明变量的同时为其赋值
例如:var name=222222222;
对已赋值的变量赋予一个其他类型的数据
var name2 = "222";
name2 = 333;
name2 = name2 + 1; // name2等于334
变量可以不先声明直接使用
例如:x=1234
运算符
算术运算符
+ 加法运算符或正值运算符 例如,x+5,+6。
+ 还能实现多个字符串的相连,而且也能将字符串与其它类型的数据类型相连成一个字符串,条件是该表达式中至少有一个字符串,例如:"x"+123的结果为"x123"。
% 求模运算符(算术中的求余)a%b结果中的符号取决于a 的符号。
1 var a = 104;
2 var b = a%10;
3 var c = a%(-10);
4
5 var x = -104;
6 var y = x%10;
7 var z = x%(-10);
8
9 alert("b = " + b + "; c = " + c + "; y = " + y + "; z = " + z);
运行结果:
赋值运算符:
= 将一个值或表达式的结果赋给变量
例如:x=3
+= 将变量与所赋的值相加后的结果在赋给变量
比较运算符
== 当左边操作数等于右边操作数相等时返回True
逻辑运算符
&& 逻辑与 两边只能是比较运算的结果(布尔型)
|| 逻辑或
! 逻辑非
位运算符
& 只有参加运算的两位都为1,运算的结果才为1,否则就为0。
| 只有参加运算的两位都为0,运算的结果才为0,否则就为1。
^ 只有参加运算的两位不相同,运算的结果才为1,否则就为0。
>>(右移运算符): 将左边操作数在内存中的二进制数据右移右边操作数指定的位数,左边移空的部分补1
相对于除2
1 alert(8 >> 1); // 将8右移1位
2
3 /*
4 0000 1000(8)
5 右移1位 0000 0100(4)
6 */
7
8 alert(-8 >> 1);
9 /*
10 负数在内存中以补码形式保存
11 原码:0000 1000
12 反码:1111 0111
13 补码:1111 1000 (补码为原码取反加1)
14
15 右移:1111 1100 (得到补码形式的结果)
16 反码:0000 0011
17 0000 0001 (减1,相对于加负1)
18 原码:0000 0100 (-4)
19
20 */
运行结果:8右移1位得到4,-8右移1位得到-4
<< (左移运算符):右边空位补0
相对于乘2
>>> 将左边操作数在内存中的二进制数据右移右边操作数指定的位数,左边移空的部分补0
1 var a = 0x80000000 >> 1;
2 alert(a.toString(16));
3
4 var b = 0x80000000 >>> 1;
5 alert(b.toString(16));
6 /*
7 8: 1000
8 >> c: 1100 -40000000 右移1位,左边补1
9 >>> 4: 0100 40000000 右移1位,左边补0
10
11 */
12
输出结果为:-40000000 和 40000000
注意:移位操作不能改变操作数的值!
1 var b = 8;
2 alert(b >> 1); // 结果为:4
3 alert(b); // 结果为:8
4 b = b >> 1; // 将b右移1位后的结果赋给b
5 alert(b); // 结果为:4
输出结果:先输出4,然后输出8,最后输出4
posted on 2006-09-17 13:01
CoderDream 阅读(359)
评论(0) 编辑 收藏 所属分类:
JavaScript