JS: 类型转换 + 运算符 + 循环

类型转换

一, 为什么需要类型转换

JavaScript是弱数据类型:JavaScript也不知道变量到底属于那种数据类型,只有赋值了才清楚。坑:使用表单、prompt获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算。

 console.log('1000e'+‘2000') // 输出结果100002000

此时需要转换变量的数据类型。

通俗来说,就是把一种数据类型的变量转换成我们需要的数据类型。

隐式转换

某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为隐式转换。

  • 规则: +号两边只要有一个是字符串,都会把另外一个转成字符串 除了+以外的算术运算符比如-*/等都会把数据转成数字类型
  • 缺点: 转换类型不明确,靠经验才能总结

小技巧:

+号作为正号解析可以转换成数字型 任何数据和字符串相加结果都是字符串

在下面的实际案例中感受一下,例如:

<script>
console.log(11 + 11)
console.log('11'+ 11)console.log(11 - 11)
console.log('11'- 11)console.log(1 * 1)
console.log('1'* 1)
console.log(typeof‘123')console.log(typeof +'123'console.log(+'11'+ 11)
</script>

上式最终结果为

22        1111           0       1      1        string             number              22

显式转换

编写程序时过度依靠系统内部的隐式转换是不严禁的,因为隐式转换规律并不清晰,大多是靠经验总结的规律。为了避免因隐式转换带来的问题,通常根逻辑需要对数据进行显示转换。

概念: 自己写代码告诉系统该转成什么类型

转换为数字型 Number(数据)

√ 转成数字类型

√ 如果字符串内容里有非数字,转换失败时结果为NaN(Nota Number)即不是一个数字

√ NaN也是number类型的数据,代表非数字

parselnt(数据) 只保留整数

parseFloat(数据) 可以保留小数

运算符

一, 赋值运算符

目标:能够使用赋值运算符简化代码

赋值运算符:对变量进行赋值的运算符

已经学过的斌值运算符:= 将等号右边的值赋予给左边,要求左边必须是一个容器

其他赋值运算符:

==

-=

=*=

%=

一元运算符

我们可以有更简便的写法了 自增: 符号:++ 作用:让变量的值+1 自减: 符号:-- 作用:让变量的值-1 使用场景:经常用于计数来使用。 比如进行10次操作,用它来计算进行了多少次了。

比较运算符

  • 比较运算符:                                                   对比:
  • >:左边是否大于右边                                       =单等是赋值
  • <: 左边是否小于右边                                      ==是判断
  • >=:左边是否大于或等于右边                          ===是全等
  • <=: 左边是否小于或等于右边                         开发中判断是否相等,强烈推荐使用 ===
  • ==:左右两边值是否相等 
  • ===:左右两边是否类型和值都相等 !==:左右两边是否不全等
  • 比较结果为boolean类型,即只会得到true 或 false

二,运算符优先级

目标:掌握运算符优先级,能判断运算符执行的顺序

优先级   运算符顺序
1小括号  ()
2 一元运算符++ --!
3算数运算符先*/%后+-
4关系运算符>   =  <   <=
5相等运算符==  !=  ===   !==
6逻辑运算符先&& 后||
7赋值运算符=
8,逗号运算符,

目标:能使用if语句执行满足条件的代码

循环

一,if语句

  • if语句有三种使用:单分支、双分支、多分支
  • 单分支使用语法:
    if (条件){
    满足条件要执行的代码
    }

  • 括号内的条件为true时,进入大括号里执行代码 小括号内的结果若不是布尔类型时,会发生隐式转换转为布尔类型如果大括号只有一个语句,大括号可以省略,但是,俺们不提倡这么做~

二,while循环

while循环的作用是什么?

在满足条件期间,重复执行某些代码

while循环三要素是什么?

变量起始值 终止条件(没有终止条件,循环会一直执行,造成死循环) 变量变化量(用自增或者自减)

三,循环退出

目标:能说出continue和break的区别 循环结束:

break:退出循环

continue:结束本次循环,继续下次循环

区别:

  1. continue 退出本次循环,一般用于排除或者跳过某一个选项的时候,可以使用continue
  2. break 退出整个循环,一般用于结果已经得到,后续的循环不需要的时候可以使用

四,for循环

循环体一个循环里再套一个循环,一般用在for循环里

for(外部声明记录循环次数的变量;循环条件;变化值){
    for(内部声明记录循环次数的变量;循环条件;变化值){

循环体
    }

}

五,几大循环对比

switch和case

1.共同点:都能实现多分支选择,多选1•大部分情况下可以互换

2.区别:

  • switch...case语句通常处理case为比较确定值的情况,而if...else...语句更加灵活,通常用于范围判断(大于,等于某个范围)。
  • switch语句进行判断后直接执行到程序的语句,效率更高,而if...slse语句有几种判断条件,就得判断多少次
  • switch一定要注意必须是===全等,一定注意数据类型,同时注意break否则会有穿透效果。

结论:1,当分支比较少时,if...else语句执行效率高。2,当分支比较多时,switch语句执行效率高,而且结构更清晰。

for和while

区别:

  • 当如果明确了循环的次数的时候推荐使用for循环
  • 当不明确循环的次数的时候推荐使用while循环
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值