let obj = {name: 1};
console.log(typeof obj.name, obj.name); // `"number"`, `1`
Dlaczego name
Identyfikator oddanych na ciąg przy użyciu var
w obiekcie destructuring assignment?
let obj = {name: 1};
var {name} = obj;
console.log(name, typeof name); // `1` `string`
Ale nie używając let
lub const
?
let obj = {name: 1};
let {name} = obj;
console.log(name, typeof name);
Możemy uniknąć tego nieoczekiwany rezultat definiując inny identyfikator
let obj = {name: 1};
var {name:_name} = obj;
console.log(_name, typeof _name);
choć ciekawy co do znaczenia var
powrocie różne wyniki niż let
lub const
dla identyfikatora name
w środowisku przeglądarki?
Czy to zachowanie zgodne we wszystkich silnikach? –
@torazaburo Tak. chromium 58 i firefox 53 w * nix, 32-bitowy, dają taki sam wynik. Nie próbowałem na safari na Mac lub krawędzi na * indows. – guest271314
@torazaburo Zastępuje powiązany z 'window.name'. Dlaczego jednak inne wyniki dla 'var' i' let', 'const'? – guest271314