Parentheses are used in two main ways in Javascript. The first is to feed an argument into a function, or to call a function. For example, you could write a function (a block of code that makes something happen) that figures out the square root of a number: function squareRoot(number). The argument (the bit inside the parentheses) is the value that the function will alter. You can get this function to run by calling it: squareRoot(25); which will return the squareroot of 25, 5.
You can also use parentheses to group together equations or conditions, similar to how you used BEDMAS in school. Parentheses tell the computer which parts of the code to execute first.
Square brackets can be used to create arrays, which are one way you can hold several values in once place. An Array filled with numbers looks like this: var newArray = [10, 24, 32, 45, 58];. Because the values inside an array have consistent positions you can also use brackets to access them. For example, newArray[0] would access the value at the first postion in the array: 10.
You can also use square brackets to access values inside objects, which are another way to hold several values. An object looks like this: var newObject = {name: "Kate", age: 24}. I could access the name property with newObject["name"]. You could also do this using dot notation: newObject.name.
A difference between objects and arrays is that values in an object are always contained within curly braces. Braces are also used to surround blocks of code, like functions, for statements, or if/else statements. If your block of code makes something happen, like changing a variable, or searching through a group of variables it probably needs curly braces.
Single and double quotes are more or less interchangeable in Javascript. They can both be used to create a string, which is just a variable wrapped in quotes. For example, var newString = "this is a string".
You can also use quotes along with bracket notation to access a variable inside an object. The difference between newObject[name] and newObject["name"] is that the first will assume 'name' is a stand in for a variable, the same way you'd use 'x' in algebra. But if quotes are used the computer will look for the value that matches the variable name 'name'. Using the same example as the brackets section newObject["name"] would return the value "Kate".