js中的一些忘记的知识点

数学运算时:

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;

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180720G1ELK800?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券