+1 from me for !in. It's a surprisingly common nuisance.

And I don't care for the !obj.x workaround at all -- even if you can survive the difference in semantics, from a code reading point of view this is saying something entirely different.

And it is very different semantically. 'x' in obj does [[HasProperty]]; obj.x does [[GetProperty]]. With

  obj = { get x() { print("getter"); return 3; } };

then |"x" in obj| does not print "getter" while |obj.x| does.

On 06/29/2018 12:26 AM, Cyril Auburtin wrote:

```js
if (!obj.x && !obj.y) {
     doit()
}
```
The cases where they are equal to 0, '', null, undefined shouldn't matter imo, if for example those x and y are numbers, they would be defined, defaulted to 0, and you would test for `!== 0` rather if needed

Le jeu. 28 juin 2018 à 18:31, Guylian Cox <[email protected] <mailto:[email protected]>> a écrit :

    I agree, it's very annoying to have to write it !(x in y). I've
    been wanting this operator for a very, very long time.

    If there is interest for !in, I think !instanceof deserves to be
    included too.

    Le jeu. 28 juin 2018 à 18:19, T.J. Crowder
    <[email protected]
    <mailto:[email protected]>> a écrit :

        On Thu, Jun 28, 2018 at 5:14 PM, Tobias Buschor
        <[email protected] <mailto:[email protected]>>
        wrote:
        > I dont like to write:
        > if ( !('x' in obj) &&  !('y' in obj) ) {
        >      doit()
        > }
        >
        > I was even tempted to write it that way:
        > if ('x' in obj  ||  'y' in obj) { } else {
        >      doit()
        > }

        There's

        ```js
        if (!('x' in obj  ||  'y' in obj)) {
             doit()
        }
        ```

        That said, I've wanted !in many a time, in a minor sort of way...

        -- T.J. Crowder
        _______________________________________________
        es-discuss mailing list
        [email protected] <mailto:[email protected]>
        https://mail.mozilla.org/listinfo/es-discuss

    _______________________________________________
    es-discuss mailing list
    [email protected] <mailto:[email protected]>
    https://mail.mozilla.org/listinfo/es-discuss



_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss


_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to