![]() | 1 Bryan0Z 2018-12-19 09:11:17 +08:00 via Android try with resources 才是语法糖 当然有不用解决不了的,比如异常时资源的释放 |
![]() | 2 Bryan0Z 2018-12-19 09:11:38 +08:00 via Android 唔,看错了,原来是 js … |
3 quinoa42 2018-12-19 09:12:08 +08:00 一时想不出来,确实可以理解为把 finally 的 block 分别接在 try 和所有 catch 的后面 |
4 azh7138m 2018-12-19 09:13:38 +08:00 via Android 是。 没有。 es6 之后的这些东西,大部分都是语法糖。 |
![]() | 5 aneureka 2018-12-19 09:14:53 +08:00 via Android @quinoa42 其实有细微差别,finally 是无论如何都会执行的,很直接放在后面不一样(比如 try/catch 块里的前面有 return 语句的话就执行不到了) |
6 quinoa42 2018-12-19 09:17:18 +08:00 @aneureka 确实,还有没有 catch 到的 exception 的情况 不过这两种特殊对待的话(把代码块加在 return 和 throw 前面)好像也可以只靠 try 和 catch 来实现 |
7 frankkai 2018-12-19 09:42:22 +08:00 via Android 我对 js 的语法糖已经无感了,还是 java 的 final 可爱 |
8 meetfly 2018-12-19 10:04:06 +08:00 什么叫语法糖 |
![]() | 9 akiakiseofficial 2018-12-19 10:25:41 +08:00 via iPhone @meetfly 跟 #1 说的 Java 里的 try with resources 一样的,你不用也可以实现功能,但是用了写起来更舒服的语法。 |
![]() | 10 Sparetire 2018-12-19 10:36:51 +08:00 via Android 似乎有一个不用 finally 解决不了的场景,生成器函数的资源释放,在 for/for of 迭代生成器的时候 break 了,需要关闭生成器中持有的文件之类,只能是 finally 了吧 |
![]() | 11 Mutoo 2018-12-19 10:36:57 +08:00 finally 在 ECMA-262 第三版( 1999 年)里就是语法规范了,不是语法糖。 https://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262,%203rd%20edition,%20December%201999.pdf |
![]() | 12 Sparetire 2018-12-19 10:41:00 +08:00 via Android ![]() |
![]() | 13 msg7086 2018-12-19 13:46:01 +08:00 ![]() 语法糖这个东西,各人有各人的见解。说得杠一点,什么东西都是 CPU 指令集的语法糖。try catch 抛异常本来也是「语法糖」,比如 C 语言里就没这东西,大家都活得好好的,但是现代语言里都认为异常捕捉属于必须的语言特性了。finally 也一样。 |
![]() | 14 otakustay 2018-12-19 13:48:12 +08:00 如果这样理解语法糖,很多关键字都会是语法糖: - with:仔细想想不用你会死吗 - switch/case:写 if - in:一路向上 hasOwnProperty - break:自己写好 if 加上闭包变量值修改,绝对可以不用 - instanceof:自己看 prototype - new:写函数 apply - typeof:Object.prototype.toString 基于 for/while 都可以转成递归玩,所以你看……有意义吗 |
![]() | 15 lqzhgood 2018-12-19 15:36:07 +08:00 P.then().catch().finally() 是不是也可以这样写,除了语义上的区别 P.then().catch().then() |
16 meloner 2018-12-19 19:41:49 +08:00 别纠结这些, 能提高可读性、编码效率或是运行效率就是好特性 编程语言都是语法糖,1010 才是本质 1010 都是表象, 高低电平才是本质 高低电平都是表象..... |