Разница между .prop() и .attr()?

Оба же работают с свойствами и атрибутами? Не могу понять в чем разница)

Вообще оба но есть нюансы, attr работает со значением атрибута, но им не задают значение, для этого используют prop(только свойства), вот простой пример:

$("input").change(function() {

var $input = $(this);

$("p").html(".attr('checked'): " $input.attr('checked') "
"
".prop('checked'): " $input.prop('checked') "
"
);

}).change();

<input id="check" type="checkbox" checked="checked">

<label
for="check">Check me