La variabile denominata “nome” è sempre definita in Javascript?

document.writeln('name=' + name); // name = document.writeln('notName=' + notName); // ReferenceError: notName is not defined 

Il “nome” ha un significato speciale in javascript? (selezionato IE e FF)

La variabile denominata “nome” è sempre definita in Javascript?

No. Tuttavia, sui browser c’è un name chiamato globale che è il nome della finestra corrente. Questo è un sottoprodotto del fatto che l’object globale JavaScript sui browser è l’object Window. Un po ‘di spiegazione:

In JavaScript, le variabili globali sono in realtà proprietà di qualcosa chiamato “object globale”. Sui browser, l’object globale è l’object Window per la pagina e quindi ha tutti i tipi di proprietà predefinite (e quindi globali) relative ad esso, essendo un object Window , inclusi ma non limitati a:

  • name : il nome della finestra corrente
  • title – Il titolo della finestra corrente
  • status – Il contenuto dell’area di stato (tranne la maggior parte dei browser lo ignora)
  • document – Il documento nella finestra corrente
  • window – Un riferimento all’object globale (ad esempio, un riferimento circolare)
  • setTimeout – Una funzione utilizzata per pianificare che qualcosa avvenga in seguito

…e molti altri. Riceve anche tutti i tipi di altre cose, come una proprietà per ogni elemento DOM che ha un id (il nome della proprietà è l’ id , il suo valore è un riferimento all’elemento DOM), su alcuni browser lo stesso è vero per elementi DOM con una proprietà name e così via. È molto ingombrante

name è una proprietà della window

notName non lo è, finché non viene definito come tale

 var output = "window.name: " + window.name + "\r\n" + "name: " + name; alert(output);