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语句中所有的大括号中的代码只会执行其中一个,不会执行对个

posted @ 2020-11-15 20:06  Strive_YM  阅读(113)  评论(0)    收藏  举报