面试题答案
一键面试<!DOCTYPE html>
<html lang="zh - CN">
<head>
<meta charset="UTF - 8">
<meta name="viewport" content="width=device-width, initial - scale=1.0">
<title>获取地理位置</title>
</head>
<body>
<div id="result"></div>
<script>
const resultDiv = document.getElementById('result');
navigator.geolocation && navigator.geolocation.getCurrentPosition(
position => {
resultDiv.textContent = `纬度: ${position.coords.latitude}, 经度: ${position.coords.longitude}`;
},
error => {
resultDiv.textContent = `获取位置失败: ${error.message}`;
}
) || (resultDiv.textContent = '您的浏览器不支持获取地理位置信息');
</script>
</body>
</html>
优势阐述:
- 性能方面:逻辑表达式短路求值在条件满足时会立即停止后续表达式的计算。例如在
navigator.geolocation && navigator.geolocation.getCurrentPosition(...)
中,如果navigator.geolocation
为false
,那么getCurrentPosition
方法就不会被调用,减少了不必要的函数调用开销,相比if - else
语句,在某些情况下可以提升性能。 - 代码简洁性方面:逻辑表达式短路求值用简洁的一行代码就完成了条件判断和相应操作,而传统
if - else
语句需要更多的代码块和缩进,使代码看起来更冗长。例如上述代码,使用短路求值避免了显式的if - else
代码块,使代码更加紧凑和易读。