3.1 数据类型划分
使用关键字typeof:查看方法 typeof name 或者 typeof(name)
3.1.1 简单数据类型(值类型)
四种: 字符串 数字 布尔 未定义 空
String Number Boolean undedined null
3.1.2 复杂数据类型(引用类型)
object 、function、Array、Date、RegExp、Error……
3.2 字面量
固定的值,让你从“字面上”理解其含义。
数值字面量
var age=18; //数值字面量,18为字面量值
3.3 简单数据类型介绍
3.3.1 Number
1.进制
进制包括: 2进制、 8进制(011)、10进制、16进制 (0xA)、制等……
2.浮点数
因为精度丢失问题,所以不判断计算后的两个浮点数是否相等。
3 .数值范围
由于内存的限制,ECMAScript 并不能保存世界上所有的数值
最小值:Number.MIN_VALUE,这个值为:5e-324
最大值:Number.MAX_VALUE,这个值为:1.7976931348623157e+308
无穷大:Infinity
无穷小:-Infinity
3 .NaN
a)NaN 非数值(Not a Number 的简写)
console.log("abc"/18);//结果是NaN
Undefined和任何数值计算为NaN;
NaN与任何值都不相等,包括NaN本身
b)isNaN():任何不能被转换为数值的值都会导致这个函数返回true
(isNaN 译为是否符合一个标准,什么是标准呢?不是一个数字的标准,如果符合了那么就 不是一个数字,不符合就是一个数字)
isNaN(NaN); //true
isNaN("bule"); //true
isNaN(123); //false
3.3.2 String
1.字面量定义方式
用引号时,可单可双,唯独不可一单一双。可用.length看有几个字符
var name="zhangsan";
var name='zhangsan';
var name='zhangsan"; //错误 单引号和双引号要成对出现
2.转译
总结:无法输出的字符,先输出/,再输出("、\、换行等……)
3.字符串不可变
在内存中不会立刻消失,只能二次赋值,原有的字符在一定的时间内被垃圾回收器回收。
4.字符串拼接
如果两个变量都是字符串,无论是否包含数字,只要是拼接,那么在前一个后面添加后一个字符串。(+与-情况不同,详情参考数据转换)
1.1.1 Booblean
1.Boolean类型有两个字面量:true和false,区分大小写。(大写不对)
虽然Boolean 类型的字面值只有两个,但 ECMAScript 中所有类型的值都有与这两个 Boolean 值等价的值
2.true
true、除0数字、“something”、Object(任何对象)为true
3.false
false、0 、“”、undefined 、null为false
4.if判断时会把()内的值强行转换成boolean类型进行判断。
1.1.1 undefined和null
null和undefined有最大的相似性。看看null == undefined的结果(true)也就更加能说明这点。但是null ===undefined的结果(false)。
不过相似归相似,还是有区别的,就是和数字运算时,10 + null结果为:10;10 + undefined结果为:NaN。
任何数据类型和undefined运算都是NaN;
任何值和null运算,null可看做0运算