From the bash manpage:
((expression)) The expression is evaluated according to the rules described below under ARITHMETIC EVALUATION. If the value of the expression is non-zero, the return status is 0; otherwise the return status is 1. This is exactly equivalent to let "expression". [[ expression ]] Return a status of 0 or 1 depending on the evaluation of the conditional expression expression. Expressions are composed of the primaries described below under CONDITIONAL EXPRESSIONS. Word splitting and pathname expansion are not performed on the words between the [[ and ]]; tilde expansion, parameter and variable expansion, arithmetic expansion, command substitution, process sub‐ stitution, and quote removal are performed. Conditional operators such as -f must be unquoted to be recognized as primaries.
You use (( )) to perform mathematic and bitwise comparison, and [[ ]] to perform more abstract comparisons (to test file attributes and perform string and arithmetic comparisons), for example
touch test; if [ -e test ]; then echo test exists else echo test does not exist fi