Javascript 以下js代码片段之间的差异

Javascript 以下js代码片段之间的差异,javascript,Javascript,我是Javascript新手,对以下代码片段之间的区别有点困惑 片段1: window.onload = function() { var friendlyChat = new FriendlyChat(); }; window.onload = function() { var friendlyChat = new FriendlyChat(); }; var sample = function () { var sampleInstance = friendlyChat;

我是Javascript新手,对以下代码片段之间的区别有点困惑

片段1:

window.onload = function() {
  var friendlyChat = new FriendlyChat();
};
window.onload = function() {
  var friendlyChat = new FriendlyChat();
};

var sample = function () {
   var sampleInstance = friendlyChat; //error
   // friendlyChat cannot be accesses here as you have declared it 
   // at function scope which gets destroyed once the function has 
   // returned or completed the execution.
}
片段2:

window.onload = function() {
  window.friendlyChat = new FriendlyChat();
};
window.onload = function() {
  window.friendlyChat = new FriendlyChat();
};

var sample = function () {
   var sampleInstance = friendlyChat; 
   // friendlyChat can be accesses here as you have declared it at 
   // windows scope which is available globally.
}
谁能告诉我他们之间的区别吗?

片段1:

window.onload = function() {
  var friendlyChat = new FriendlyChat();
};
window.onload = function() {
  var friendlyChat = new FriendlyChat();
};

var sample = function () {
   var sampleInstance = friendlyChat; //error
   // friendlyChat cannot be accesses here as you have declared it 
   // at function scope which gets destroyed once the function has 
   // returned or completed the execution.
}
friendlyChat
是一个局部变量,只能在此函数中访问

片段2:

window.onload = function() {
  window.friendlyChat = new FriendlyChat();
};
window.onload = function() {
  window.friendlyChat = new FriendlyChat();
};

var sample = function () {
   var sampleInstance = friendlyChat; 
   // friendlyChat can be accesses here as you have declared it at 
   // windows scope which is available globally.
}

friendlyChat
是一个全局变量,可以在根级别(即窗口)声明的任何位置访问它。

第一个变量创建一个局部变量;第二个变量创建了一个全局变量。也许这是一个有价值的资源: