三大结构
一、三大结构
顺序结构
自上而下,逐行执行,先来后到,相同语句,后面的覆盖前面的
选择分支结构
多条路径,根据不同条件,只执行其中的一条或选择性的执行多条
循环结构
重复执行某些代码,代替某些重复性操作,减少代码冗余,提升效率
二、选择分支结构
1.单分支结构
两条路径二选一,做或者不做,有或者没有,执行或不执行;
(1)if 判断语句
//语法结构:
if(){}
if //语句名
() //是否执行的条件,true 或 false
{} //执行的内容
//例:
if(true){
console.log("hello");//"hello"---if括号中是true则输出hello,若为false则不输出
}
2.双分支结构
有两个选项,两者必定执行一个
(1)if-else 判断语句
//当条件判断为true时,执行花括号内的语句,如果条件为假false,跳过花括号内的语句执行else里的内容
if(条件){
执行语句1,条件为真时执行
}else{
执行语句2,条件为假时执行
}
(2)if 条件中的特殊情况
1)常规情况
通常if的括号中填写一个判断语句,判断是真还是假
if()括号里面的东西我们通常也叫它逻辑点,判断点
当括号内的内容为true时真,为false时假,true或false是布尔值(boolean)代表真和假,需要通过逻辑运算符得到
2)特殊情况
先来看一个例题
if(1){ //括号内 填写数字"1"会发生什么
console.log("会输出么?"); //会输出吗?---会在控制台输出内容
}
数字1是数值型,不是布尔值,更不是true为什么会执行花括号内的语句了呢?
在一些特定的情况下,计算机会进行一些隐式转换,他和强制类型转换不一样,他不需要你做什么,会自动对数据类型进行转换
在运算中,if(小括号)中的语句会发生隐式类型转换
//if隐式转换例题
var a = "1",b = 2;
console.log(a + b);//12---+号进行字符串拼接,拼成12,而不是进行数值运算等于3
"+"号有两种含义:
1、"+"号两边都是数字:此时是数学中的"+"号运算符,将两个数字相加,进行数值运算
2、"+"号两边出现一个或以上个字符:此时是字符串的拼接
并且优先进行字符串拼接,所以在检测到+号左右两边只要存在字符串的时候,会自动将另一边不是字符串的数据,转成字符串,再进行字符串拼接操作(字符串拼接就是将"+"号两边的内容完整的不做任何修改的前后接在一起)
注意:除了+号有两层意义为外
"-*/%"号只有数学意义,所以当进行"-*/%"的时候,
默认将运算符两边的数据类型隐式转换成数字类型再进行运算
那么如果想要进行相加运算,又不想被"+"号隐式转换为字符怎么办。
方法:
var a = "1",b = 2;
console.log(a + b);//12---默认进行字符串拼接输出字符串"12"
console.log((a-0) + b );//3---先通-0操作将字符转换为数字,再进行相加,输出数值3