注:该文章会不断添加更新。
一、基本语法
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