AI智能
改变未来

H5学习—Javascript—显示,隐式转换 if switch case


隐式转换

var a = \"2\", b = 2;console.log(a + b  )    // 22console.log(a == b)     // trueconsole.log(a * b)      // 4console.log(a - 0 + b)  // 4console.log(a / b)      // 1console.log(a % b)      // 0数字和字符串相加,数字会隐式转换为字符串来拼接数字和字符串相减,字符串转成数字,如果转换不成功得到NaN* / % 都具有减号这样的功能==具有隐式类型转换的功能,会把数字转成字符串再比较===不具有隐式转换功能

显式转换

parseInt()、parseFloat()、Number()、toString()、String()

toFixed()可以用来将数字保留几位小数,并且数据类型变为字符串

var a = 2, b = \'2\';a + parseInt(b)  === 4  // trueparseInt(\"20b3\")       	// 20parseInt(\"b20\")       	// NaNparseInt(\"20.99\")    	// 20parseFloat(\"11.22.33\")  // 11.22parseFloat(\"11.212be\")  // 11.212Number() 是一个非常严格的转换,只要不满足数字,都会直接转换为NaNNumber(\"20b3\")       //  NaNNumber(\"b20\")        //  NaNNumber(\"20.99\")      //  20.99Number(\"20\")         //  20

NaN:Not a Number

方法 parseInt() 和 parseFloat() 在不能解析指定的字符串时就返回NaNisNaN(num)函数,该函数判断num变量的值是否是NaN,是NaN返回true,数字返回false

ECMAScript 中可用的 3 种强制类型转换如下:

Boolean(value) - 把给定的值转换成 Boolean 型;Number(value) - 把给定的值转换成数字(可以是整数或浮点数);String(value) - 把给定的值转换成字符串;

运算符的简写

赋值运算简写

+=、-=、*=、/=

a = a + 1       a += 1a = a  - 1      a  -= 1a = a  * 1      a  *= 1a = a  / 1      a  /= 1a++    a += 1   a = a + 1a--    a -= 1   a = a - 1自增自减前置后置是不一样的,前置是先加后用,后置的先用后加。
JS的小数运算有时候并不是那么精确,但是损失的精度一般也在可承受范围之内
alert(0.7+0.1);  //输出0.7999999999999999alert(0.6+0.2);  //输出0.8;

if — 判断逻辑,如果

if(true){//会执行的语句}if(false){//会跳过不执行的语句}if(判断条件){ //当if括号中结果为true时执行语句1,否则执行语句2//语句1}else{//语句2}if(判断条件1){ //当条件1结果为true时执行语句1//语句1}else if(判断条件2){ //当条件1结果为false而且条件2结果为true时执行语句2//语句2}else{ //当条件1条件2结果都为false时执行语句3//语句3}if括号中只需要布尔类型值。那么在if判断中,所有的数据类型都会被隐式转换为布尔类型。注意:0、-0、null、\"\"、false、undefined 或者 NaN在if条件里结果为false

隐式类型转换

除了+运算符具有两层含义以外,- * /只有数学意义所以当进行- * /运算的时候默认会将运算符两侧的数据类型隐式转换为数字类型,再进行运算。var a = 2, b = \"2\";if(a == b){alert(\"a和b相等\");    // 会弹}if(a === b){alert(\"a和b相等\");    // 不会弹}if(1 == true){alert(\"数字1是true\");}if(a = b){alert(\"a和b相等\");}//一个等号代表赋值操作,结果为等号右边的值

switch case 多分支语句

switch(语句){  //语句的结果与每一条case内容进行匹配case 1:alert(1);break;case 2:alert(2);break;case 3:alert(3);break;default:alert(0);}注意switch的应用场景(有多个确定值需要判断的时候);注意case穿透,要加break语句(如果程序没有发现break语句,那么解析器会继续向下解析);可以运用case穿透进行代码缩减var a = 1;switch(a){case 1:alert(1);case 2:alert(2);case 3:alert(3);default:alert(0);}每一个alert都会被执行,而且alert会阻断程序进程switch (表达式) {case 值1:当表达式匹配上当前这个值1的时候执行的代码breakcase 值2:当表达式匹配上当前这个值2的时候执行的代码break....default:如果前面的case一个都不满足就走这里}switch语句更适用于一个表达式有多个分散值的情况.如果是区间判断if更合适,但是很多时候if和switch是可以互相替换的switch比较都是全等匹配,没有类型转换
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » H5学习—Javascript—显示,隐式转换 if switch case