javascript中var [{}]和var {}之间的区别是什么,让[{}]和let {}在typescript中有什么区别?

时间:2017-11-30 13:02:57

标签: javascript typescript

Javascript中的var [{}]var {}以及Typescript中的let [{}]let {}之间有什么区别?

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

注意我不是在问letvar

之间的区别

5 个答案:

答案 0 :(得分:5)

如果我理解你的正确......

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

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

  

如何使用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

  

让[{}]让letcript中的{}

Typescript中的

let与Javascript(ES6)

中的相同

答案 1 :(得分:2)

[{}]是一个数组

{}只是一个对象。

let =>允许您将范围有限的变量声明为使用它的块,语句或表达式。这与var关键字不同,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();

// object

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);

答案 2 :(得分:1)

[{}]{}letvar

完全相同

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

答案 3 :(得分:0)

括号是数组[]的符号 在数组中,您可以拥有字符串,数字......和对象。 对象的符号是Curly bracket {}。 所以你有一个带有Object的数组。

答案 4 :(得分:0)

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

let创建了自己的范围,并且不会像var那样没有范围而且悬而未决。

function testVar () {
  var a = 2;
}

在运行时看起来像这样:

var a; // hoisted

function testVar () {
  a = 2;
}

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

function testLet () {
  let a = 2;
}