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