JS数据类型

156 阅读3分钟

一、数字和字符串

(一)区别

功能不同

① 数字是数字,字符串是字符串

② 数字能加减乘除,字符串不行

③ 电话号码是字符串类型,不是数字

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 布尔

  • true 1
  • false 0

(4)NULL 和 Undefinded

  • Undefinded 未定义数据类型,和数字相加,最后结果是NaN
  • NULL 空值,和数字相加结果为数字

五、变量声明

三种声明方式

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