JavaScript中' '和(' ')的区别

5
什么是''('')之间的区别?
let n = 'a' + 1

let n = ('a') + 1

let n = ('a') + (1)

有何差别?


2
没有区别! - Boris
1
就像数学中的 10(10) 一样... - FZs
2
没有任何人。带有单个值的括号没有意义,但也不会造成伤害。 - Nina Scholz
1
无论您在哪里使用'a1',类型都将为STRING。 - Alexandr Erokhov
1
()用于改变执行顺序,具有较低的优先级[运算符优先级](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence)。如果语句的顺序相同,则括号无用。 - AZ_
显示剩余5条评论
4个回答

8

它们是一样的。

() 在特别是数学运算和字符串连接同时出现时非常重要,因为它涉及优先级。 请阅读此信息

var example1='x' + (1+2); console.log(example1);
var example2='x'+1+2; console.log(example2);

var example3=("x"+4)/2; console.log(example3);
var example4=("x")+(4/2); console.log(example4);


1
就像数学中的BODMAS一样。 - Nathan Stockton

5
从对象中获取属性不需要使用括号。

var value = { x: 1 }.x;

console.log(value);

基本上,括号的唯一需求是在声明之外解构项。

不起作用

var foo;

{ foo } = { foo: 1 }; // assigment to a block statement

console.log(foo);

作品

var foo;

({ foo } = { foo: 1 });

console.log(foo);

另一个使用括号的案例是,采用返回对象的箭头函数

var fn = foo => ({ foo });

console.log(fn(1));


3

''('')没有区别。括号在你的代码示例中没有任何区别。

括号(),也称为分组运算符,用于更改表达式的求值顺序。考虑以下表达式:

1 + 2 * 3   

作为运算符优先级更高的操作符,首先会计算2 * 3,然后将乘法结果加上1。

const result = 1 + 2 * 3;

console.log(result);

如果你想先进行加法,那么可以使用()
(1 + 2) * 3   

添加括号将改变表达式的计算顺序。现在,1 + 2 将首先被计算,然后将加法结果乘以 3,而不是直接进行乘法计算。

const result = (1 + 2) * 3;

console.log(result);


0

分组运算符 ()

分组运算符表示表达式或子表达式的优先级。

使用分组运算符,可以通过告诉编译器一个具有较低优先级的表达式应该在具有更高优先级的表达式之前被评估来覆盖正常的评估优先级。

console.log(3 + 4 * 5); // 3 + 20
// expected output: 23

console.log(4 * 3 ** 2); // 4 * 9
// expected output: 36

let a;
let b;

console.log(a = b = 5);
// expected output: 5

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接