Why check .html() etc for "value === undefined" instead of arguments.length?

Why check .html() etc for "value === undefined" instead of arguments.length?

I'm wondering why .html(), .attr(), .css() etc check if a value was passed with "value === undefined" instead of checking with arguments.length if a (second) argument was passed at all.

I ran into problems a few times when chaining one of those methods and passing an undefined variable by accident - and jQuery returned the value instead of the jQuery object.
Sure, this way I instantly knew something was wrong because of a JavaScript error, but still - I'd expect another behavior: jQuery should set nothing when the value is undefined but return the object.

Regards, Jonas