04 数据类型

107 阅读5分钟

解释型语言和编译型语言

计算机不能直接理解除机器语言以外的语言,所以必须要把程序员所写的程序语言翻译成机器语言才能执行程序,程序语言翻译成机器语言的工具叫做翻译器

翻译器翻译的方式有两种:

1、编译 : 代码执行之前进行编译,会生成中间代码 eg java

2、解释 :运行时进行及时翻译,并立即执行 eg :js

区别:翻译的时间点不同

编译 就像请客吃饭,得把所有菜做完了,才能吃

而 解释就像吃火锅,涮多少吃多少

弱类型语言和强类型语言

弱类型语言

弱类型语言 : 就是不需要特别定义数据类型的语言

也就是说,当某一个变量被定义类型,那么该变量可以根据环境变化自动的进行转换,不需要强制类型转换

强类型语言

而 强类型语言 : 就是一旦某一个变量被定义类型了,那么若不经过强制类型转换,那么,它永远是该数据类型 (java,python...)

强弱类型 判断核心

对 ‘强弱类型’ 判断的核心是 ‘不同类型的变量是否允许进行隐式转化’

强类型语言 : 不对变量的类型进行隐式转换 ,所以python属于强类型语言

弱类型语言 : 对变量的类型进行隐式转化 ,

关键字,保留字,标识符

标识符

开发人员为 变量,属性,函数,参数取的名字

标识符 不能做关键字或者保留字

关键字

js已经使用的字,不能再当标识符了

保留字

预留的关键字,就是现在虽然不是关键字,但未来可能会成为关键字

为什么需要数据类型

因为 不同数据所需要占有的存储空间是不同的,为了便于把数据分成所需内存大小不同的数据,充分利用存储空间,于是定义了不同的数据类型

js属于 一种弱类型或者动态语言

js 的变量数据类型 是只有程序在运行过程中,根据等号右边的值来确定的

动态语言

是指 在运行时 可以改变其结构的语言 eg :javascript ,python...

js是动态语言,变量的数据类型是可以变化的

image.png

静态语言

在运行时 ,不可以改变结构的语言 eg : java 、 c 、 c++

数据类型的分类

简单数据类型

number 数字型

默认 : 0

包括整型和浮点型

数字型进制

最常见的有 二进制、八进制、十进制、十六进制

在js中 八进制前面加 0 ; 8进制数范围 : 0~7

image.png

十六进制前面加 0x ; 16进制数范围 : 09和AF

image.png

数字型范围

最大值 : MAX_VALUE

image.png

最小值 : MIN_VALUE

image.png

无穷大 Infinity

image.png

无穷小 -Infinity

image.png

非数字 NaN

image.png

isNaN 判断非数字

若是 数字,返回 false ; 若不是数字,返回 true

image.png

boolean 布尔型

默认 : false

值 : truefalse

布尔型在参与 加法运算中,true : 1 ; false :0 来看

string 字符串型

默认 : “”

得用 单引号 或者 双引号 引起来

字符串嵌套

要么单引号嵌套双引号,要么双引号嵌套单引号

image.png

字符串转义符

必须以 \ 开头的 ,才是转义符

\n 换行

image.png

image.png

\ \ 斜杠

image.png

image.png

\ ' 单引号

image.png

image.png

\ " 双引号
\t tab缩进

image.png

image.png

\b 空格

字符串长度 length

长度 : length

image.png

字符串拼接 +

多个字符串可以进行拼接

image.png

image.png

注 : 只有拼接中 存在字符串型,那么最后的结果就是字符串型

image.png

undefined 就是说 不确定是什么类型

默认 : undefined

说明 : 声明了变量a 但是没有给值,所以此时就是 undefined

就是声明 未赋值 ,就是undefined

image.png

image.png

undefined和字符串相加

image.png

image.png

undefined和数字相加

一个不确定数据类型的值和数字型相加 结果是 NaN (not a number)

image.png

null 空值

默认 : null

说明 : var a = null  手动给a设置了null

null和字符串相加

image.png

null 和 数字相加

因为一个啥也没有的变量和数字相加 就等于数字

image.png

复杂数据类型

后面会学

获取变量类型 typeof

image.png

特殊的 null的类型是 object

image.png

注 : 使用prompt 取过来的是 字符型

数据类型的转换

把一种数据类型 转为 另一种数据类型

转为成 数字型

方法 :

1parseInt(变量) !!
2parseFloat(变量) !!
3Number() 强制类型转换
4、- * / 隐式转换  

parseInt() (整型)

转为整型

image.png

若 变量是 字符串形式,那么转为整型时,会看首字母是否是数字,若是则一直到非数字结束

image.png

若首字母就不是数字类型,那么直接返回NaN

image.png

parsefloat() (浮点类型)

除了 会转为浮点型,其他和转为整型差不多

image.png

Number() 强制类型转换

image.png

利用算数运算 - * / 隐式转换

image.png

转换成 字符型

方法 :

1、变量.toString()
2String(变量)
3、加号拼接字符串 !!

变量.toString()

image.png

控制台中 黑色表示 字符串 ,蓝色表示数字

image.png

String(变量)

image.png

加号拼接字符串 也叫隐式转换

image.png

转为布尔型

Boolean()

只有代表 空,否定的值会被转为 false ,如 '',0,null,undefined,NaN ;其他全部为 true