一、数字和字符串
(一)区别
功能不同
① 数字是数字,字符串是字符串
② 数字能加减乘除,字符串不行
③ 电话号码是字符串类型,不是数字
2.存储类型
① JS中,数字是用64位浮点数的形式存储的
② JS中,字符串是用类似UTF-8形式存储的
二、数字怎么存储
(一)二进制
1. 十进制转二进制
31转二进制
31=0* 2^5 + 1* 2^4 +1* 2^3 +1* 2^2 +1* 2^1 +1* 2^0;
//只要试0和1即可
2.二进制转十进制
100011=2*2^5+2*2^1+2*2^0
//每一位乘以2的n次方
(二)十六进制转二进制
0123456789ABCDEF 记住 8 4 2 1
011110001011010 = 3C5A
011 | 1100 | 0101 | 1010
2*1+1*1=3 8*1+4*1=12 4*1+1*1=5 8*1+0*4+1*2+1*0=10
3 12 5 10
3 C 5 A
拓展
HEX 十六进制
BIN 二进制
OCT 八进制
DEC 十进制
三、字符怎么存储
(一)用0~127表示所有字符
0表示结束字符 48~57表示数字符合
10表示换行 65~90表示大写字母
13表示回车 97~122表示小写
32表示空格 127表示删除
33~47表示标点
(二)中文
1.国标2312 不含生僻字,中日韩等
用0000-FFFF表示汉字,16位两个字节一个汉字
2.GBK国际扩
3.万国码(Unicode)
①优点:全世界通用
②缺点:两个字节不够用,每个字符要用三个及以上字节
四、数据类型
(一)简介
表示数据的类型型号
(二)变量的数据类型
1. JS是弱类型语言,无定义类型变量会被自动归类
> JS的变量数据类型只有程序在运行过程中,根据等号右边的值来确定
let a=2; //a的数据类型是number
let b="我"; //b的数据类型是字符串
2. JS具有动态类型,意味着相同的变量可作不同类型
var x=10; //x是数字型
x='pink'; //x变为字符型
(三)数据结构分类
简单数据类型
Number 数字型,包含整型,浮点值等
String
Boolean
Undefined var a; //a没有给值
NULL var a=null; //a为空值
symbol 符号,新加的数据类型
(1)Number 64位浮点数
1.类型
整数1小数0.1科学计数法1.23e4八进制在数字前面加0表示八进制0123或11123或0o123
十六进制前面加0x或0X表示16进制
2.特殊值
Infinity无穷大
console.log(Number.MAX_VALUE)
-Infinity负无穷小NaN无法表示的数字
(2)字符串String
1.类型
注意嵌套,外双内单,外单内双
单引号'你好'双引号"你好"
2.转义符
\n换行\\斜杠\\t缩进\b空格
3.字符串长度length
- string.length 字符串长度
- string[index].length 从0开始
(3)Boolean 布尔
true1false0
(4)NULL 和 Undefinded
Undefinded未定义数据类型,和数字相加,最后结果是NaNNULL空值,和数字相加结果为数字
五、变量声明
三种声明方式
var a=1;
let a=1; //新的声明方式
const a=1; //const声明时必须赋值,且不能更改
六、获取数据变量类型
1.typeof
var num=10;
console.log(typeof num);
//prompt取的值是字符型的
var age = prompt('请输入年龄');
console.log(age); //输入18
console.log(typeof age); //String
七、数据类型转换
(一)转为字符串
1.toString()
var num=1;
alert(num.toString());
2.String() 强制转换
var num=1;
alert(String(num));
(二)转为数字型
1.parseInt(string)
//整数
parseInt('78')
parseInt('78',10) //10表示十进制,可写可不写
2.parseFloat(string)
//浮点
parseFloat('78.21')
3.Number()强制
Number('12')
4.JS隐性转换
'12'-0
(三)转换为布尔型
Boolean(x);
//代表空的值会转为false,如'',0,NaN,Null,Undefinded,其余为true