Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8102153
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 5, 20262026-06-05T23:10:23+00:00 2026-06-05T23:10:23+00:00

Today i saw this code, that was running in node.js environment. (>node.exe test.js) var

  • 0

Today i saw this code, that was running in node.js environment. (>node.exe test.js)

var param = (typeof module !== "undefined" && module.exports) || {};

(function(exports){

   console.log(exports === module.exports);

})(param);

And this log returned true.

Can anybody explain me such behavior?

Thanks in advance.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-05T23:10:24+00:00Added an answer on June 5, 2026 at 11:10 pm

    If module is not undefined (which it isn’t since it is the default object) and module.exports is a truthy thing (which it is by default), then exports is assigned to param and passed to the function.

    exports is then compared to module.exports, and they are the same because module.exports is where the object came from in the first place.

    (exports wouldn’t be the same as module.exports if it was running elsewhere (e.g. a browser where you get window, not module) since {} would be assigned to param instead.)


    Update re comments on the question:

    Hmm, maybe it’s wrong, but i thought that ((typeof module ..) || {}) will return true, but not “exports” object

    No. && will (working left to right) evaluate as the first falsey thing it tests or (if everything is truthy) the last truthy thing it tests.

    typeof module !== "undefined" is true so it tests module.exports, which is also true so it returns module.exports.

    (The || returns the first truthy or last falsey thing it tests, so it then returns module.exports)

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I was looking through some code today and saw something like the following: var
Today i saw this bad code structure and since then i started to think
I saw this question: Repeating code in JUnit tests earlier today. How do you
I was going through some code today and saw this: x.add(getResources().getString(R.string.none)); x.add(getResources().getString(R.string.today)); x.add(getResources().getString(R.string.tomorrow)); ...
This is something curious that I saw in my coding today. Here is the
I saw this today in some PHP code: $items = $items ?: $this->_handle->result('next', $this->_result,
I saw this in some code today. class Foo def self.bar @myvar = 'x'
Today I saw C# code that creates static dictionary and initializes it: public static
I saw this piece of code today and wanted to know is there a
I saw this code today : if(++counter == 10) { //Do Something foo(); }

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.