关于coding中赋值运算和逻辑运算优先级的问题

var isMonittor=(param.viewSetting?param.PageAccessMode:param.PageViewMode)||"Normal"=="Monitor"

上面这段代码在以下几种情况isMonittor的值
场景一

param.PageAccessMode = "acess";
param.PageViewMode = "view";
param.viewSetting = null;

场景二

param.PageAccessMode = "acess";
param.PageViewMode = "view";
param.viewSetting = "test";

场景三

param.PageAccessMode = null;
param.PageViewMode = "view";
param.viewSetting = null;

场景四

param.PageAccessMode = null;
param.PageViewMode = null;
param.viewSetting = null;

场景四中什么情况下(不加任何代码)可以先赋值"normal"再去做monitor

阅读 1.7k
1 个回答

image.png

||&& 可以理解短路运算符。
如果根据第一个元素就已知结果,那么就不会继续运算。


var isMonittor=(param.viewSetting?param.PageAccessMode:param.PageViewMode)||"Normal"=="Monitor"

拆解一下

var isMonittor;
if(param.viewSetting){
    //param.PageAccessMode
    if(param.PageAccessMode){
        isMonittor=param.PageAccessMode
    }else{
        isMonittor="Normal"=="Monitor"
    }
}else{
    //param.PageViewMode
    if(param.PageViewMode){
        isMonittor=param.PageViewMode
    }else{
        isMonittor="Normal"=="Monitor"
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题