一、基本语法
ECMAScript基础概念如下:
1,区分大小写 。在ECMAScript中变量,函数名运算符及其他一切东西都是区分大小写的。
test不等于Test。
2,变量是弱类型的 。定义ECMAScript变量时只需使用var即可将它初始化为任意的值。
var color="red"; //一个String类型变量
var num=25; //一个Number类型变量
var visible=true; //一个Boolean类型变量
3,每行结尾的分号可有可无 。如果没有分号,ECMAScript自动将本行的结尾看作该语句的结束。
(最好的习惯是写上分号,否则部分浏览器无法运行)。
4,注释与java/C等相同 。当行注释为“//”,块注释为/*........*/。
//单行注释
/*多行
注释*/
5,括号代表代码块 。{...}之间的语句为一个代码块。
二、变量
基本规则:
1、首字母必须是字母,下划线(_)或美元符号($)。
2、剩余字符可以使下划线,美元符号或字母,数字。
命名规则(非强制性规则):
1、Camel标记法 。(首字母小写,剩余单词首字母大写)。
如var myTestVar。
2、Pascal标记法 。(首字母及剩余单词首字母全大写。)
如var MyTestVar。
3、匈牙利类型标记法 。(在变量名前附加一个小写字母说明该变量的类型)
如iNum(Integer型),sValue(String型),bStatus(Boolean型),oBox(Object型)等。
其他:
变量使用前可以不用声明(不是一个好习惯)。
三、变量类型
原始值与引用值:
1、原始值是存储在栈 中的简单数据段。
2、引用值(即对象类型值)是存储在堆 中的对象。(存储在变量出的值是一个指针,指向存储对象的内存处)。
原始类型(5个):
Undefined,Null,Integer,String ,Boolean.
使用typeof 测试变量类型(原始类型):
实例:
1 var sTemp="test String"
2 alert(typeof sTemp); //输出String
3 alert(typeof 95); //输出Number
4 alert(typeof null); //输出object
5 alert(typeof aaa); //未定义变量返回undefined
6 alert(typeof false); //输出Boolean
注意: 对象和NULL都会返回object。因为null被认为是对象的占位符。
(Undefined类型)
1、undefined指未初始化的变量,或无返回值的函数。
1 var oTemp;2 alert(typeof oTemp); //定义但未初始化
3 alert(typeof oTemp2); //未定义亦未初始化
4 function testFunc(){5 }6 alert(typeof testFunc());7
都将返回undefined。
注意:如果写成alert(typeof testFunc)将会返回function。因为这里返回的是该名称的类型而不是函数值。
2、未声明变量不能参与任何操作或运算。
1 var oTemp;2 alert(undefined==oTemp); //返回true
3 alert(undefined==oTemp2); //未声明的变量做比较返回“变量未定义”的错误信息
4 alert(oTemp "aa"); //返回“undefinedaa”
5 alert(oTemp2 "aa"); //返回“变量未定义”的错误信息
(Number类型)
1、所有整数可以被表示为十进制,八进制或十六进制。
var iNum=55; //十进制数据
var iNum=070; //八进制数据,在前面加一个0,070代表十进制56
var iNum=0xab; //十六进制数据,在数字前加0x,0xab代表十进制171
2、尽管所有整数可表示为八进制或十六进制,但所有数学运算都返回十进制。
如上述定义的变量用alert()输出时都是十进制数据。
3、要定义浮点数,必须包括小数点和小数点后的一位数字 。(如用1.0而不是1)
4、对于非常大或非常小的数,可以用科学计数法表示(数字加e或E,后加乘以10的倍数)。
var fNum=3.125e7 表示31250000,fNum1=3e-7表示0.0000003。
5、ECMAScript默认将具有6个或6个以上前导0的浮点数转换为科学计数法。
6、所有ECMAScript的数都必须落在Number.MAX_VALUE(约为1.79769E308)和Number.MIN_VALUE(约为5E-324)值之间。但计算生成的数值结果可以不落在这个范围之间。
7、可以调用isInfinite()判断一个数是否是一个有效数字。
isInfinite(Number.MAX_VALUE); //返回true
isInfinite(2*Number.MAX_VALUE); //返回false
8、一个特殊值NaN(非数) ,常发生在类型(String,Boolean等)转换失败时。
注意: 它与自身不相等。如alert(NaN==NaN)输出false。所以不推荐使用NaN本身,而使用isNaN来判断。alert(isNaN("blue"))输出true,alert(isNaN("123"))输出false