数据类型
JavaScript 和 Java 一样,也是有基本数据类型的。但也是有区别的。
JavaScript中的数据类型
简单(基本、值)数据类型
- number
- string
- boolean
- undefined、null
复杂(引用)数据类型
- Object、Array、Date 等
查看当前变量的数据类型
- typeof name
- typeof (name)
数值字面量
字面量
固定的值,让你从“字面上”理解含义
数值字面量
var age = 18; //数值字面量,18为字面量
number类型
十进制
十六进制
var num = 0xA
八进制
浮点数
var n = 5e-324;
浮点数值的最高精确度是17位小数,在进行算术计算时,其精确度远远不如整数。
var result = 0.1+0.2 //结果不是0.3 而是0.300000000000000004
0.1+0.2 == 0.3 //false
0.1+0.3 == 0.4 //true
0.07 * 100 ;7.00000000000000001
想比较的话只能 0.1 * 10 ,然后 parseInt 转换,然后再相加比较。
永远不要测试某个特定的浮点数值是否相等。
数值范围
内存限制,ES无法保存世界上所有的数值
- 最小值:Number.MIN_VALUE,5e-324
- 最大值:Number.MAX_VALUE,1.7976931348623157e+308
- 无穷大:Infinity
- 无穷小:-Infinity
数值检测
NaN: not a number. 非数值
isNaN(); //是数字返回false;
console.log(parseInt("abc"));//NaN
console.log(parseInt("abc"/10));//NaN
var num = prompt("请输入一个数字")
if(isNaN(num)){
console.log("不是一个数字");
}else{
console.log("是一个数字");
}
String 类型
字符串字面量
var name = "zhangsan"; // "zhangsan"是字面量
字符串用引号引起,单引号和双引号是一样的。
获取字符的长度用length
var name="hukj"; alert(name.length); //4
转移符
console.log(""Ancona"");
换行
制表符
空格
回车
f 进纸
斜杠
' 单引号
" 双引号
字符串的不可变
var str ="hello";
str = str+"world";
console.log(str);
当执行第二行代码时,会在内存空间中开辟新的栈,然后通过垃圾回收机制来清理原来的str。这就是所谓的字符串不可变。
字符串拼接
var a ='100';
var b =100; //b中的 number:100 会自动转型为str
console.log(a+b); //100100
console.log(a-b); //0
Boolean 类型
Boolean 类型有两个字面量:true 和 false;
var result = Boolean("a");
console.log(result); //true
Boolean 当为空字符串,0,NaN,null,undefined 时,为false;
Undefined 类型
undefined 是 Undefined 的字面量;表示变量未赋值。
var message;
console.log(message);// undefined
var a; //undefined
if(a){ //false
alert('有值')
}else{
alert('无值') //显示
}
a未赋值为undefined,undefined在Boolean中转换为false;