JavaScript脚本数据类型
JavaScript脚本数据类型一、number 数字
(1)进制:十进制、八进制(前导0,有效序列0~7,超出范围 前导0被忽略后续数值以十进制计数)
(2)浮点数:小数点后至少一位;最高精度17位小数;存在舍入误差。
(3)数值范围:最小值Number.MIN_VALUE;最大值Number.MAN_VALUE;超出范围有正无穷(Infinity)
和负无穷(-Infinity),检测方法isFinite() ,超出范围为false,合法范围为true。
(4)NaN:非数值;与任何数值都不相等包括其自身;任何涉及NaN的操作都将返回NaN;
检测方法isNaN() 为false时 可转换为数值,为true时不能转换为数值。
(5)数值转换:
Number()
boolean 的转换 值true为1,值false为0;null 转化为0;underfined转化为NaN;String 只包含数字 转化为十进制数 前导0忽略,包含有效浮点格式转换为浮点数值 前导0忽略,包含有效16进制 转换为相同大小的十进制整数,空字符串转为0,其它格式字符串转为NaN;
parseInt()
忽略前置空格,直到找到第一个非空格字符,小数点不是有效数字;参数1是要解析的字符串,参数2是转换时所使用的基数。
parseFloat()
从第一个字符开始解析,遇到无效浮点格式后结束,只有第一个小数点有效,忽略前导0,十六进制数始终为0,没有小数点或者小数点后全是0转换为整数。
二、string 字符串
(1)特性:由0个或多个16位Unicode字符组成;单引号与双引号不能交叉使用;是被包裹在单引号或双引号内的,如果字符串的内容需要包含引号,就需要使用“\”符号进行转义;用.length属性访问长度。
(2)转义序列:\n(换行)、\t(制表符)、\b(空格)、\r(回车符)、\f(分页符)、\\(斜杠\)等。
(3)类型转换:
toString() 使用类型有number\boolean\string\object,参数 为number类型的数值基数;
eval() 计算字符串表达式的值并以数值形式返回。
var statement1 = 'He said "JavaScript is awesome!"'; var statement2 = "He said \"JavaScript is awesome!\"";
三、boolean 逻辑值
boolean类型的值是true和false。
一个值为
- 所有的对象都被当作 true。
- 当且仅当字符串为空时,该字符串被当作 false。
-
null
和 undefined 被当作 false。 - 当且仅当数字为零时,该数字被当作 false。
四、null 不存在
null是一种特殊类型,null代表的是一个值,用来表示尚未存在的对象,与其他编程语言类似。
五、undefined 未定义
undefined是一种特殊类型,undefined代表的是一个没有值被分配的状态。在使用了undefined关键字或者未定义值的时候undefined类型将被创建。只有一个值,即undefined。当声明的变量还未被初始化时,变量的默认值为undefined。
六、类型检查
// 检查各种不同的变量
var myFunction = function() {
console.log( "hello" );
};
var myObject = {
foo: "bar"
};
var myArray = [ "a", "b", "c" ];
var myString = "hello";
var myNumber = 3;
typeof myFunction; // "function"
typeof myObject; // "object"
typeof myArray; // "object" -- 注意!
typeof myString; // "string"
typeof myNumber; // "number"
typeof null; // "object" -- 注意!
if ( myArray.push && myArray.slice && myArray.join ) {
// 可能是一个数组
}
if ( Object.prototype.toString.call( myArray ) === "[object Array]" ) {
// 绝对是一个数组
// 这是最可靠的检查方法
// 去确认一个特定的值是否是数组对象
}