Javascript中的var [{}]
和var {}
以及Typescript中的let [{}]
和let {}
之间有什么区别?
我经常使用这两种语言,所以这是我经常思考的一个基本问题,迫不及待地想阅读你的建设性意见。
注意我不是在问let
和var
答案 0 :(得分:5)
如果我理解你的正确......
[{}]
是一个包含一个项目的数组 - 一个对象{}
。稍后您可以在此数组中添加更多对象,并获得[{}, {}]
{}
只是一个对象。与上面相比,这种类型的变量在数组中。
如何使用
var
和let
进行声明。
实际上,差异与你不问的var
和let
有关。它与其性质/行为有关,而与[{}]
和{}
let
或var
无关。
示例强>
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中的让[{}]让letcript中的{}
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)
[{}]
和{}
与let
或var
[{}]
是一个数组([]
),对象({}
),{}
只是一个对象。
答案 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;
}