7. 数据的类型转换
两种转换方法:隐式转换和强制转换
7.1 转换为string字符串
隐式转换:数据+ ””
转换特点:所有类型的数据都能通过这种方法转换为字符串。
强制转换:
1 String(数据)
转换特点:同隐式转换。
2 数据.toString()
转换特点:null,undefined无法通过这种方法来转换为字符串,其他数据都能满足。
7.2 转换为number数字类型
隐式转换:
1 +字符串:如果字符串内容为数字则转换为对应数字,如果字符串内容不全为数字,则转换为NaN。
2 +boolean:ture转换为1,false转换为0
3 +null:转换为0
4 +undefined:转换为NaN
强制转换:
1 Number(字符串)
转换特点:同隐式转换方式
2 parseInt()
转换特点:将字符串中的内容一个一个字符进行转换,如果遇到非数字的字符则结束转换
3 parseFloat()
转换特点:将字符串中的内容一个一个字符进行转换,如果遇到除数字或小数点以外的字符则结束转换转换
且除字符串以外其他类型的数据都转换为NaN。
7.3 转换为boolean布尔类型
隐式转换: !!数据
强制转换:Boolean(数据)
转换特点:数据类型转boolean的时候,0、“”、null、undefined、NaN转换为false,其它的都为true;
8. JS中的语言结构
8.1 顺序结构
正常情况下为从上到下的顺序来执行语句
8.2 分支结构
1 if语句
If(判断条件)一般是一个boolean类型的值或是关系表达式或是逻辑表达式{
要执行的代码;
}
执行过程:
执行If语句时先判断条件是否成立,如果成立则执行大括号里的代码,如果条件不成立则直接跳过if,执行if后面的代码。
特点:If语句只能判断一种情况。
2 If..else 语句
If(判断条件) 一般是boolean类型的值或是关系表达式或是逻辑表达式{
要执行的代码;
}else {
要执行的代码;
}
执行过程:
执行if-else语句时先判断条件是否成立,如果条件成立执行if大括号里面的代码,如果判断条件不成立则执行else对应的大括号里面的代码,执行完毕之后直接跳出if-else语句。两种情况肯定会执行其中一个大括号中的代码。
3 三元运算符
结构:表达式1(关系表达式或是逻辑表达式)? 表达式2:表达式3;
如果表达式1成立,则三元运算符返回表达式2的值,如果表达式1不成立,则返回表达式3的值。
此为if-else语句的简化版。
8.3 选择结构
1 if-elseif-else语句
If(判断条件) 一般是boolean类型的值或是关系表达式或是逻辑表达式{
要执行的代码;
}else if(判断条件){
要执行的代码;
}...else {
要执行的代码;
}
执行过程:
执行if-elseif-else语句时先判断if处的条件,如果成立则执行if对应大括号里面的代码,如果条件不成立则依次判断下面else if对应的条件,如果成立则执行else if对应大括号里面的代码,如果都不成立则要看最后有没有else,如果有else,则执行else对应大括号里面的代码,否则退出if-elseif-else语句程序,执行后面的代码。
特点:判断条件多为区间情况。
2 switch-case语句
switch(值)一般是一个变量或是计算后的定值{
case 值1(第一个要比较的值):
要执行的代码;
break;(必须要加break,否则会继续对后面的值进行判断和执行对应代码)
...
default:
要执行的代码;
break;(可以不加)
}
执行过程:
执行switch-case语句时,先计算小括号里的值,然后拿着这个定值依次和大括号中case里面的值进行匹配,如果匹配成功,则执行对应的case中的代码,遇到break直接跳出当前swicth-case结构,如果匹配都不成功,则要看结构是否有default,如果有,则执行default中的代码,遇到break直接跳出结构,如果没有default,则直接跳出swicth-case结构,执行后面的代码。
用于多条件的定值判断 。
注意:case中的值的数据类型一定要与switch小括号中的值的数据类型一致。
if-elseif与switch-case的区别
相同点:都可以实现多分支结构
不同点:
if-else if:多用来处理区间范围
switch-case:一般只能用于定值比较
三者的区别:
if有条件的执行一条语句 一种情况
if-else有条件的执行一条或另一条语句 两种情况中的一种
switch-case有条件的执行一组语句中的一条语句 多种情况中的一种
8.4 循环结构
循环:所谓循环就是重复的做同一件事情
1 while 循环语句
while(循环条件){
循环体(当循环条件成立时要执行的代码);
}
执行过程:
执行while语句时,先判断循环条件是否成立,如果成立则进入大括号执行里面的循环体,执行完毕之后,再次判断循环条件是否成立,如果成立则再次进入大括号执行里面的循环体,循环往复。
注意:只要是循环,肯定会有一行代码能够改变循环条件,如果没有代码改变循环条件,我们称这样的循环叫死循环。
2 do-while语句
Do{
循环体;
} while(循环条件)
执行过程:
执行do-while语句时,先进入大括号执行里面的循环体,然后带着执行结果,再判断循环条件是否成立,如果成立则再次进入大括号执行里面的循环体,如果不成立,则跳出当前do-while循环。
特点,do-while这个循环结构,至少会执行一次,while循环结构,有可能一次都不执行
3 for语句
一般多用于已知次数的循环
for ( 初始值 ; 循环条件 ; 初始值自增(自减)的步长) {
循环体
}
执行过程:
执行for语句时,先声明变量,并赋初值,然后判断循环条件是否成立,如果条件成立则进入大括号执行里面的循环体,第一次循环的时候,初始值不进行自增或自减,第一次循环执行完毕之后,初始值进行自增或者自减,改变循环条件,然后再判断循环条件是否成立,如果成立,则再次执行循环体,如果不成立,则跳出循环。
4 for-in
还未学习到,后面进行补充。
注意:所有小括号中的判断条件或者循环条件(除switch)如果不是boolean类型的值,也不是关系表达式也不是逻辑表达式的时候,小括号会对数据隐式的调用Boolean(),将数据转换为boolean类型的值。