js:运算符、NaN、浮点数、数据类型转换、程序结构、分支语句-第二天

# 一、复习

1、js历史

2、ji组成

4、js的打印语句

    - alert()

        - 默认将数据以字符的形式打印

        - 一行代码只能打印一个数据

    - document.write()

        - 一行代码只能打印一个或多个数据,每个数据之间使用逗号隔开

        - 影响页面布局

    - console.log()

        - BOM的V8引擎

        - 静默打印,以数据的原本类型打印

5、js的数据类型

    - string,number,bollean,abject,function,undefined,null

    - typeof 要检测的数据或者变量

6、js的变量

    - 变量命名规则

        - 必须字母开头或下划线或$开头,

        - 不允许使用关键字和保留字

        - 语义化    大小驼峰


 

# 三、js的常见运算符

1、一元:++  --

    - 自增:++

        - 在自身的基础上增加1,修改返回自身

        - 前:++n:先自增计算,再使用变量

        - 后:n++:先使用变量,再自增计算

    - 自减:--

        - 在自身的基础上减少1,修改返回自身

        - 前:--n

        - 后:n--

2、二元:算数、关系、逻辑、赋值

3、三元:值1?值2:值3

# 四、关于NaN

1、NaN:非法的转换或数值运算得到的结果

    - NaN :not a Number

    - 不是一个数字的数值型数据

    - NaN和任何数据都不相等,包括自身

2、专门的检测NaN的方法

    - isNaN()

        - true表示是NaN

        - false表示不是NaN

    - isNaN()小括号内也会发生数据类型转换,将数据转换成数值


 

# 五、关于计算机中浮点数的精度问题

1、如:0.1+0.2 !==0.3

2、原因:机制转换

整数转二进制:不断除以2,取余数,从上向下拼接,得到的就是二进制

小数转二进制:将小数部分不断的乘以2,最终得到0,从上到下取整数位拼接,

0.12

3、解决:

    - 在已知小数位的情况下,先转成整数,再将计算结果转回去

# 六、数据类型的转换

1、如果通过计算机得到数据不是我们想要的类型,此时需要将数据转换

2、隐式类型

    - 没有主动使用某些方法,而是在运算过程中,由计算机程序自动转换,只是在运算过程中转换,不影响数据本身

    - 转换场景:1、某些运算符 - +

3、显示(强制)类型转换

    - 主动使用某些方法强行转换,转换只是发生在执行方法的位置,也是没有影响原数据

    - 其他转数值:

        - 转整数:parseInt()

            - 非严格转换,不能识别小数点

        - 转小数:parseFloat()

            - 非严格转换,能识别小数点

        - 四舍五入取最近的整数Math.round()

            - 严格转换

        - 其他转数值: Number()

    - 其他转字符:

        - 要转换的数据或变量.toString()

        - 保留n位小数转字符:(数值)/数值变量.toFixed(n)

        - 其他转字符:String(要转换的数据或变量)

    - 其他转布尔:

        - Boolean()

    <!-- - 其他转对象: -->

4、转换规则

    - 其他转数值

         - 非严格转换:从左向右依次检测字符,能转则转,不能则直接NaN

         - 严格转化:只要出现一个非数字的内容,就是NaN

         - 其他非字符的转换

            1、第项、函数、nudefind都是NaN

            2、空数组转为0

            3、数组内,有且只有严格能严格转换成数值的数据,为当前数值

    - 其他转字符

        - 对象转成:“[object Object]”

        - 数组相当于将中括号替换成引号

        - 其他都相当于直接给数据添加引号

        - undefined和null不能直接使用任何方法,但是可以被String方法转换

    - 其他转布尔

        - 字符:非空为true,空为false

        - 数值:非0为ture,0为false

        - undefined,null,NaN都为false

        - 对象,数字,函数都为true


 

# 七、程序的结构

1、顺序结构

    - 自上而下执行

2、选择(分支)结构

    - 必须配合分支语句才能执行,根据不同的条件选择不同的执行语句

3、循环结构

    - 必须配合循环语句才能使用,重复执行某段代码或程序

# 八、分支(选择语句)结构

1、单分支:只有严格功能可供选择,执行或不执行

    - if(){}

2、双分支:根据条件的不同结果(只有true或false),选择不同的语句执行,只有两种选择

    - if(){}else{}

3、多分支:根据条件的不同结果,选择不同的语句执行

    - if-else嵌套实现

    - switch(){}

        - case的穿透特性:一个switch只会进行一次正确的case判断,之后会自动执行所有的执行语句

        - 阻止穿透:执行完正确的语句之后,立即结束分支语句,使用break,最后default

        - 更适合处理具体的值的判断(将数据处理成具体的值,再使用)(借助布尔值判断)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值