【问题标题】:What is difference between var [{}] and var{} in javascript and let[{}] and let {} in typescript? [closed]javascript 中的 var [{}] 和 var{} 以及 typescript 中的 let[{}] 和 let {} 有什么区别? [关闭]
【发布时间】:2018-05-14 10:12:31
【问题描述】:

Javascript 中的 var [{}]var {} 与 Typescript 中的 let [{}]let {} 有什么区别?

我经常使用这两种语言,所以这是我经常思考的基本问题,迫不及待地想阅读您的建设性 cmets。

注意我不是在问letvar 之间的区别

【问题讨论】:

  • 我假设不赞成票是因为您刚才说引用标题。希望人们不要认为这是一个无效的问题,因为我认为这是一个非常好的问题。您可能希望重写您的问题主体,使其更具体、更易读。
  • 这个问题还不清楚。似乎它在询问创建对象和创建长度为 1 且内​​部包含对象的数组的区别。但这纯粹是猜测。请澄清。

标签: javascript typescript


【解决方案1】:

[{}] 是一个包含对象的数组,而{} 是一个对象。两者都使用文字形式。

let 创建自己的范围,它不会被提升,不像 var 没有范围并且它被提升。

function testVar () {
  var a = 2;
}

在运行时看起来像这样:

var a; // hoisted

function testVar () {
  a = 2;
}

let 不是这种情况,因为它会在运行时创建其词法范围;

function testLet () {
  let a = 2;
}

【讨论】:

    【解决方案2】:

    [{}] 是一个数组

    {} 只是一个对象。

    let => 允许您声明范围限于使用它的块、语句或表达式的变量。这与 var 关键字不同,它在全局范围内定义一个变量,或者在整个函数的本地定义一个变量,而不考虑块范围

    供进一步参考 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let

    function letTest() {
      let x = 1;
      if (true) {
        let x = 2;  // x value different variable
        console.log(x);  // 2
      }
      console.log(x);  // 1
    }
    
    letTest();

    var => 变量声明,无论它们出现在哪里,都会在执行任何代码之前进行处理。

     function varTest() {
          var x = 1;
          if (true) {
            var x = 2;  // x value different variable
            console.log(x);  // 2
          }
          console.log(x);  // 2
     }
    
     varTest();

    //对象

    var obj={"id":1,"name":"kalaiselvan.a"};
    
    console.log(obj);

    //对象数组

    var arr=[{id:1,name:"Emile Cantero"},{id:2,name:"Suren Srapyan"},{id:3,name:"Wesley Coetzee"}]
    console.log(arr);

    【讨论】:

      【解决方案3】:

      如果我理解你的话……

      [{}] 是一个数组,其中包含一个项目 - 一个对象 {}。稍后您可以将更多对象添加到此数组中,并得到 [{}, {}]

      {} 只是一个对象。与上面相比,这种类型的变量在数组中。

      varlet 的声明怎么样。

      实际上差异与您不问的varlet 有关:)。这与他们的性质/行为有关,与[{}]{}letvar 无关。

      示例

      let obj = { prop: 'Prop from object' };
      let arrayOfObj = [ { prop: 'Prop from array object' } ];
      
      console.log(obj.prop);
      // ------------^^^^^
      console.log(arrayOfObj[0].prop);
      // -------------------^^^^^ Accessing the first item in the array which is the object at first place and then to its proeprty

      让 [{}] 和让 {} 在 Typescript 中?

      Typescript 中的let 与 Javascript (ES6) 中的相同

      【讨论】:

        【解决方案4】:

        括号是数组的符号[] 在数组中,您可以有字符串、数字……和一个对象。 对象的符号是大括号 {}。 所以你有一个数组,里面有一个对象。

        【讨论】:

          【解决方案5】:

          [{}]{} 的含义完全相同,无论是 let 还是 var

          [{}] 是一个数组([]),对象({}),{} 只是一个对象。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2022-07-21
            • 2014-07-23
            • 1970-01-01
            • 1970-01-01
            • 2018-12-09
            相关资源
            最近更新 更多