一、检测数据类型
- 在运算的过程中,有的数据不是我们自己写的
- 有可能通过运算得到的,有可能是别人给的
- 为了保证程序的正确运行,我们需要检测数据变量
关键字 typeof
+ 两种用法
1.typeof 变量
=>语法:typeof 要检测的变量
=>返回值(结果):以字符串的形式给你的变量数据类型
2.typeof (变量)
=>语法:typeof(要检测的变量)
=>返回值:以字符串的形式给你变量的数据类型
+ 两种语法的区别
1.typeof 只能检测紧跟着的一个变量
2.typeof()先运算小括号里面的结果,然后使用 typeof 去检测结果的数据类型
- typeof的返回值
=>注意:typeof 的返回值是一个 字符串
=>当两个typeof连用的时候,一定得到string
=>只能准确的检测基本数据类型
- 数值:number
- 字符串:string
- 布尔:boolean
- undefined:undefined
- null:object
二、运算符:
数学运算符:
- 进行数学运算的符号
1.+
=>有两个含义
=>字符串拼接
=>数学运算
console.log(1 + 2) 3
console.log(1 + '2') 12
2.-
console.log(3 - 2) 1
console.log(3 - '2') 1
3.*
console.log(2 * 3) 6
console.log(2 * '3') 6
4./
console.log(10 / 2) 5
console.log(10 / '2') 5
5.%
=>取两个数字的余数
=>被除数 / 除数 = 商 ...余数
=>得到不能被整除的部分
3 % 10 得到 3
10 % 3 得到 1
6.**取幂
=> a ** b 就是 a 的 b 次方
赋值运算符:
进行的数据赋值的符号(=)
(可以用 可以不用,用了可以简化代码量)
1. =
赋值:把等于号右边的给到左边的变量
2. +=
加法和赋值的合作
a += b 等于 a = a + b
在自己的基础上进行叠加
3. *=
乘法和赋值的合作
a *= b 等于 a = a * b
在自己的基础上进行累积
4. -=
a -= 1 等于 a = a - 1
5. /=
6. %=
比较运算符:
1. >
左边大于右面 得到 true
左边不大于右面 得到 false
2. <
左边小于右面 得到 true
左边不小于右面 得到 false
3.>=
左边大于或等于右面得到 true
左边小于右面得到 false
4.<=
左面小于等于右面得到 true
左面大于右面得到 false
5.==
两侧值相等 得到 true
两侧值不相等 得到false
不对比数据类型
6.===
两侧值 和 数据类型 是否相等
相等得到 true
类型和值不相等 得到 false
7.!=
比较两侧的值 是不是不等 不对比数据类型
两侧的值相等 得到 false
两测值不等 得到 true
8.!==
比较两侧的值和数据类型
数据类型不一样的时候,得到 true
数据类型一样得到 false
逻辑运算符
对数据进行逻辑运算
1. && 与 (且)
运算符两侧都是true 的时候 ,得到 true
只要任意一边是false,得到结果就是false
2. || 或
运算符两侧 任意一侧是 true 得到的就是 true
只有两边都是 false 的时候 得到结果才是 false
3. ! 非
本身是true 结果就是 false
本身是false 结果就是 true
双取反 可以转布尔(双重否定表肯定)
自增自减运算符:
是一元运算符的一种
一元:一个符号带一个变量就能运算
+ 变量
- 变量
!变量
自增++
前置++ : ++变量
后置++ : 变量++
只要执行了,那么变量本身的值一定会改变(在自身的基础上 +1)
区别:
前置++ 在于参加运算的时候,先改变变量本身的值,用改变以后的去进行运算
后置++ 在参与运算的时候, 先把变量本身的值拿过来参与运算,然后再改变变量的值
当一个运算表达式出现多个 ++ 的时候
按照从左到右的顺序依次一个一个的执行。
自减--
前置-- --变量
在参与运算的时候先改变变量的值用改变以后的值参与运算
后置-- 变量--
在参与运算的时候,先把变量的值拿过来参与运算,再改变变量的值
只要执行了,那么变量本身的值一定会改变(在自身的基础上-1)
分支语句:
根据一个条件来决定是不是执行某一段代码
分成两种
1. if
2. switch
1. if 语句
四种书写方式
1-1. if(条件){要执行的代码}
当条件满足(表达式 为 true)的时候,{}里面的代码执行
当条件不满足(表达式为 false)的时候,{}里面的代码不执行
1-2. if(条件){要执行的代码} else {要执行的代码}
当条件满足的时候执行 if 后面的{}
当条件不满足的时候,执行else 后面的{}
两个代码必然会执行一个
1-3. if(条件1){条件1执行代码} else if(条件2){条件2执行代码}
从第一个开始,哪一个条件满足,执行哪一个{}里面的代码
如果前面的满足了,后面的就不执行了
若干个大括号 {} 最多只能执行一个
1-4. if(条件1){条件1执行的代码}else if(条件2){条件2执行的代码}
从第一个开始,哪一个满足条件,执行哪一个{}里面的代码
前面的都满足了,后面的就不执行了
所有条件都不满足的时候,执行else里面的代码
若干个{} 必然会有一个执行
2. switch 语句
语法:switch(要判断的变量)
{
case情况1:
情况1执行的代码
break
case 情况2:
情况2执行的代码
break
default:
所有条件都不满足的时候执行的代码
}
注意:
1.我们的每一个 case 和判断的变量关系必须是 全等 === 才叫做满足
2. switch 语句,只能判断准确的某一个字面量值,不能判断范围
3.每一个 case 后面的 baeak
当你书写 break 的时候,执行完毕这个 case 内容 就结束了
不写 break 的时候 执行完毕这个 case 下一个是不是满足 都会执行
一直到遇到一个 break 为止,或者 switch 结束
4. break 的穿透,是从第一个满足条件的 case 开始进行穿透
5. default 可以写 可以不写
作用类似于我们if语句里面的 else
当所有条件不满足的时候,执行 default