js中双叹号(!!)的含义

1、逻辑非(!)操作符的作用

 (逻辑非)如果操作数能够转换为true,则返回false;否则返回为true。(即取反的意思)

2、双叹号(!!)的作用

    双重否定即肯定
    !! --- 一般用来将后面的表达式强制转换为布尔值类型的数据(boolean),返回值为true或者false;

3、!! 的使用意义

1、应用场景:判断一个对象是否存在
假设有这样一个json对象:

{ color: "#E3E3E3", "font-weight": "bold" }

//如果仅仅打印对象,无法判断是否存在:
var temp = { color: "#A60000", "font-weight": "bold" };
alert(temp);
//结果:[object: Object]

//如果对json对象实施!!,就可以判断该json对象是否存在:
var temp = { color: "#A60000", "font-weight": "bold" };
alert(!!temp);
//结果:true

2、通过!或!!把各种类型转换成bool类型的惯例
2.1、对null的"非"返回true

//1、
var temp = null;
console.log(temp);
//结果:null

//2、
var temp = null;
console.log(!temp);
//结果:true

//3\
var temp = null;
console.log(!!temp); 
//结果:false

2.2、对undefined的"非"返回true

//1、
var temp;
console.log(temp);
结果:undefined

//2、
var temp;
console.log(!temp);
结果:true

//3\
var temp;
console.log(!!temp);
//结果:false

2.3、对空字符串的"非"返回true

//1、
var temp="";
console.log(temp);
//结果:空

//2、
var temp="";
console.log(!temp);
//结果:true

//3\
var temp="";
console.log(!!temp);
//结果:false

2.4、对非零整型的"非"返回false

//1、
var temp=1;
console.log(temp);
//结果:1

//2、
var temp=1;
console.log(!temp);
//结果:false

//3\
var temp=1;
console.log(!!temp);
//结果:true

2.5、对0的"非"返回true

//1、
var temp = 0;
console.log(temp);
//结果:0

//2、
var temp = 0;
console.log(!temp);
//结果:true

//3\
var temp = 0;
console.log(!!temp);
//结果:false

2.6、对字符串的"非"返回false

var temp="ab";
console.log(temp);
//结果:ab

//2、
var temp="ab";
console.log(!temp);
//结果:false

//3\
var temp="ab";
console.log(!!temp);
//结果:true

2.7、对数组的"非"返回false

//1、
var temp=[1,2];
console.log(temp);
//结果:1,2

//2、
var temp=[1,2];
console.log(!temp);
//结果:false

//3\
var temp=[1,2];
console.log(!!temp);
//结果:true

你可能感兴趣的:(js中双叹号(!!)的含义)