1.number:
存储空间: 8字节二进制(整数4字节,浮点数-小数8字节)
1字节(Byte)=8位二进制数(Bit)
1KB=1024字节Byte
1MB=1024KB
将十进制数转二进制: n.toString(2);
eg:var age=110000;
console.log(age.toString(2));
2.string:
查看一个字的unicode号: str.charCodeAt();
数字0~9: 48~57
大写字母A~Z: 65~90
小写字母a~z: 97~122
汉字: \u4e00~\u9fa5 对应unicode号:19968-40869
转义字符: \
何时使用:
1. 当字符串中包含和js语言标点符号冲突的内容,用\将冲突的字符转为原文,不再按程序解析
2. 要表示特殊意义:
\n 换行 \t 制表符(空格) \u unicode------仅仅适用于js程序,即控制台显示,不能用document.write显示在页面
3.特殊情况: 路径中的\,将\换成/ ——强烈建议, 任何操作系统都认
3.boolean: 布尔类型: 只有两个值的类型: true/false
何时使用: 专门用于表示一个判断的结论
4.null: 空 让程序员手动清空一个变量
5.undefined: 空 由程序自动使用,为变量赋初值
6.数据类型间转化:
1.隐式转换
算数计算时,所有类型自动转换为number类型进行运算,true-->1,false-->0;其实是直接使用了number(x)这个函数转换成数字计算的,如果转不了,会自动返回NaN。
**特殊:+运算中,只要碰到string类型,则全部转换成string类型进行字符串拼接;
2.强制转化
程序员主动调用函数完成的数据类型转换,只要给定的数据类型不是想要的,且自动转换的结果也不是想要的,就要强制转换。
**注意:凡是从页面中获取的数据都为string类型,可以使用typeof来检测数据类型。
1.其他类型转number: 2种:
1. Number(x): 将x转为number类型
何时: 都是隐式转换,其实相当于自动调用Number(x),很少主动使用。
问题: 只能转换纯数字组成的字符串和bool类型
如果转不了: 就返回NaN
NaN: 不是一个数字的任何值 Not a Number
NaN参与任何运算结果只能是NaN
2. parseFloat/parseInt(str):将str转为number类型,自动去除"末尾"非数字字符
parseFloat可保留小数部分,parseInt 去掉小数部分
何时: 只要将字符串转number,首选parseFloat,如果确实需要去掉小数,才选parseInt,如果转不了,也返回NaN
强调: 参数应该是string类型
如果给定的值不是string类型,则先执行隐式转换,转为string类型,再转number
比如: parseFloat(true)
parseFloat("true")->NaN
2.其他类型转string: 2种:
1. x.toString() 将x转为字符串类型
x不能是null或undefined ——-不是万能
2. String(x) 将x转为字符串类型——-万能
其实,隐式转为string时,都是自动调用String(x)
3.其他类型转bool类型: 1种
Boolean(x)
规则: 只有5个值会被转为false:0, "", NaN, null, undefined
其余都转为true
其实, 隐式转为bool时,都是自动调用Boolean(x)