何时需为JS变量添加引号?变量func加引号原因求解
func in Your JavaScript Code Hey there! Let’s break down why wrapping func in quotes makes sense in your working JS code—this typically falls into two common scenarios, so I’ll walk through each with examples to make it clear.
1. You’re using func as an object property name
In JavaScript, object property names can be written without quotes if they’re valid identifiers (no spaces, special characters, or reserved words). But there are times you have to use quotes, or might choose to for consistency:
- If the property name has hyphens, spaces, or starts with a number (e.g.,
'func-1'), quotes are mandatory. - Even for valid identifiers like
func, some code styles or linters enforce quotes for all object properties to keep syntax consistent.
Example:
// Both work, but quotes are optional here for valid identifiers const myObj = { func: () => console.log("I'm a function"), 'func-with-suffix': () => console.log("I need quotes!") }; // Accessing the property also works either way myObj.func(); // Runs the first function myObj['func'](); // Also runs the first function (useful if the property name is dynamic)
2. You need func as a string value, not a variable reference
If you’re using the name "func" itself as a string (instead of referencing the variable’s value), quotes are required. This often comes up in debugging, reflection, or when passing configuration that needs to reference variable names.
Example:
const func = () => "Hello from the function"; // Without quotes: you're referencing the variable's value (the function) console.log(func); // Logs: ƒ () => "Hello from the function" // With quotes: you're using the string "func" console.log('func'); // Logs: "func"
Another edge case: if you’re using eval() (though it’s generally not recommended) to execute dynamic code, you’d wrap code strings in quotes—so if func holds a string of code, it needs quotes when defining it:
const func = 'console.log("Executing dynamic code")'; eval(func); // Runs the code string
Quick recap
In your working code, it’s almost certainly one of these cases: either you’re defining or accessing an object property named func (quotes might be required or a style choice), or you need to treat "func" as a literal string instead of referencing the variable. If you can share a snippet of your exact code, I can give an even more precise breakdown!
内容的提问来源于stack exchange,提问作者DCR

