1、特殊值 Infinity(超出最大的范围)和NaN(not a number)
2、特殊数据类型:
·无定义数据类型(undefined):var x=undefined;
·空值(null):var x=null;
3、不像C或者C++,内存必须手动释放,Javascript不要求手动释放内存(跟Java相同),它使用一种称为无用存储单元收集(garbage collection)的方法。最常使用的回收算法是标记和清除无用存储单元。
4、JavaScript是一种松散类型、动态类型的语言。声明变量时无需指定数据类型,在执行过程中,JavaScript会根据需要进行自动类型转化。如,当传递给document.write()一个数字是,JavaScript会将其转化成与之等价的字符串表示。
5、对象转换为逻辑值时为true。
6、JavaScript中的数值包括整数呵浮点数,所有数值都是以双精度浮点型来表示。整数范围-2^53到2^53。。
7、字符串转化为逻辑值时:长度大于0为true,如下例子:
<script type="text/javascript">
<!-- <![CDATA[
var x = "false";
if(x){
alert("字符串的x,因为长度非0,所以转换成逻辑值是true");
}
//]]-->
</script>
运行结果:
8、javascript的数据类型分为基本数据类型和复杂数据类型。
基本数据类型:数值型、字符串型、Boolean、undefined、null
复杂数据类型:主要有对象、数组与函数。
9、由于浏览器对JavaScript代码的执行顺序是从左至右,故在加号(+)连接的表达式中,遇到字符串型数据之前,所有出现的数值型数值(或可被自动转换为数值的数据)仍被作为数值来处理。如下面两个例子:
1)、
<script type="text/javascript">
<!--<![CDATA[
var w = 5;
var x = 20;
var y = "注意之前的内容";
var z = true;
alert(w+x+y+z);
//]]-->
</script>
运行结果:
2)、
<script type="text/javascript">
<!--<![CDATA[
var w = 5;
var x = 20;
var y = "注意之前的内容";
var z = true;
alert(""+w+x+y+z);
//]]-->
</script>
运行结果:
11、在if语句中,表达式,不为0,都为true,如下的赋值表达式:
<script type="text/javascript">
<!--<![CDATA[
var a = 2012;
var b = 1515;
if(a= b){
alert("a=b:true");
}else{
alert("a=b:false");
}
//]]-->
</script>
运行结果:
但是把var b = 1515;改为var b = 0;结果就相反了。
避免出现把“==”写成“=”这种错误的方法:把常量写在运算符左边,变量写在右边。因为赋值语句不允许常量写在赋值表达式的左边,所以程序会报错。
12、!=、==和!==、===(要求类型相同),看下例子:
<script type="text/javascript">
<!--<![CDATA[
a= (2012 != 2012);
b= (2012 != "2012");
b1= (2012 == "2012");//不同类型会自动转化为同一类型
c= (2012 !== 2012);
d= (2012 !== "2012");
d1= (2012 === "2012");//必须类型也要相同
alert("2012!= 2012 "+a+"\n"+
"2012!= \"2012\" "+b+"\n"+
"2012== \"2012\" "+b1+"==不同类型会自动转化为同一类型\n"+
"2012!== 2012 "+c+"\n"+
"2012!== \"2012\" "+d+"\n"+
"2012=== \"2012\" "+d1+"===必须类型也要相同"
);
//]]-->
</script>
运行结果:
13、字符串是不变的,在JavaScript为了提高效率,在复制和传递字符串是使用的是引用,但在对字符串进行比较时使用的却是值,如下例子:
<script type="text/javascript">
<!--<![CDATA[
var s1 = "noting_gonna";
var s2 = "noting_gonna";
var s3 = "noting_" + "gonna";
if(s1== s2 && s2 == s3)
alert("字符串比较时使用值进行比较");
else
alert("字符串比较时使用引用进行比较");
//]]-->
</script>
运行结果: