引用 google 实例时 && 用法的说明

Explanation for && usage when referring to google instance

我正在使用 vue2-google-maps 模块,当需要从组件 prop 中引用 google 实例时遇到了以下语法。

scaledSize: google && new google.maps.Size(50, 50)

它是这样使用的:

<GmapMarker
  :key="e.coordinates.lat + e.coordinates.lng"
  v-for="e in poi"
  :position="e.coordinates"
  :icon="{
    url: require(`@/assets/${e.icon}`),
    scaledSize: google && new google.maps.Size(50, 50)
  }"
/>

google是一个计算出来的属性。

import { gmapApi } from 'vue2-google-maps'


export default {
  computed: {
    google: gmapApi
  }
}

google && 是什么意思,为什么要在 new google.maps.Size(50, 50) 之前?

谢谢!

&& 称为 logical AND 运算符,在这种情况下它用于避免错误。 MDN 文档指出:

If expr1 can be converted to true, returns expr2; else, returns expr1.

这意味着如果变量 google 未正确初始化,它将 return 虚假值而不是抛出异常(例如无法读取 属性 'maps' of undefined/null).