数学运算时:
js中把非零数字解释为true,把0作为false;
把非空字符串解释为true,把空字符串解释为false;
false作为0看待,true作为1看待;NaN不转换,啥都不是。
把null和undefined都解释为false;
如:
var str=false+1;
console.log(str);//返回结果为1,false相当于0;str数据类型为number;
var str1=true+1;
console.log(str1);//返回结果为2,true相当于1;
var a=1+null;
console.log(a);//1 ,系统会把null解释为false或0;
var a=NaN+123;
console.log(a);//NaN ,一定要注意
var a=NaN+"123";
console.log(a);//返回值为NaN123;
===============================
把数字转换成字符串的方式
number+“”数字加上空字符串或空字符串加上数字,类型就转换成字符串
var a=123+"";
console.log(typeof a);//string
2.number.toString();
var a=123;
console.log(typeof a.toStrong());//string
==============================
字符串转换成数字
1.parseInt()转换成整型
parseInt("999") ==>999
var a="999nmji";
var result=parseInt(a);//返回值为999,截取开始的数值。
var a="abc999";
var result=parseInt(result);//返回值为NaN,不是一个数值
2.转化成浮点型
parseFloat( )
如果是数字类型的字符串,直接转换成数值 parseFloat("222") ==>222
parseFloat("222bdg"); ==>222;
parseFloat("fsdf222");//NaN
总之:一个字符串(也可以是空字符串)加上一个数值,+号就变成字符串的连接符,- * /却不是,隐性转换成数值,进行运算。
================================
任何一个数据类型,在他前面加上一个+号,自动转换成数值,在其前面添加一个减号也变成数值。
如:
var a="abc";
console.log(typeof +a);//返回值为number;
var a=false;
console.log(typeof +a);//返回值为number;
var a="123";
console.log(typeof +a);//返回值为number;
var a=NaN;
console.log(typeof +a);//返回值为number
=================================
typeof(undefined);//"undefined"
typeof(null) //"object";
typeof(NaN); //"number"
====================================
!(逻辑非)可将变量转换成boolean类型,“!”是逻辑与运算,并且可以与任何变量进行逻辑与将其转化为布尔值,“!!”则是逻辑与的取反运算。
!null//返回值true
!undefined //true
!'' //true
!100 //false
!'abc' //false
!NaN //true
==============================
!!表示取反后再取反
!!true //返回值true
!!false //返回值false
!!undefined //返回值false
!!"" //返回值false
!!undefined //返回值false
!!"abc" //返回值为true
判断变量a为非空,未定义或者非空串才能执行方法体的内容
var a;
if(a!=null&&typeof(a)!=undefined&&a!=''){
代码块
}
实际上我们只需要写一个判断表达:
if(!!a){//a有内容才执行的代码...}
就能和上面达到同样的效果。a是有实际含义的变量才执行方法,否则变量null,undefined和''空串都不会执行以下代码。
=======================
逻辑运算符
1、JS中的||符号:
运算方法:
只要“||”前面为false,不管“||”后面是true还是false,都返回“||”后面的值。
只要“||”前面为true,不管“||”后面是true还是false,都返回“||”前面的值。
总结:真前假后
2、JS中的&&符号:
运算方法:
只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值;
只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值;
总结:假前真后
弄懂了以上说的还应该知道:
js的6个蛋蛋:在js逻辑运算中,0、”“、null、false、undefined、NaN都会判为false,其他都为true。
var num = 44 && 55;
var num2 = 44 || 55;
console.log(num); // 55 假前真后
console.log(num2); // 44真前假后
转换成boolean 的规则 :
对象、非零整数、非空字符串返回true
空字符串、null、undefined、NaN、false、0 ,返回false
短路原则:
技巧:
检测是否定义,未定义则赋初始值。
利用返回值的特性:
优化:
var num = {‘5’:1,’10’:2,’12’:3,’15’:4}[per] || 0;
领取专属 10元无门槛券
私享最新 技术干货