Code:
; syntax: /join [-inx] <#Channel1[:password1]>,[Channel2[:Password2]],...,[ChannelN[:PasswordN]]
/j {
  if ($chr(35) !isin $1) var %params = $1, %chans = $1-, %a = 1
  else var %chans = $1-, %a = 1
  while ($gettok(%chans, %a, 44)) {
    var %curchan = $ifmatch
    if (#*:* iswm %curchan) /join %params %join $gettok(%curchan, 1, $asc(:)) $gettok(%curchan, 2, $asc(:))
    else /join %params %curchan
    /inc %a
  }
}


/j -n #king-tomato,#private:mypassword,#kingtomato,#help,#mirc:scripting

That would join all the channels, using property -n (from /join syntax) and then use a password for #private and #mirc.