Testing || operators for assigning

Question from TCE

by Danack

JavaScript

try{
  
  var foo;
  
  var state = "";
  
  state.button = "Button set";
  
  var displayText = (state && state.button) || state || 'default';
  
  alert("Test 1 is [" + displayText + "]");
  
}
catch(error){
    alert("Exception caught: " + error);
}

try{
  
  var foo;
  
  var state = new String("");
  
  state.button = "Button set";
  
  var displayText = (state && state.button) || state || 'default';
  
  alert("Test 2 is [" + displayText + "]");
  
}
catch(error){
    alert("Exception caught: " + error);
}