what is the difference between const and const {} in javascript

前端 未结 3 1014
挽巷
挽巷 2020-11-28 20:06

When I study electron, I found 2 ways of getting BrowserWindow object.

const {BrowserWindow} = require(\'electron\')

and

co         


        
相关标签:
3条回答
  • 2020-11-28 20:19

    The two pieces of code are equivalent but the first one is using the ES6 destructuring assignment to be shorter.

    Here is a quick example of how it works:

    const obj = {
      name: "Fred",
      age: 42,
      id: 1
    }
    
    //simple destructuring
    const { name } = obj;
    console.log("name", name);
    
    //assigning multiple variables at one time
    const { age, id } = obj;
    console.log("age", age);
    console.log("id", id);
    
    //using different names for the properties
    const { name: personName } = obj;
    console.log("personName", personName);

    0 讨论(0)
  • 2020-11-28 20:19
    const {BrowserWindow} = require('electron')
    

    Above syntax uses ES6. If you have an object defined as:

    const obj = {
        email: "hello@gmail.com",
        title: "Hello world"
    }
    

    Now if we want to assign or use email and title field of obj then we don't have to write the whole syntax like

    const email = obj.email;
    const title = obj.title;
    

    This is old school now.

    We can use ES6 Destructuring assignment i.e., if our object contains 20 fields in obj object then we just have to write names of those fields which we want to use like this:

    const { email,title } = obj;
    

    This is ES6 syntax-simpler one It will automatically assign email and title from obj, just name has to be correctly stated for required field.

    0 讨论(0)
  • 2020-11-28 20:29

    This is one of the new features in ES6. The curly braces notation is a part of the so called destructuring assignment. What this means is that, you no longer have to get the object itself and assign variables for each property you want on separate lines. You can do something like:

    const obj = {
      prop1: 1,
      prop2: 2
    }
    
    // previously you would need to do something like this:
    const firstProp = obj.prop1;
    const secondProp = obj.prop2;
    console.log(firstProp, secondProp);
    // etc.
    
    // however now you can do this on the same line:
    const {prop1, prop2} = obj;
    console.log(prop1, prop2);

    As you have seen in the end the functionality is the same - simply getting a property from an object.

    There is also more to destructuring assignment - you can check the entire syntax in MDN: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment

    0 讨论(0)
提交回复
热议问题