目录
3.3parseInt()和parseFloat()转换规则
1、数据类型
1.1数据类型分类
- 数据类型分为两大类:基本数据类型、复杂数据类型(引用数据类型)
- 基本数据类型:number(数值)、boolean(布尔值)、string(字符串)、undefined(未定义)、null(空)、symbol(唯一)、bigint(大整型)
- 复杂数据类型:object(对象类型)
1.2typeof检测数据类型
- 使用typeof关键字可以检测数据类型,语法是:typeof 要检测的变量名,例:
var a = "hello";
console.log(typeof a); //检测出来a为字符串
- typeof还会检测出一些特殊值:typeof检测null得到object,检测function得到function
- typeof检测的结果都放在字符串中返回给我们了
2、undefined和null类型
2.1undefined类型
- undefined类型只有一个值就是undefined,一般不会对一个值设置undefined,而是出现错误的时候,才会被打印出来
undefined的触发场景:
- 声明变量没有赋值,这个变量的值是undefined
- 函数调用没有返回值,返回undefined
- 函数被调用的时候没有传递对应的参数,这个参数值为undefined
- 获取对象不存在属性时,返回undefined
-
判断一个值是否是undefined: 方法一:typeof检测(typeof 变量名 === "undefined") 方法二:直接判断变量是否等于undefined(变量名 === undefined)
2.2null类型
- null类型只有一个值,为null
使用场景:
定义的变量准备在将来用于保存数据,最好将该变量初始化为null而不是其他值
把一个对象变成垃圾对象
函数不想传递某个参数的时候用null占位
原型链终点
- 判断一个值是否为null:把变量和null进行全等比较(变量名 === null)
2.3undefined和null区别
- undefined和null属于两种不同类型
- undefined隐含着意外的空值,null隐含着意料之中的空值。因此设置一个变量、参数为空的时候,建议使用null而不是undefined
3、number类型
3.1值的种类
- 十进制数值(整数、浮点数、负数)
- 二进制数值,0b开头
- 八进制数值,0o开头(0开头)
- 十六进制的数值,0x开头
- 科学计数法
- Infinity / -Infinity: 向负无穷和正无穷计算的时候都是Infinity或-Infinity;向0靠拢的时候大多都是NaN;在项目中多数出现Infinity可能因为某个除数为0
- NaN: 特点:NaN和任何数值计算都是NaN;和任何值比较都是false
3.2isNaN()方法
- isNaN方法可以接受任意类型的值,并强制转为number类型,并检测最终结果是不是NaN,如果是则返回true,否则返回false
3.3parseInt()和parseFloat()转换规则
- parseInt是一个全局方法,可以把值转化为整数
- parseFloat是一个全局方法,可以把值转化为浮点数,而第二个小数点视为非法
- 解析过程:先解析位置0处的字符,如果不是有效数字(或者+ -)则直接返回NaN;如果位置0处的字符是数字,或者可以转换为有效数字,则继续解析位置1处的字符,如果不是有效数字,则直接返回位置0处的有效数字;按从左往右的顺序,逐个分析每个字符,直到发现非数字字符为止
parseInt的基模式:
- parseInt中可以书写其他进制类型的字符串,并转为10进制展示,parseFloat没有这个功能
- parseInt可以接受第二个参数,代表第一个参数的写法是多少进制,并最终转为十进制表示
- parseInt的第二个参数如果写0,默认代表10进制
- parseInt的第二个参数如果写1,没有1进制,所以返回NaN
3.4其他类型转number
- 字符串是纯数字则直接转,如果有其他字符则为NaN
- 布尔值的true为1,false为0
- undefined为NaN
- null为0
- object大多数转为NaN(空数组为0,只有一个值的数组根据这个值来转)
3.5其他转number的方法
- “ - ”、“ * ”、“ / ”运算结果都要转为number
- 最常用一元运算符(在被转的值前添加+)可以把一个值转为number
4、String类型
4.1表示
- JavaScript字符串(String)就是由零个或多个字符组成的字符序列。零个字符表示空字符串
- 字符串有三种表示方式:双引号、单引号、反引号
字符串注意事项:
- 字符串中存在单引号、双引号、反引号等字符,字符串外层需要使用和内部符号不同的引号包裹
- 字符串中可以使用 \(反斜杠)进行转义,把特殊含义的字符转为普通字符,把普通字符转成有特殊含义的字符
4.2string类型拼接
- 使用加号:如果加号两边有任意一边是字符串,则最终会把两边的字符串拼接到一起得到一个新的字符串
- 使用反引号插值语法:在反引号字符串的内部想要添加变量,可以把变量书写在${}中
4.3长度和下标
- 字符串都有一个length属性,表示当前字符串的长度
- 字符串的每一个字符都有一个下标,下标从0开始一次递增
- 可以通过下标拿到对应的字符,如:str[n]
4.4String方法其他类型转string
- number类型先转为正常值,再加引号转为字符串
- boolean类型直接加引号转为字符串
- undefined和null直接加引号转为字符串
- 数组:去掉中括号,加引号转为字符串
- 对象:直接转为[object object]
toString方法转字符串:
- String方法是全局的方法,直接调用,把被转换的值放在String中
- toString方法是string、number、boolean、数组、对象等都有的方法(null和undefined没有toString方法)
- 给当前某个值直接拼接一个空字符串,也可以转字符串
5、boolean类型
- boolean类型也被称作布尔值类型,包含true、false两个值(true为真,false为假)
- true和false常用于做判断使用
使用Boolean方法把其他类型转为boolean类型:
- number:非(0和NaN)为true,0和NaN为false
- string:非空为true,空为false
- undefined和null都是false
- 对象类型全是true