JavaScript 和 Java 同样,也是有基本数据类型的。但也是有区别的。javascript
undefined、nulljava
Object、Array、Date 等测试
固定的值,让你从“字面上”理解含义code
数值字面量ip
var age = 18; //数值字面量,18为字面量
十进制内存
十六进制
var num = 0xA字符串
八进制string
var n = 5e-324;it
浮点数值的最高精确度是17位小数,在进行算术计算时,其精确度远远不如整数。console
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没法保存世界上全部的数值
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("是一个数字"); }
字符串字面量
var name = "zhangsan"; // "zhangsan"是字面量
字符串用引号引发,单引号和双引号是同样的。
获取字符的长度用length
var name="hukj"; alert(name.length); //4
console.log("\"Ancona\"");
\n 换行
\t 制表符
\b 空格
\r 回车
\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 类型有两个字面量:true 和 false;
var result = Boolean("a");
console.log(result); //true
Boolean 当为空字符串,0,NaN,null,undefined 时,为false;
undefined 是 Undefined 的字面量;表示变量未赋值。
var message; console.log(message);// undefined var a; //undefined if(a){ //false alert('有值') }else{ alert('无值') //显示 }
a未赋值为undefined,undefined在Boolean中转换为false;