js中也有和C++中的一些语句,总的说来是就是顺序语句 选择语句 循环语句 以下就对做一个简单的说明
if的几种形式
让程序有选择的执行,分支控制有三种
①单分支②双分支③多分支
①单分支
if(条件表达式){
语句;
}
②双分支
if(条件表达式){
语句;
}else{
语句;
}
③多分支
if(条件表达式1){
//执行
}else if(条件表达式2){
//执行
}else if…{
//可以有多个else if
}
else{
//可以没有
}
③多分支 switch
switch(条件表达式){
case 常量1:
语句; break;
case 常量2:
语句; break;
…
case 常量n:
语句; break;
default:
语句;
}
循环控制语句:
①for循环
for(循环初值;循环条件;步长){
语句; //循环体
}
②while循环
while(循环条件){
语句; //循环体
}
特别说明:while循环是先判断再执行语句。
③do while循环
do{
语句;//循环体
}while(循环条件);
特别说明:do while循环是先执行,再判断。
while和do while区别的通俗讲解:
还钱的问题
while:上来先问你还不还钱,还钱,就不打你(先判断,再执行)
do while:上来先打一顿,打完了再问,还钱吗(先执行,再判断)
javascript中的操作符主要包括以下几种:
算术运算符
赋值运算符
比较运算符
三元运算符
逻辑运算符
字符串连接运算符
大致和C++都差不多,但是也有区别,在逻辑运算符中有注意:
逻辑与操作符&&
1如果第一个操作符是对象,则返回第二个操作数;
2如果第二个操作数是对象,则只有在第一个操作数求值结果为true的情况下才能返回该对象;
3如果两个操作数都是对象,则返回第二个操作数;
_&&null -null
_&&NaN -NaN
_&&undefined -undefined
逻辑或操作符||
如果第一个操作符是对象,则返回第一个操作数;
如果第一个操作数求值结果为false,则返回第二个操作数
如果两个操作数都是对象,则返回第一个操作数;
null||null -null
NaN||NaN -NaN
undefined||undefined -undefined
非操作符是!
if(!a){}
“===”与“==”的区别
相等操作符(==)
相等操作符会对操作值进行隐式转换后进行比较:
如果一个操作值为布尔值,则在比较之前先将其转换为数值
如果一个操作值为字符串,另一个操作值为数值,则通过Number()函数将字符串转换为数值
如果一个操作值是对象,另一个不是,则调用对象的valueOf()方法,得到的结果按照前面的规则进行比较
null与undefined是相等的
如果一个操作值为NaN,则相等比较返回false
如果两个操作值都是对象,则比较它们是不是指向同一个对象。如果两个操作数都指向同一个对象,则相等操作符返回true,否则,返回false
下面分别说明:
先说 ===,这个比较简单。下面的规则用来判断两个值是否===相等:
1、如果类型不同,就[不相等]
2、如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断)
3、如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。
4、如果两个值都是true,或者都是false,那么[相等]。
5、如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。
6、如果两个值都是null,或者都是undefined,那么[相等]。
再说 ==,根据以下规则:
1、如果两个值类型相同,进行 === 比较。
2、如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较:
a、如果一个是null、一个是undefined,那么[相等]。
b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。
c、如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。
d、如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的toString或者valueOf方法。js核心内置类,会尝试valueOf先于toString;例外的是Date,Date利用的是toString转换。非js核心的对象,令说(比较麻烦,我也不大懂)
e、任何其他组合,都[不相等]。