Heretic Man, eval выполняет строку кода, аналог innerHTML который создает DOM. только тут все что угодно. И не дай бог, в str попадет инородный скрипт. Например вы всегда проверяете 2 значения и переводите их, например из какого-то стороннего API, ссылка example.com/is_bool=true. Вы ее хотите переделать в бул. А если сервер захватят злоумышленники и будут отправлять example.com/is_bool=alert('ты дебил!) - ваши клиенты будут немного недовольны:)
Heretic Man, добавлю, что это неявная штука, код должен быть прост и понятен, без всяких редких хаков (почитайте Мартина книгу "чистый код"). Ещё для любителей микрооптимизаций, решение со сравнением выполняется быстрее этих хаков. В моем ответе ниже, вообще грязь, за которую не грех уволить :-)