返回对象javascript中&&与||详解

最近使用开发的过程中出现了一个小问题,顺便记录一下原因和方法--返回对象

    JS中逻辑&&和||运算数可以是任何类型的,不止是布尔型的。布尔型绝对简略,本文只针对非布尔型或者二者都有的情况作说明.

    对于如下实例:

var T = {};
 function test() {
      var height = 0;
      var re = T || 100;
      alert(re);
}
对于&&运算符:

    1.如果运算数一个为空对象,true, 已定义的变量, 另一个为常量,如100,返回该常量对象。如:
    

function test() {
  var height = 200;
        var re = height && 100;
        alert(re); //返回:100
    }
2.如果运算数都是对象,返回第二个对象。

    3.如果运算数有一个为null,返回null。

    4.如果运算数有一个为NaN,返回NaN。

    5.如果运算数有一个没有定义就用,则产生错误。如:

function test() {
        var re = height &&100;
        alert(re);//不会输出
    }
  但是,如果前一个是对象的属性就不一样了,如:
var T = {};
    function test() {
        var re = T.height && 100;
        alert(re); //返回:[undefined]
    }
    每日一道理
如果人类不好好保护我们这个赖以生存的地球,终有一天,风沙的肆虐与垃圾的堆积会吞没我们美丽的家园。我向全世界的人们呼吁:让我们从现在开始,从我做起,手挽手,肩并肩共同保护建设我们的家园吧!
 

    逻辑||运算数与&&类似:

    1.如果运算数一个为对象,另一个为布尔值(true或false)或者其它常量,如100,返回该对象。如:

var T = {};
    function test() {
        var re = T || 100;
        alert(re); //返回:[object Object]
    }
2.如果运算数都是对象,返回第一个对象。

    3.如果运算数有一个为null,返回null。

    4.如果运算数有一个为NaN,返回NaN。

    5.如果运算数有一个没有定义就用,则产生错误。如:

 function test() {
        var re = height || 100;
        alert(re);//不会输出
    }
  但是,如果前一个是对象的属性就不一样了,如:
var T = {};
    function test() {
        var re = T.height || 100;
        alert(re); //返回:[undefined]
    }
6.如果运算数两个都是常量,则返回第一个数值.如:
function test() {
        var re = 200 || 100;
        alert(re);//输出200
    }

文章结束给大家分享下程序员的一些笑话语录: 一个程序员对自己的未来很迷茫,于是去问上帝。
"万能的上帝呀,请你告诉我,我的未来会怎样?"
上帝说"我的孩子,你去问Lippman,他现在领导的程序员的队伍可能是地球上最大的"
于是他去问Lippman。
Lippman说"程序员的未来就是驾驭程序员"
这个程序员对这个未来不满意,于是他又去问上帝。
"万能的上帝呀,请你告诉我,我的未来会怎样?"
上帝说"我的孩子,你去问Gates,他现在所拥有的财产可能是地球上最多的"
于是他去问Gates。
Gates说"程序员的未来就是榨取程序员"
这个程序员对这个未来不满意,于是他又去问上帝。
"万能的上帝呀,请你告诉我,我的未来会怎样?"
上帝说"我的孩子,你去问侯捷,他写的计算机书的读者可能是地球上最多的"
于是他去问侯捷。
侯捷说"程序员的未来就是诱惑程序员"
这个程序员对这个未来不满意,于是他又去问上帝。
"万能的上帝呀,请你告诉我,我的未来会怎样?"
上帝摇摇头"唉,我的孩子,你还是别当程序员了")


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript的set和get方法是用于定义对象的属性的访问器方法。它们允许我们对属性的读取和赋值进行控制和处理。 通过set方法,我们可以在给属性赋值时执行一些操作。例如,我们可以检查赋给属性的值是否符合特定的规则或范围。如果不符合规则,我们可以抛出一个异常或执行其他的处理逻辑。这种方式可以防止不合理的值被赋给属性。 通过get方法,我们可以在读取属性值时执行一些操作。这样,我们可以对属性的读取进行一些处理,例如计算或格式化。这些操作可以帮助我们从底层数据提取所需的值。 下面是一个使用set和get方法的简单示例: ``` const obj = { _age: 0, set age(value) { if (value < 0) { throw new Error('年龄不能为负数'); } this._age = value; }, get age() { return this._age; } }; obj.age = 20; // 调用set方法 console.log(obj.age); // 调用get方法,输出20 obj.age = -10; // 调用set方法,抛出异常 ``` 在上面的示例,我们定义了一个名为`age`的属性,使用了set和get方法。在set方法,我们检查给属性赋值的值是否小于0。如果小于0,则抛出一个错误。在get方法,我们直接返回`_age`的值。 总结一下,set和get方法可以让我们对属性的读取和赋值进行控制和处理。通过这种方式,我们可以确保属性的值符合我们的要求,同时还可以在属性的读取和赋值过程执行一些其他操作。这样,我们可以更好地控制和管理对象的属性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值