2017-02-04 12 views
1

У меня есть объект Obj с именем свойства.В чем разница между obj [name] и obj ['name'] в JavaScript

var Obj = {name: "NamePropertyValue", '': "EmptyPropertyValue", null: 'NullPropertyValue'} 

console.log(Obj["name"]); >>> Output is : NamePropertyValue 

console.log(Obj["null"]); >>> Output is : NullPropertyValue 
console.log(Obj[null]); >>> Output is : NullPropertyValue 

Но для вывода ниже выходного свойства EmptyPropertyValue, а не NamePropertyValue. ПОЧЕМУ?

console.log(Obj[name]); >>> Output is : EmptyPropertyValue 

Что такое 'имя' в JavaScript? Почему по умолчанию имеет пустое значение строки, а не 'неопределенными'

var abc;  
console.log(abc); >>> undefined 
var name; 
console.log(name); >>>  (it gives empty string and not undefined. Why?) 

ответ

3

В чем разница между OBJ [имя] и obj ['name'] в JavaScript

name является переменной. 'name' - это строка.

Значение между квадратными скобками всегда оценивается как строка.

var name = "name"; 
Obj[name] === Obj["name"] 

var name = "other"; 
Obj[name] !== Obj["name"] 

Что такое «имя» в JavaScript? Почему по умолчанию имеет пустое значение строки, а не «неопределенные»

Это name of the window.