前天做前端插件项目的时候大师兄亲自督阵,写了一段我以为是敲错了的代码,还班门弄斧的去指正。。。结果师兄教我这个js的小trick。先上代码:
function addNewNode(){
var newNode = bizTrigger('createNode');
if(!!newNode && !!newNode.id){
//根据newNode的信息在视图中创建一个节点
}
}
那么话归正传,‘!!’到底有什么用呢?通常newNode这个变量在js中可能会取到的值为undefined,null,和一个正常的变量,这里我们简称为a。
对他们分别取一次反,结果如下:
可以发现第一次取反把上面三种情况都化作统一的布尔型变量去处理了,而刚好取反变成bool值之后已经区分开了undefined以及null这两种变量缺省的情况和变量正常存在的情况。再取一次反结果如下:
如图这样就可以利用!!来很好的处理变量缺省的情况啦。当然这只是一个小技巧,它和我们直接用if(newNode)去做判断相比又有什么优势呢?我们只是搞清楚了那样做是可以的,希望看到的朋友们有谁想清楚告诉我一下。。。THX
如果文章有帮助的话我会很高兴,富裕的朋友接着往下看
项目的钱还是没有发!!!
最近揭不开锅了。。。您的帮助会是我最大的动力。。。