JS判断语句 注意多句时加大括号 回调函数LODOP兼顾写法
由于C-LODOP获取一些动作函数的返回值,需要用回调函数,由于常见的使用方法是混合部署,也就是同一个页面,根据浏览器的不同,可能会走LODOP ,也可能会走C-LODOP,因此写法要坚固两种,而有些人可能会不注意加大括号,而支线里又有多句,造成重复输出。
这个应该属于JS语句的执行的范畴,也就是if else里,如果支线有多个语句,需要用大括号括起来,否则会当作if else之外的语句执行。
测试代码如下:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>JS判断支线里,多个语句,不加大括号括起来,会不当做在支线里,</title>
<script language="javascript" src="LodopFuncs.js"></script>
</head>
<body>
<a href="javascript:getSystemInfo11()">lodop输出不带回调</a><br><!--lodop正常,c-lodop返回不正常-->
<a href="javascript:getSystemInfo22()">带回调,直接console返回值</a><br><!--都正常直接console返回值-->
<a href="javascript:getSystemInfo33()">支线判断不加大括号,两次赋值</a><br><!--支线判断不加大括号,两次赋值,结果先undefined后正确值-->
<a href="javascript:getSystemInfo44()">支线判断加大括号,两次赋值</a><br><!--都正常-->
<a href="javascript:getSystemInfo55()">支线判断不加大括号,两次赋值 alert</a><br><!--弹出两次,c-lodop里的和最后的都执行了--> <script language="javascript" type="text/javascript">
var LODOP; //声明为全局变量
function getSystemInfo11(){
LODOP=getLodop();
var cd=LODOP.GET_SYSTEM_INFO("Drive.Labels");
console.log(cd);
};
function getSystemInfo22(){
LODOP=getLodop();
if (LODOP.CVERSION) CLODOP.On_Return=function(TaskID,Value){console.log(Value);};
strResult=LODOP.GET_SYSTEM_INFO("Drive.Labels");
if (!LODOP.CVERSION) console.log(strResult);
};
function getSystemInfo33(){//两个console都执行了
LODOP=getLodop();
var cd;
if (LODOP.CVERSION) CLODOP.On_Return=function(TaskID,Value){cd=Value;console.log(cd);};
strResult=LODOP.GET_SYSTEM_INFO("Drive.Labels");
if (!LODOP.CVERSION)
cd=strResult;console.log(cd);
};
function getSystemInfo44(){//支线加大括号,支线不符合时不再执行
LODOP=getLodop();
var cd;
if (LODOP.CVERSION) CLODOP.On_Return=function(TaskID,Value){cd=Value;console.log(cd);};
strResult=LODOP.GET_SYSTEM_INFO("Drive.Labels");
if (!LODOP.CVERSION)
{cd=strResult;console.log(cd);}
};
function getSystemInfo55(){//两个alert都执行了
LODOP=getLodop();
var cd;
if (LODOP.CVERSION) CLODOP.On_Return=function(TaskID,Value){cd=Value;alert(cd);};
strResult=LODOP.GET_SYSTEM_INFO("Drive.Labels");
if (!LODOP.CVERSION)
cd=strResult;alert(cd);//不加大括号,弹出两次,c-lodop本身的执行后,支线第二句不会当作支线里的。
};
</script>
</body>
如图,测试代码的结果:
c-lodop测试结果(高版本的火狐谷歌,或qq,360一些浏览器的极速模式)
(错误)不带回调,在使用c-lodop的时候:7BCAAAJ1091_1、7BCAAAJ1091_2。。。。。
(正确)带回调,直接console返回值:CDEF
(错误)支线判断不带大括号,两次赋值,esle里两个语句,没有括起来:输出两个log,undefined CDEF
(正确)支线加大括号,两次赋值在大括号里,else两个语句括起来:CDEF
(错误)支线判断不带大括号,两次赋值,esle里两个语句,没有括起来,把输出log改成alert:弹出两次,一次undefined,一次CDEF。

JS判断语句 注意多句时加大括号 回调函数LODOP兼顾写法的更多相关文章
- 原生js判断css动画结束   css 动画结束的回调函数
		
原文:原生js判断css动画结束 css 动画结束的回调函数 css3 的时代,css3--动画 一切皆有可能: 传统的js 可以通过回调函数判断动画是否结束:即使是采用CSS技术生成动画效果,Jav ...
 - js判断input输入框为空时遇到的问题  弹窗后,光标没有定位到输入框,而是直接执行我的处理页面程序
		
无论是会员注册还是提交订单,我们都要使用到form表单,此时我们在处理数据时,就要判断用户填写的信息.一次是直接通过js判断input输入框是否没有填信息,然后在后台处理文件中通过过滤字符串后再次判断 ...
 - C 语言中的 switch 语句 case 后面是否需要加大括号
		
事件原由为编辑器的自动缩进,当 case 换行后不自动缩进. 于是在在想可以可否在 case 后面再大括号,让其自动缩进. 查了资料,发现 case 是可以加大括号的,相当于代码块. 而且还有另外一个 ...
 - js判断语句关于true和false后面跟数字或字符串的问题
		
我经常在代码中看到很长串判断,看到就头疼,简单的整理一下. 比如:(client.top>=0&&client.left>=0&&client.bottom ...
 - js实现IOS上删除app时颤抖动画j函数
		
欢迎提供更好的方法! <!--http://www.cnblogs.com/webzhangnan/p/3244920.html --> <html> <head> ...
 - C# if判断语句执行顺序
		
DataTable dt = null; )//不报错,因为先执行dt != null 成立时才执行dt.Rows.Count > 0 { } && dt != null)//报 ...
 - 浅谈js回调函数
		
回调函数原理: 我现在出发,到了通知你”这是一个异步的流程,“我出发”这个过程中(函数执行),“你”可以去做任何事,“到了”(函数执行完毕)“通知你”(回调)进行之后的流程 例子 1.基本方法 ? 1 ...
 - 采用指数退避算法实现ajax请求的重发,全部完成时触发回调函数
		
目录: 0.Chrome扩展开发(Gmail附件管理助手)系列之〇——概述 1.Chrome扩展开发之一——Chrome扩展的文件结构 2.Chrome扩展开发之二——Chrome扩展中脚本的运行机制 ...
 - 详解回调函数——以JS为例解读异步、回调和EventLoop
		
回调,是非常基本的概念,尤其在现今NodeJS诞生与蓬勃发展中变得更加被人们重视.很多朋友学NodeJS,学很久一直摸不着门道,觉得最后在用Express写Web程序,有这样的感觉只能说明没有学懂 ...
 
随机推荐
- VsCode云端版本
			
VsCode的云端版与客户端简直是一模一样. 官网地址为:https://coder.com/ 安装命令: docker run -t -p 127.0.0.1:8443:8443 -v " ...
 - TypeError: "x" is not a function
			
https://stackoverflow.com/questions/32751209/jasmine-typeerror-is-not-a-function 信息 TypeError: " ...
 - Linux内核入门到放弃-锁与进程间通信-《深入Linux内核架构》笔记
			
内核锁机制 对整数的原子操作 <asm-arch/atomic.h> typedef struct {volatile int counter;} atomic_t; //初始化只能借助于 ...
 - face recognition[Euclidean-distance-based loss][Center Face]
			
本文来自<A Discriminative Feature Learning Approach for Deep Face Recognition>,时间线为2016年.采用的loss是C ...
 - JS表格分页(封装版)
			
HTML代码: <html> <head> <meta charset='utf-8'> <script type="text/javascript ...
 - mybatis源码-原来resultMap解析完是这样
			
目录 1 两个基础类 1.1 列映射类ResultMapping 1.2 结果集映射类ResultMap 2. 解析 2.1 入口函数 2.2 解析流程 2.3 获取 id 2.4 解析结果集的类型 ...
 - 【C#复习总结】细说 Lambda表达式
			
1 前言 本系列会将[委托] [匿名方法][Lambda表达式] [泛型委托] [表达式树] [事件]等基础知识总结一下.(本人小白一枚,有错误的地方希望大佬指正) 系类1:细说委托 系类2:细说匿名 ...
 - Centos7 安装 Redis
			
关闭防火墙:systemctl stop firewalld.service #停止firewallsystemctl disable firewalld.service #禁止firewall开机启 ...
 - CentOS 6 升级 curl
			
zabbix 发邮件报 Support for SMTP authentication was not compiled in 其实出现这种问题的原因是我们机器上的 libcurl 版本太低所致.在z ...
 - H5 video标签的第二种格式
			
36-video标签的第二种格式 2.第二种格式存在的意义: 由于视频数据非常非常的重要, 所以五大浏览器厂商都不愿意支持别人的视频格式, 所以导致了没有一种视频格式是所有浏览器都支持的 这个时候W3 ...