计算机程序是通过操作值(value)来运行的,而承载操作值的类型被称为数据类型(datetype) 。javascript 允许使用3中基本数据类型--数字、字符串和布尔值,此外还支持两种小数据类型null(空)、undefined(未定义)。
数字(Number)
在javascript中是最基本的数据类型,所有的数字都是由64位浮点数表示的。
javascript支持十进制、八进制、十六进制的直接量,但是在在对于八进制和十进制直接量上,一个以“0”开头的直接量数字,javascript不知道到底是要解析成八进制还是十进制,所以尽量不要使用“0”开头的整数直接量。
由于javascript数字类型使用浮点类型表示的,而浮点类型长度是有限的,可能会存在数据不准确。 数字类型语法:
[digits][.digits][(E|e)[(+|-)]digits] 例如:3.14 6.01e23
javascript对于数字的运算除了+、-、*、/,Math对象里复杂的数字计算函数。在对于数字转成字符串可以再数字后面直接+空字符串,还可以使用String()函数 var sting_val = String(number);,还可以使用number.toString();方法。toString()方法是有一个参数的,不填是默认10为基数,可选是(2-36)例如:
<html> <head> <title>Number</title> </head> <body> <input type="button" value="click" onclick="test();"> <script> function test(){ var n = 17; binary_sting = n.toString(2); //Evaluates to "10001" octal_string = "0" + n.toString(8); // 021 hex_string = "0x" + n.toString(32); // Ox11 alert(hex_string); } </script> </body> </html>
javascript在1.5增加了3个数字到字符串的新方法,对于这3个方法都是四舍五入的。
toFixed():该方法是把一个数字转换成数字并且显示小数后指定的位数,小数后不以指数形式显示。
toExponential():该方法是把一个数字转化成指数形式。
toPrecision():使用指定的有意义的位数显示一个数字,如果有意义的位数还不够显示数字的整个整数部分,它就使用指数法表示。例子:
<html> <head> <title>Number</title> </head> <body> <input type="button" value="click" onclick="test();"> <script> function test(){ var n = 123456.789; var l = 123456; //alert(n.toFixed(0)); //123457 //alert(n.toFixed(2)); //123456.79 //alert(n.toExponential(1)); //1.2e+5 //alert(n.toExponential(3)); //1.235e+5 //alert(n.toPrecision(4)); //1.235e+5 //alert(n.toPrecision(7)); //123456.8 alert(l.toFixed(2)); //123456.00 } </script> </body> </html>javascript特殊数值的常量:
Infinity:表示无穷大的特殊值 NaN:特殊的非数字值(零除以零);Number.MAX_VALUE:表示最大的数字;Number.MIN_VALUE:可以表示最小的数字(近似到零)。
字符串(String)
是由Unicode字符、数字、标点符号等组成的序列。
对于字符串中的”\“具有转义的意思:\b:是退格符 \t:水平制表符 \n:换行符 \v:垂直制表符 \f:换页符 \r:回车符 \'':双引号 \':单引号 \\:反斜线符。
javascript字符串的使用:可以使用(+)连接字符串。 s.lenght:返回的是s字符串的长度。 s.charAt(number)、s.substring(1, 4)、s.indexOf('a')。
<html> <head> <title>String</title> </head> <body> <input type="button" value="click" onclick="test();"> <script> function test(){ var s = "11345"; //alert(5 + '5'); //55 //alert(s.length); //5 //alert(s.charAt(2)); //3 //alert(s.substring(2, 3)); //3 //alert(s.substring(2, 2)); //'' alert(s.indexOf('1')); //0 } </script> </body> </html>字符串转换成数字。自动转换 var product = "22" * "2"; var num = "12" - 0;
<html> <head> <title>String</title> </head> <body> <input type="button" value="click" onclick="test();"> <script> function test(){ alert('12' - '1'); //11 alert('12' * '2'); //24 alert('12' / '2'); //6 } </script> </body> </html>函数构造转换: var number = Number(string_valeu); 只能是以10为基数的数字有效,允许开头和结束是空白。
<html> <head> <title>String</title> </head> <body> <input type="button" value="click" onclick="test();"> <script> function test(){ alert('5.6' + 5);//5.65 alert(Number('5.6') + 5);//10.6 } </script> </body> </html>
灵活转换:parseInt()和parseFloat()。这些函数可以从字符串开始处转换和返回任何的数字,忽略或舍去非数字部分。
parseInt()只会截取整数部分,parseFloat()会截取整数和小数部分。
parseInt(“11”, 2)可以有基数可以将字符串转成对应的值。如果数据不能转换返回值NaN。
<html> <head> <title>String</title> </head> <body> <input type="button" value="click" onclick="test();"> <script> function test(){ //alert(parseInt('aa123.45asd1223')); //NaN //alert(parseInt(' 123.45asd1246')); //123 //alert(parseInt('11', 2)); //3 alert(parseFloat('123.56asd')); //123.56 } </script> </body> </html>
布尔值(boolean)
布尔值一般以两种形式存在,true、false。一般用于if的判断中。
<html> <head> <title>Boolean</title> </head> <body> <input type="button" value="click" onclick="test();"> <script> function test(){ var b = true;// true; 0:false if (b){ alert("true"); } else { alert("false") } } </script> </body> </html>