использовать jquery library
<html>
<head>
<script src='jquery.js' type="text/javascript"></script>
<script type="text/javascript" >
var i=0;
function add()
{
var tag = "<input type='text' name='" + i + "' /> <br/>";
var div_content=$('#y').append(tag);
i++;
}
</script>
</head>
<body>
<input type="button" id="x" value="Add" onclick="add();" />
<div id="y"></div>
</body>
</html>
Условие и принуждение , о которых вы упомянули, являются типами неявного принуждения .
Неявное принуждение относится к преобразованиям типов, которые не так удобны для чтения и не удобны для разработчиков. И из того, что я узнал, большая часть ненависти к неявному принуждению проистекает из того факта, что он не указывает точно, что именно конвертируется, и поэтому может привести к неожиданным или непреднамеренным результатам.
Булево преобразование - это явное принуждение , означающее, что оно более читабельно для разработчиков и определяет, что преобразуется (в отличие от того, что подразумевается).
У меня нет четких ответов о скорости / производительности и принципах в отношении ваших вопросов, но если вы беспокоитесь о читабельности (для будущего ознакомления или другого разработчика), то Булево преобразование является подходящим способом. идти.
Как условие, так и принуждение используют булеву логику js (вы можете проверить стандарт ECMA-262 для получения более подробной информации), в то время как булев конструктор фактически сам реализует эту логику.
Поэтому скорость / производительность -> Boolean () побеждает. Принципы / практика / и т.д.. -> в зависимости от стиля кода, который вы используете
В этом случае, Булево преобразование isGreaterThanZero= Boolean(zero)
является лучшим с точки зрения скорости / производительности, потому что за этим нет логического условия (если ... еще).
А остальные методы условие и преобразование приведения немного медленны из-за своего логического условия (если ... еще).
isGreaterThanZero= zero > 0
isGreaterThanZero= zero ? true : false