connectionsとmessagesはオブジェクトであるため、と[は]配列インデックスを表すのではなく、変数を使用して変数の名前を見つけるメンバーにアクセスするための構文です。
var path = 'x'
connections[path] = connections[path] || [];
上記path = 'x'は等しいので、
connections.x = connections.x || [];
の値によって名前が付けられた 2 つのオブジェクトのメンバーがpath存在する場合は、それを保持し (現在の値をそれ自体に割り当てます)、そうでない場合は (||ここでは結合に使用されます)、新しい空の配列または new{ version: 0, body: '' }をそれぞれ作成します。
合体/論理ORは、左から右に簡単に連鎖できることに注意してください。たとえば、場合によっては次のようなことをしたいかもしれません:
function createItem(color) {
// if a color is specified in the arguments, use that
// otherwise, if a color is specified in the settings object for this instance
// of the current user control, use that. otherwise, fall back to the global
// default values. if none of these settings have been defined, use black.
color = color || instanceSettings.defaultColor
|| globalSettings.defaultColor
|| '#000000';
...
}