js结合性问题

用户头像
作者:新鲜噩梦
简介:little笔记全栈作者
创建于:2025-06-23 10:54:09字数:570
问题1:三元运算符是有右结合性,那么下面代码为什么没有执行a1?
js
function a1() { console.log('a1'); return 'a1'; } function a2() { console.log('a2'); return 'a2'; } const text = a2() ? '3' : a1() ? '1' : '2'; console.log(text);
答:结合性不等于执行顺序。结合性是编译时的语法规则,而执行顺序是运行时的求值规则。
问题2:小括号的优先级最高,为什么下面代码没有先执行小括号的内容?
js
function a1() { console.log('a1'); return 'a1'; } function a2() { console.log('a2'); return 'a2'; } const text = a2() ? '3' : (a1() ? '1' : '2'); console.log(text);
答:
  1. 括号优先级最高:确保运算结构正确
  2. 短路求值更强大:决定代码是否真正执行
  3. 结构 ≠ 执行:有些代码在语法上存在,但运行时可能不会执行
最后编辑于:2025-09-01 17:15:02
©著作权归作者所有,转载或内容合作请联系作者。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,little笔记系信息发布平台,仅提供信息存储服务。