JavaScript 今天你是什么类型的靓仔
———————————————————————————————————————————————————————————
须知基础知识须知
「JS中的数据类型【重】」
———————————————————————————————————————————————————————————
「JS中的数据类型【重】」
- Number,数字类型:整数、小数
- string,代表字符串类型,字符串类型赋值使用单引号或者双引号都行
- boolean,表示对错的数据类型,只有两个结果:true/false 1/0
boolean类型的本质是0(false)和1(true),因此boolean类型可以直接和number类型进行数学运算 - null
- undefined
null和undefined:null是一个数据,undefined是一个数据类型
null是一个object类型的数据,代表一个空对象,undefined是指未明确的数据类型也就是未定义的数据变量
注意:数学运算符号除过+之外其他的运算符不能用作于两个非数字类型或者boolean类型之间运算,+号作用:在数字或者boolean类型之间起到数学加法运算作用
在字符串与其他数据类型之间起到连接字符串的作用
一个等号是赋值,两个等号是比较数值,三个等号是比较结构(数据类型、数据值)
为什么需要数据类型
在计算机中,不同的数据所需要占据的存储空间是不同的,为了便于把数据分成所需内存大小不同的数据,充分利用存储空间,因此定义了不同的数据类型。数据类型能够代表数据的特征和属性
注意:JS中的数据类型,是js代码在运行时,由js引擎根据=后面的数据值的数据类型来明确的
数据类型分类
简单数据类型:Number,String,Boolean,Undefined,Null
复杂数据类型:object
简单数据类型
简单数据类型 | 说明 |
---|---|
Number | 数字类型,包含整数值和小数值 |
String | 字符串类型,js中字符串单引号双引号都可以 |
Boolean | 布尔类型,表示对错的类型,true/false,本质是1/0 |
Undefined | 声明变量未提供值 |
Null | 声明变量,变量的值为Null |
-
Number,数字类型可以给整数,可以给小数,同时也可以给二进制、八进制、十进制、十六进制的数据
-
数字类型三个特殊值
- Infinity:代表无穷大,大于任何数值
- -Infinity:代表无穷小,小于任何数值
- NaN:Not a Number,代表一个非数值
-
isNaN:函数用来判断一个数值是否为非数字,返回false即为是数字,返回true即为是非数字
-
String:字符串的引号中可以写任何文本,因为Html标签中的属性后面使用双引号给值,因此当写行内JS时,如果遇到字符串则变得非常麻烦需要使用双引号和单引号之间实现嵌套
-
转义字符
在字符串中有一些特殊的字符,例如在双引号中需要再嵌套双引号。这时候就需要用到转义字符。
js中转义字符以\开头,一般情况下字符串中遇到\,引擎就会默认将\和后面的一个或者若干个字符进行组合当做转义字符执行,并不一定是标准的转义字符,如果不是标准的转义字符,会将\处理掉
转义字符 说明 \n 换行 \\ 斜杠\ \’ 单引号’ \" 双引号" \t TAB缩进 -
字符串长度,双引号中的每一个独立的内容叫做一个字符,字符串的长度是指这个字符串中的字符个数,字符串变量的属性length可以直接拿到字符串的长度,转义字符\和后面字符合为一个字符计算
-
字符串连接,多个字符串之间可以使用+连接起来,加号左右两边只要有一个数据是字符串那么都是进行字符串连接的作用
-
布尔类型:本质是Number1和0,如果将Boolean类型和数字之间进行运算则就是数学运算
-
undefined和Null,一个声明后没有给赋值的变量默认值是undefined,如果是undefined在进行相连或相加时要注意
字符串+undefined=字符串undefined
数字+undefined=NaN
一个声明变量并赋值Null。如果进行对Null相连或相加时要注意:
字符串+Null=字符串Null
数字+Null=数字
查看数据类型
typeof()
数据类型转换
常用的数据类型转换有三个
- 转换为字符串类型
- 转换为数字类型
- 转换为布尔类型
转字符串类型
- toString(),将数据直接转为字符串类型,括号中可以填写一些转换的条件
- String(),可以使用String函数直接转换为字符串类型
- 使用加号拼接字符串方式进行转换(隐式转换)
转换数字类型
-
parseInt(),将字符串类型转成整数数值,如果字符串并不是纯数字,只要是数字开头则会将开头的数字部分转换出来
【将一个数字开头的字符串中的整数部分转换出来】
-
parseFloat(),将字符串类型转成浮点型数,如果字符串不是纯数字,只要是数字开头则会将开头的数字部分转换出来
【将一个数据转换为小数,必须保证这个字符串数据以小数点或者数字开头,从字符串中的第一个数字或小数字符开始往后转换,,直到遇到第一个非数字类型或着字符串结截止】
-
Number()强制转换函数,将String类型转为数值类型
-
js隐式转换(- , * , /)
转换为布尔类型
Boolean()函数,对于0,NaN,Null,undefined,“”转换结果都是false,其余转换结果皆为true
堆和栈
- 栈:由操作系统自动分配释放,存放在函数里的参数值、局部变量等数据,值类型数据最终保存在栈里面
- 堆:由程序员进行分配释放,如果程序员不释放,则会由系统的垃圾回收机制自动释放,引用类型数据最终保存在堆里面,但是引用类型的名称存储的是这个堆里面的一个地址
优缺点:
值类型:直接存储其数据值,调用速度快,存储数据量小
引用类型:直接用栈存储其数据的引用地址,数据存储在堆中,调用速度慢,存储数据量大