站三界导航
首页 JS代码js中的if条件的简写总结

js中的if条件的简写总结

  • JS代码
  • 来源:站三界导航
  • 43阅读
  • 2023-03-24

1、布尔判断

var b=true

if(b) 即 if(true) 相当于 if(b===true) 的简写


2、数值判断

if(n) 相当于 if(n!==0 && !isNaN(n)) 的简写


3、判断字符串是否为空

if(str) 相当于 if(str!=='') 的简写


4、判断对象是否存在

if(obj) 相当于 if(obj!==undefined && obj!==null) 的简写

//如果对像不存在
if(!obj){
    console.log('对象不存在!')
    //相当于if(obj===undefined || obj===null)的简写
}

4.1、判断对象是否为空。if(Object.keys(obj).length>0) 没有简写。这是ES6的写法。

var obj={}
if(Object.keys(obj).length!==0){
    //对象不为空
    console.log(true)
}else{
    //对象为空
    console.log(false)
}

如果ES5,可以用for in 方法或转json字符串来判断obj对象是否为空。

//定义全局变量,定义一个对象person
var person = {name:'张三'}

//定义一个方法,判断对象是否为空。
function isOwnProp(obj) {
    //遍历对象属性。
    //如果有属性就进入循环,找到一个属性就返回true并退出循环和结束函数。
    for (let key in obj) {
        return true
    }
    return false
}

//调用方法进行判断
if (isOwnProp(person)) {
    console.log('对象不为空,拥有自有属性!')
} else {
    console.log('对象为空!')
}

或者对象转字符串

if(JSON.stringify(obj)==='{}'){
    console.log('对象为空!')
}
5、length判断数组是否为空。
var arr = []
if (arr.length > 0) {
    //数组不为空
} else {
    //数组为空
}
字符串是特珠数组,除了拥有数组下标,比如str[0],也拥有length属性。因此也可以用if(str.length>0)来判断字符串是否为空。
length不能用来判断对象是否存在,因为对象没有自带的length属性,即obj.length是undefined。而且当obj=null或undefined时执行obj.length程序会抛异常而报错。
6、可选链操作符( ?. )

if(obj?.age) 相当于 if(obj && obj.age)的简写

即if( obj != null && obj != undefined && 'age' in obj && obj.age ) 的简写

?.可以多个拼接使用。允许读取位于对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。

let name = obj?.sub?.item?.name 

这个代码的作用是即使obj、sub或item是undefined也不会报错。

前提条件,obj必须先声明,否则还是会抛异常。

也就是,如果obj对象中有sub属性,sub属性下面又有item属性,item对象又有name属性,则返回name值,否则返回undefined。不管结果如何,代码都正常执行,不会执异常。

如果没有使用?.,即let name=obj.sub.item.name,只要obj、sub、item其中有一个是undefined,程序就会抛引用异常,即xxx is not defined飘红报错。

本文结束
本文来自投稿,不代表站三界导航立场,如若转载,请注明出处:https://www.zhansanjie.com/article/details/40338.html

版权声明:

1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

2、本站仅提供信息发布平台,不承担相关法律责任。

3、若侵犯您的版权或隐私,请联系本站管理员删除。

4、本文由会员转载自互联网,如果您是文章原创作者,请联系本站注明您的版权信息。

分享
站三界导航
本站声明:本站严格遵守国家相关法律规定,非正规网站一概不予收录。本站所有资料取之于互联网,任何公司或个人参考使用本资料请自辨真伪、后果自负,站三界导航不承担任何责任。在此特别感谢您对站三界导航的支持与厚爱。