第二章 JavaScript数据类型,常量与变量
1.JavaScript中支持数值、字符串和布尔值3中基本数据类型。
2.JavaScript中只有字符串数据类型,没有字符(char)数据类型,即使要标示单个字符,使用的也是字符串型,只不过该字符串型的长度是1.
3.在JavaScript中的数字不区分整型和浮点型,所有的数字都是以浮点型来表示的。JavaScript还支持两种特殊的数值,Infinity:当JavaScript中使用的数字大于JavaScript能表示的最大值时,JavaScript会将其输出为Infinity,即无限大的意思,当JavaScript中使用的数字小于JavaScript能表示的最小值时,JavaScript会将其输出为-Infinity.‚NaN:JavaScript中的NaN是“Not a Number”的意思,通常是在进行数学运算时产生了未知的结果或错误,JavaScript就好返回NaN,这代表数学运算的结果是一个会数字的特殊情况,如0除以0,JavaScript就会返回NaN.
4.JavaScript使用Number对象中的某些属性来表示特殊的数值,
1,Number.MAX_VALUE:用来表示JavaScript中的最大数值
2,Number.MIN_VALUE:用来表示JavaScript中的最小数值
3,Number.NaN:用来表示特殊的非数字值
④Number.POSITIVE_INFINITY:用来表示正无穷大的数值,即Infinity
⑤Number.NEGATIVE_INFINITY:用来表示负无穷大的数值,即-Infinity
5.JavaScript的复合数据类型,包括对象和数组两种。
6.对象其实就是一些数据的集合,这些数据可以是字符串型、数字型、布尔型,也可以是复合型,对象中的数据是已命名的数据,通常作为对象的属性来引用,例如一个超链接(Link)对象有一个text的属性,Link.text;对象除了拥有属性之外,还可以拥有方法,例如一个窗口(Window)对象有一个名为alert的方法,window.alert(message)
7.数组与对象一样,也是一些数据的集合,这些数据也可以是字符串型,数字型,布尔型或者是复合型,与对象不同,数组中的数据并没有被命名,即数组中的数据没有名称,因此不能用名称来引用该数据,在数组中每个数据都编了个号,这个号称数组的下标。
8.JavaScript的其他数据类型 ,函数,Null和Undefined.
9.JavaScript中提供了很多预定义的函数,如用于检测非数字值得isNaN()函数,用于计算平方根的Math.sqrt()函数等,var bFlag=isNaN(0/0); var x=Math.sqrt(100);
自定义函数 function mysun(x,y){ return x+y;} var a=mysun(2,13);
10.null是一个特殊的数据类型,其所代表的意思为“空”,需要注意,这个空并不代表0和空字符串,null代表没有值,不是一个有效的数值、字符串、也不是数组、对象、函数。
JavaScript区分大小写,Null、NULL不等同与null.
11.Undefined也是一个特殊的数据类型,只有定义了一个变量,但没有为该变量赋值,使用了一个并未定义的变量或者是使用了一个不存在的对象的属性时。
12.数据类型的转换
隐式类型转换:JavaScript是一种无类型的语言,这种“无类型”并不是指JavaScript没有数据类型,而是指JavaScript是一种松散类型,动态类型的语言,在JavaScript定义一个变量时是不需要指定变量的数据类型,这就使得JavaScript可以很方便灵活的进行隐式类型的转换(JavaScript会自动的将某一个类型的数据转换成为另一种类型的数据,规则:将类型转换的环境中应该使用的类型)。
数字类型:在字符串幻环境下可以隐式转换为“数字”;在布尔环境中可以隐式转换为true(如果是数字0,则隐式转换为false)
‚非空字符串:在数字环境下可以隐式转换为字符串中的数字(如字符串“123”可以隐式转换为数字123)或者NaN(如字符串“abc”隐式转换为数字则会返回NaN,布尔环境下可以隐式转换为true.
ƒ空字符串:在数字环境下可以隐式转换为0,在布尔环境下可以隐式转换为false
④字符串“true”:在数据环境下可以隐式转换为1,在布尔环境下可以隐式转化为true
⑤字符串“false”:在数字环境下可以隐式转换为0,在布尔环境下可以隐式转化为false⑥null:在字符串环境下可以隐式转换为“null”,在数字环境下可以隐式转换为0,在布尔环境下可以隐式转换为false
⑦NaN:在字符串环境下可以隐式转换为“NaN”,在布尔环境下可以隐式转换为false
⑧undefined:在字符串环境下可以隐式转换为“undefined”,在数字环境下可以隐式转换为NaN,在布尔环境下可以隐式转换为false
⑨true:在字符串环境下可以隐式转换为“true”,在数字环境下可以隐式转换为1
⑩false:在字符串环境下可以隐式转换为“false”,在数字环境下可以隐式转换为0
13.显示类型转换
数组对象、Date对象、Error对象、Number对象、Function函数可以使用toString()方法来将对象转换成字符串
<script type="text/javascript">
var arr=["javaScript","VBScript","JScript"];
document.write(arr.toString());
</script>
‚对象不能直接转换成数据型,如果要将对象转换成数字型数据,可以将其转换成字符串型数据再将字符串型数据转换成数字型数据
在JavaScript中可以使用Number()、Boolean()、String()函数来将数据转换成数据型、布尔型和字符串型
<script type="text/javascript">
var s="1";
var i=Number(s)+2;
document.write(i);
</script>
④数字型转换成字符串型,可以将其与一个空字符串相连。
<script type="text/javascript">
var s=123+"";
var str=""+123;
document.write(s);
document.write(str);
</script>
⑤字符串型转换成数字型,可以将其减0
<script type="text/javascript">
var s1="123";
var sa="123"-0;
document.write(sa);
</script>
⑥字符串型或数字型转换成布尔型,可以将其连续使用两次“!”运算符.
<script type="text/javascript">
var s2="true";
if(!!s2){
document.write(s2);
}
var s3=1;
if(!!s3){
document.write(s3);
}
</script>
14.JavaScript中的转义字符
15.变量类型 JavaScript是无类型的,这就意味着在JavaScript中的变量可以是任何一种数据类型。可以个一个变量赋不同类型的值。
16.在JavaScript中,使用一个变量之前,必须要定义该变量,只有在定义该变量之后,系统才会准备一个内存空间来存储该变量的值。使用关键字var来定义一个变量。
var x,X,_x,x_1; var x=”abc”;
17.变量一旦被定义之后,是不能再被删除的。
18.在JavsScript中可以重复定义变量,并且不会发生错误。
<script type="text/javascript">
var x=1;
document.write(x);
var x="text";
document.write(x);
</script>
19.变量必须要先定义后使用
20.虽然JavaScript不能读取未定义变量,但是JavaScript却可以给一个未定义的变量赋值,此时JavaScript会隐式定义该变量
<script type="text/javascript">
x="给未定义的变量赋值";
document.write(x);
</script>
21.隐式定义的变量默认为全局变量
22.JavaScript中只要再函数体内定义了局部变量,该局部变量就会在整个函数体内有效,而不是从定义局部变量的那行代码起效。
<script type="text/javascript">
var x1="这是一个全局变量";
function writeText(){
document.write(x+"<br>");
//undefined
var x="这是一个局部变量";
document.write(x+"<br>");
//这是一个局部变量
}
writeText();
</script>