js自动类型转换:
eg:
console.log("12" - 2); //10
console.log("8" > 6); //true
console.log(12 +null); //12
console.log(12 + undefined); //NaN
JS在运算的过程中,将纯数字字符串转为数值,将null转为0,将undefined转为NaN;NaN和任何一个数进行操作的时候,结果都为NaN;
NaN和任何一个数都不相等,包括他本身。
强制数据类型转换(手动的进行转换):
①parseInt() 将某个字符串强制转成整数;从左到右开始转,遇到非数字截止,能转就转不能转则为NaN;
②parseFloat() 将字符串转化为小数;从左到右开始转,能转就转,遇到除了“.”之外的非数字就终止;如果第一个不能转,则NaN;
③Number() 将某个数据类型转为数值型,只要不是一个数就不能转;其中true转为1;false转为0;非数字字符串转为NaN;
④Boolean() 强制将某个类型转成布尔类型;其中为假的有:0 , “” ,null , undefined , false , NaN;
⑤toString() 格式:var num = 12;
num.toString();
变量.toString(); //将变量转为字符串;
转成字符串不需要加参数;
若加上参数为进制转换即:num.toString(2); //12的二进制
扩展:
isNaN() //返回为一个布尔值;
是不是 不是一个数;如果不是一个数,返回true;如果是一个数,返回false;
eval:可用于剥除引号,让表达式执行:
alert("5 + 3"); //5 + 3
alert(5 + 3);//8
alert(eval("5 + 3"));
运算符的优先级:
单目>算术>关系>逻辑>条件>赋值
程序三大语句结构:
①顺序结构
②选择结构:
③循环结构
1.选择结构:条件成立才执行花括号里的语句;
//①单分支: if(条件){ 语句; } //②双分支: if(条件){ 语句1; }else{ 语句2; } //③多分支: if(条件){ }else if(条件){ }else if(条件){ }else{ }
分支的嵌套:
if(){ if(){ }else{ } }else{ if(){ } }
if条件只有一个出口,只要进入一个出口,整个if条件就结束了,继续执行下面的语句;
switch语句(开关语句)多分支语句:
语法结构:
switch(表达式){ case 常量表达式1:语句1; case 常量表达式2:语句2; ... default:语句n; }
注:
①括号内的表达式一般是一个变量;
②常量表达式就是一个有具体值的常量,这里的常量一般是数值型(整数)或字符类(单个字符);
③变量和常量进行比较的时候采用的是===比较;
④如果case后面的语句没有break(拦截),会实现case穿透;
⑤default可以省略(但一般不省略,提高用户的体验),default位置可以是任意的。(作用类似于else)
eg:输入一个0~6之间的数,0代表星期天,1~6代表星期一到星期六;
var week = Number(prompt(“请输入一个0~6之间的数”));
switch(week){
case 0 : alert(“星期天”);break;
case 1 : alert(“星期一”);break;
case 2 : alert(“星期二”);break;
case 3 : alert(“星期三”);break;
case 4 : alert(“星期四”);break;
case 5 : alert(“星期五”);break;
case 6 : alert(“星期六”);break;
default : alert(“您输入有误”);
}
break的作用是拦截,若不添加则会向下继续输出下面的语句;
if和switch的区别:
if:多分支条件是一个范围;
switch:条件有具体的值。