It works but it doesnt

What would be the difference here in using || and && … why my code works but doesnt pass the test


Your code so far

// Setup
function abTest(a, b) {
  // Only change code below this line
  if (a && b < 0) {
  // Only change code above this line

  return Math.round(Math.pow(Math.sqrt(a) + Math.sqrt(b), 2));

// Change values below to test your code

Your browser information:

Your Browser User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36.

Link to the challenge:

|| means “or” - if either of the items is true, this returns true
&& means “and” - this only returns true if both the items are true.

Hint: If I wanted to test whether any of 3 different variables had a value greater than 10, I would write my if statement like below:

var x = 3;
var y = 15;
var z = 100;
if (x > 10 || y > 10 || z > 10) {
  // one of the variables x, y, or z was greater than 10

Remember, && means AND || means OR. The instructions ask you to modify the function so that if a or b are less than 0, you should return undefined.