定义:扩展运算符(spread)是三个点(
...
),可以将一个对象转为用逗号分隔的参数序列;和数组不同,参数序列需要用大括号{}
包裹,否则会报错。
错误:Uncaught TypeError: Found non-callable @@iterator
let o = {
name:"张三",
age:18
};
console.log(o); //{name: "张三", age: 18}
console.log({...o}); //{name: "张三", age: 18}
我的回答:
首先,计算用户体脂率需要获取身高、体重等数据,在输入框中获取到这些数据后,需要使用parseFloat()函数将其转换为浮点数,确保参与计算的是数字类型的数据。
其次,计算体脂率时需要使用一定的公式,这里提供一个根据身高、体重和年龄计算体脂率的公式:
体脂率 = 1.2 * 体重 / (身高 * 身高) + 0.23 * 年龄 - 5.4
最后,在JS中计算体脂率时,可以将计算结果四舍五入到小数点后两位,确保计算结果的准确性。
下面是一个示例代码:
HTML部分:
<label for="height">身高(CM):</label>
<input type="number" id="height" name="height" min="1" step="0.1"/>
<label for="weight">体重(KG):</label>
<input type="number" id="weight" name="weight" min="1" step="0.1"/>
<label for="age">年龄:</label>
<input type="number" id="age" name="age" min="1" step="1"/>
<button onclick="calculate()">计算体脂率</button>
<p>您的体脂率为:<span id="result"></span></p>
JS部分:
function calculate() {
// 获取输入框中的身高、体重和年龄
var height = parseFloat(document.getElementById("height").value);
var weight = parseFloat(document.getElementById("weight").value);
var age = parseFloat(document.getElementById("age").value);
// 计算体脂率
var result = 1.2 * weight / (height * height) + 0.23 * age - 5.4;
// 四舍五入到小数点后两位
result = result.toFixed(2);
// 将计算结果显示在页面上
document.getElementById("result").innerText = result;
}
以上代码中,首先使用parseFloat()函数获取输入框中的身高、体重和年龄等数据,然后根据公式计算出体脂率。最后,使用toFixed()函数将计算结果四舍五入到小数点后两位,并将结果显示在页面上。
你getelementbyid写在onload里面了,此时用户还没有输入呢。