一.JS的数据类型
JS中的值,无论是字面量还是变量,都有明确的类型
- 数据类型分类(以基本数据类型为主)
- Number 数字类型
- 不区分整数、浮点数、特殊值,都是 Number 类型
- String 字符串类型
- 所有的字符串都是 String 类型
- undefined undefined类型
- ndefined本身就是一个数据,表示未定义,变量只声明不赋值的时候,值默认是 undefined
- Boolean 布尔类型
- Boolean 字面量:只有 true 和 false 两个字面量的值,必须是小写字母
- 计算机内部存储:true 为 1,false 为 0
- null null类型
- null 本身就是一个数据
- 从逻辑角度,null 值表示一个空对象指针
- 如果定义的变量准备在将来用于保存对象,最好该变量初始化为 null
- Number 数字类型
- Object 对象类型(后续详细讲解)
HTML中
控制台中
二.数据类型的检测
- 为什么要有数据类型检测?
- JS语言是一门动态类型的语言,变量并没有一个单独的数据类型,而是会随着内部存储数据的变化,数据类型也会发生变化
- 变量的数据类型,与内部存储数据有关
- 将来使用变量时,需要知道内部存储的数据是什么类型,避免程序出错
- 数据检测方式
-
检测方式:在 typeof 后面加小括号执行,将要检测的数据放在小括号内部
-
任何数据都能准确检测出结果的方法:Object.prototype.toString.call
-
三.数据类型转换(转数值 / 转字符串 / 转布尔)
A.转数值
-
Number(数据)方法
a. 转型函数Number()可以用于任何数据类型,将其他数据类型转为数字
b. 字符串:纯数字字符串转为对应数字,空字符串和空白字符串转为0,非空非纯数字字符串转为NaN
c. 布尔值:true转为1,false转为0
d. undefined:转为NaN
e. null:转为0
2. parseInt()方法:字符串转整数方法
a. 对浮点数进行取整操作:对数字取整直接舍弃小数部分,只保留整数
b. 将字符串转为整数数字:将字符串转为整数数字,也包含取整功能
c. 字符串中,必须是纯数字字符串或者数字字符开头的字符串,才能转换为正常数字,且只取整数部分
d. 如果不是数字打头的字符串,会转换为NaN
3. parseFloat()方法:字符串转换点数方法
a. 将字符串转为浮点数数字
b.满足浮点数数字字符必须在字符串开始,如果不在开始返回值都是NaN
B.转字符串
-
用toString 方法转换
a. number ,boolean 类型类型 可以调用
b. undefined , null 不能使用 toString 方法
c. 如果想将 undefined 或者 null 转换为 string 类型
1. 可以通过 + '' 的方式 2. String(变量) -
+ 号拼接字符串方式 : num + “” ,当 + 两边一个操作符是字符串类型,一个操作符是其他类型的时候,会先把其他类型转换成字符串再进行字符串拼接,返回字符串
C.转布尔
- Boolean(变量)方法
- 转型函数Boolean()可以用于任何数据类型,将其他数据类型转为布尔类型的值
- 转为false:NaN、0、“”空字符串、null、undefined
- 转为true:非0 非NaN数字、非空字符串
四.运算符
1. 什么是运算符?
* 也叫操作符,是 JS 中发起运算最简单的方式,例如: 5 + 6
* 表达式的组成包含操作数和操作符,表达式会得到一个结果,然后用结果参与程序
2. JS 运算符分类
- 算数运算符(
+/-/*///%)- 运算顺序与数学中的运算顺序一致,先乘除取余,后加减,有小括号先算小括号
- 赋值运算符(
=/+=/-=/*=//=/%=) - 比较运算符(
>/</>=/<=/==/===/!=/!==)- 比较结果只会返回一个布尔类型值,true 或者 false
- 逻辑运算符(
&&/||/!) - 自增自减运算符(
++/--)
a. 算术运算符
包含:- + * / % 用于表达式计算
b. 赋值运算符
包含:= += —= *= /= %=(a +=10 相当于 a=a+10)
用于给变量赋值
c. 比较运算符
包含:> < >= <= == ===
返回值为true 或 false
- == 相等运算 使用==来比较两个值时,值的类型不同,则会自动转换为相同的类型,然后在比较
- != 不相等运算 用来判断两个值是否不相等,如果不相等返回true,否则返回false(自动类型转换)
- === 全等运算 用来判断两个值是否全等,并判断类型是否相等(如果两个值的类型不同,直接返回false)
- !== 不全等运算 用来判断两个值是否不全等(如果两个值的类型不同,直接返回true)
d. 逻辑运算符(重点)
包含&& || !
- &&(逻辑与/逻辑且)
-
有假则为假 -
console.log(true && false) -
左侧为真时,返回右侧的值 -
console.log(false && true) -
02. || (逻辑或)左侧为假时,返回左侧的值 -
有真则为真 -
console.log(true || false) -
左侧值为真时,返回左侧值 -
console.log(false || true) -
03. !(非)左侧值为假时,返回右侧值 -
返回值为true 或 false -
console.log(!5) //false -
console。log(!!5)//true
e. 自增自减运算符
包含 ++ --
- 自增 ++
-
++a :先加一后参与运算 -
02. 自减 --a++ :先参与运算后加一 -
--a :先减一后参与运算 -
a-- :先参与运算后减一