JavaScript基础_day2
关系运算符和关系表达式
1,关系运算符:八种
> :大于,左边大于右边
<:小于,左边小于右边
>=:大于等于,左边大于或者等于右边
<=:小于等于,左边小于或者等于右边
==:等于,左边等于右边
!=:不等于,左边不等于右边
===:全等,左边等于右边且类型一致
!==:不全等,左边不等于右边或者类型不一致

逻辑运算符和逻辑表达式
1,逻辑运算符:三种
&&:逻辑与,读作并且
||:逻辑或,读作或者
!:逻辑非,读作取反
* true(真)变false(假),或者 false(假)变true(真)
2,逻辑表达式: 表达式1 逻辑运算符 表达式2
3,运算口诀
- 逻辑与表达式&&:一假则假
左右两边同时成立,才为真,否则为假
- 逻辑或表达式||:一真则真
左右两边同时为假,才为假,否则为真
- 逻辑非! :取反
运算符优先级

运算符优先级:确定不同运算符的运算规则
1,()小括号:优先级运算符 作用就是提升优先级:不被拆散
2,自增与自减
3,算术运算符(先乘除后加减)
4,比较运算符
5,逻辑运算符
6,赋值运算符
同级运算符从左往右运算
-js转义符
转义符:\ 改变原来符号的作用就叫转义符

-数据类型比较
numll与undefined比较
1,undefined与null的区别,两个都表示什么都没有
null == undefined:成立,他们的值都是空
null === undefined:不成立,他们的值相等但是数据类型不同
NaN与isNaN
1,NaN:Not a Number 不是一个数字
(1)NaN是number数据类型中一个特殊的数值,是数学计算错误得到的一个结果
* 例如:‘张三’ - 100 ,在数学上这是一种错误的计算,它的结果就是NaN
(2)NaN与任何数字都不等,包含它本身
(3)NaN与任何数字计算得到的都是NaN
2,jsNaN(数据):检测一个数据是不是NaN得到的结果是布尔类型
例如:jsNaN(NaN),结果为true
例如:jsNaN(123),结果为false,表示123不是NaN
3,了解:number 类型浮点数(小数)精度丢失问题
(1)小数在进行 数字计算时,会有一定的误差,这是计算机本身的bug,不仅是js语言,其他语言也有这个问题
(2)解决方案:不要让两个小数比较大小,这种情况一般不会影响正常开发
字符串比较
1,字符串比较规则是按照字母的顺序挨个进行比较,与字符串长度无关
2,字符串比较区分大小写
数据类型转换
注意:数据类型的转变并不会改变原来变量的值,而是会产生一个新的值
* 例如:(1) let num = ‘10’; parsenInt(num);
为什么要有数据类型转换?
· 有时候想要进行某种计算的时候,由于数据类型不同往往会产生一些错误的结果,为了避免这种结果,我们需要将某种数据类型转换为其他数据类型
例如:porompt()输入框得到的数据的类型是string,如果想要进行数学计算则需要转成number类型,否则会计算出错
什么是显示类型转换:程序员主动转换(可以理解为使用关键字来转换)
* 这种方式代码易读性更高
其他类型转换成number类型

其他类型转换成string类型
1,第一种方式: 变量名,toString()
* 如果变量的值为undefined 或者null ,则会报错
2,第二种方式:String(变量名)
* 与第一种方式的唯一区别就是如果变量的值为undefined 或者 null 不会报错,会得到undefined 或者null
其他类型转换成boolean类型
只有一种方式:Boolean(变量名)
* 官网文档中有八种情况得到的false:0、-0、null、false、NaN、undefined、或者空字符串(“”)、document.all(js下个阶段会接触的东西)
* 其他一切均为true
关于Boolean()描:https://developer.mozilla.org/zh-
隐式数据类型
隐式转换:运算符两边数据类型不一致,编译器自动帮我们转换一致在计算,这是js的语法特点
隐式转换
1,转换string 类型:+号两边如果有一边是字符串,则会把另一边转换成字符串,然后进行拼接
2,转换number类型:以下几种运算符会将任何数据转换成number类型再运算,如果无法转换则为NaN
* 数学正号:+num
当 +/- 号写在一个变量名的前面,此时表示数学是的正/负数
* 自增自减(++ --)
* 算术运算符(+ - * / %)
* 比较运算符(> < <= >= == != \=\=\= !==)
说明:全等与不全等会先比较值(此时会隐式转换再比较),然后再比较数据类型
3,转换成boolean 类型:逻辑非 (!)会将任何数据转为boolean 类型再运算
4,+ 号有三种含义:数学正负号(转成number)、算术运算符(转成number)、字符串连接符(转成string)
流程控制
* 编程语言都有三大流程控制结构
1,顺序结构:代码从上往下顺序执行
2,分支结构:代码选择执行
3,循环结构:代码重复执行
分支结构
分支结构的作用:代码根据条件执行
- if 单分支结构
1,if 结构语法:if(条件 true/false){ 条件成立时需要执行的代码 }
2,if 结构补充说明:
(1)大括号中可以是任何代码,不限数量
(2)如果大括号中代码有且只有一行,则可以省略大括号。这种写法代码不规范,不是老司机的作风
3,注意点:小括号中的条件可以是哪些呢
(1)关系表达式:结果一定是布尔类型
(2)布尔类型的值:true 和 false
(3)其他表达式和值:都会先转换成布尔类型再判断真和假
if-else 爽分支结构
if (条件) {
条件成立时需要执行的代码
} else {
条件不成立时需要执行的代码
}
1,if-else 结构语法:用于两种互斥的条件判断
2,if-else 结构注意点
* if 大括号中的代码与else 大括号的代码只会执行一个,不会同时执行
* if-else 语句的作用主要就是为了提高代码的运行效率,虽然可以用两个if语句来代替if-else 语句,但是两个if 语句需要判断两次,而if-else值需要判断一次
if-else if-else 多分支结构
1,if-else if-else 结构语法:
if (条件){
条件1成立时需要执行的代码
} else if (条件2){
条件2成立时需要执行的代码
} else if (条件3){
条件3成立时需要执行的代码
} else {
以上所有条件都不成立时需要执行的代码
}
2注意点:
* (1)if-else if-else结构中必须以if 开头,中间的else-if 可以是多个,末尾的else可以省略(一般不会省略)
*(2)if-else if-else语句中所有的大括号中的代码只会执行其中一个,不会执行对个
浙公网安备 33010602011771号