采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
倒数第二个new Foo().getName(),有两个运算符new和点,new Foo()可以看作是带参数是19,不带参数是18,点也是19这块不是很明白?
.运算符的优先级是19,就是指.会优于其他运算符之前执行,但是执行点的时候,是按照点前和点后的表达式依次执行的,因为Foo后面有个括号,所以new运算符是归Foo()这个函数的,所以按照优先级顺序执行就是:点运算符前的new Foo()先执行,再执行点运算符后的 getName()。
这里点的优先级和带参new都是同级19,所以就是从左到右的顺序。而不是像你说的先执行左面再执行右面。如果按照你说的,1+2*3,先计算乘号左面再相乘?
是的,是需要先计算乘号左面,但是我所说的乘号左边的表达式在你这个情况下就是一个2,而并非你说的1+2,所以直接就是2*3。但是如果乘号前面是一个函数a(),那就需要先执行a(),再相乘。
登录后可查看更多问答,登录/注册
一门让你能成功获取前端 Offer 的课程, 不只是技术,面试“技巧”也至关重要
975 10
1.1k 10
1.5k 9
1.7k 8
1.1k 7