JavaScript的if判断的四种书写方式
发布时间:2016-11-15, 11:59:13 分类:HTML | 编辑 off 网址 | 辅助
图集1/2
正文 578字数 1,969,425阅读
1.传统的写法if(score < 60){
alert('不及格');
}else{
alert('及格');
}
Run code
Cut to clipboard
2.利用三目运算符来进行判断
score < 60 ? alert('不及格') : alert('及格') ;
Run code
Cut to clipboard
3.利用&& 来判断
score < 60 && alert('不及格') ;
score >= 60 && alert('及格') ;
Run code
Cut to clipboard
&&的用法 : 如果左边的结果为真,那么运行右边的表达式,如果右边的也为真,那么就返回真。其中,只要有一个为假,结果就是假。并且,一旦左边的结果为假,右边的就不执行了。
4.利用 || 来判断
score < 60 || alert('及格') ;
score >= 60 || alert('不及格') ;
Run code
Cut to clipboard
|| 的用法 : 如果左边的结果为真,那么直接返回true,右边的就忽略了!
如果左边为假,那么就运行右边的,看看右边的结果如何?如果右边为真,就返回真,否则返回假。
(支付宝)给作者钱财以资鼓励 (微信)→
有过 17 条评论 »
!dom.hasClass(className) && dom.addClass(className) || dom.removeClass(className);
dom.hasClass(className) ? dom.removeClass(className) : dom.addClass(className);
简单粗暴的JavaScript的if 判断的正确打开方式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> .active{ background: #ccc; } </style> <script src="http://apps.bdimg.com/libs/jquery/1.7.2/jquery.js"></script> <script> $(function(){ //上移 var $Up=$(".up"); $Up.click(function(){ var $oP=$(this).parents("p"); $oP.fadeOut().fadeIn(); $oP.addClass("active").siblings().removeClass("active"); $oP.prev().before($oP); }); //下移 var $Down=$(".down"); $Down.click(function(){ var $oP=$(this).parents("p"); $oP.fadeOut().fadeIn(); $oP.addClass("active").siblings().removeClass("active"); $oP.next().after($oP); }) //置顶 var $Top=$(".top"); $Top.click(function(){ var $oP=$(this).parents("p"); $oP.fadeOut().fadeIn(); $oP.addClass("active").siblings().removeClass("active"); $("div").prepend($oP); }); //置底 var $Bottom=$(".bottom"); $Bottom.click(function(){ var $oP=$(this).parents("p"); $oP.fadeOut().fadeIn(); $oP.addClass("active").siblings().removeClass("active"); $("#main").append($oP); }) //删除 var $Delete=$(".delete"); $Delete.click(function(){ var $oP=$(this).parents("p"); $oP.fadeOut().fadeIn(); $oP.addClass("active").siblings().removeClass("active"); $oP.remove(); }); //全选 $("button").eq(0).click(function(){ $("input").attr("checked",true); }); //不选 $("button").eq(1).click(function(){ $("input").attr("checked",false); }); //反选 $("button").eq(2).click(function(){ $("input").each(function(){ $(this).attr("checked",!$(this).attr("checked")); }) }); //删除 $("button").eq(3).click(function(){ $("input[checked]").parents("p").remove(); }) }) </script> </head> <body> <span> <button>全选</button> <button>不选</button> <button>反选</button> <button>删除</button> </span> <div id="main"> <p> <input type="checkbox"> <span class="nav">用玻璃做个椒盐饼?这是新技术展示</span> <a href="javascript:;" class="up" javascript:;>上移</a> <a href="javascript:;" class="down">下移</a> <a href="javascript:;" class="top">置顶</a> <a href="javascript:;" class="bottom">置底</a> <a href="javascript:;" class="delete">删除</a> </p> <p> <input type="checkbox"> <span class="nav">为什么迷信也是民俗的研究对象之一?</span> <a href="javascript:;"class="up">上移</a> <a href="javascript:;"class="down">下移</a> <a href="javascript:;"class="top">置顶</a> <a href="javascript:;" class="bottom">置底</a> <a href="javascript:;" class="delete">删除</a> </p> <p> <input type="checkbox"> <span class="nav">地铁会被暴雨淹没吗?如何自救?</span> <a href="javascript:;"class="up">上移</a> <a href="javascript:;"class="down">下移</a> <a href="javascript:;"class="top">置顶</a> <a href="javascript:;" class="bottom">置底</a> <a href="javascript:;" class="delete">删除</a> </p> <p> <input type="checkbox"> <span class="nav">如何优雅地成为德意志古典哲学的追随者</span> <a href="javascript:;"class="up">上移</a> <a href="javascript:;"class="down">下移</a> <a href="javascript:;"class="top">置顶</a> <a href="javascript:;" class="bottom">置底</a> <a href="javascript:;" class="delete">删除</a> </p> <p> <input type="checkbox"> <span class="nav">什么?你把瓷器上的图案抹掉了?</span> <a href="javascript:;"class="up">上移</a> <a href="javascript:;"class="down">下移</a> <a href="javascript:;"class="top">置顶</a> <a href="javascript:;" class="bottom">置底</a> <a href="javascript:;" class="delete">删除</a> </p> </div> </body> </html>
我承认google里面可以找到很多资料,抄都抄死你,但是不要全是google出来就好。
要多加点自己的思考。
我很喜欢google。
我回复这些内容不需要google,也没有在电脑里翻东西,我是基于自己的理解。
本来就是顺带着讨论的嘛,你看看,俺们偏离主题这么远!
摘要算法可以单向加密,我为什么不用呢?可以解决实际问题的呀。
你的加密算法MD5,估计你是不会用它算摘要的哦。
因为你的逻辑里是这样的:不是加密算法就不能用来加密;不是摘要算法当然就不能算摘要喽,用了可是犯规的哦。
ok,凡是可以用来加密的,就是加密算法!凡是可以打字的都是打字机,我知道,你正在用打字机浏览这个帖子。
从你的语气和回复速度,可以知道你很激动,怎么这么沉不住气啊,讨论嘛,弄得跟吵架似的。估计年纪不大,真是英雄出少年啊。反应敏捷。
从你回复的内容来看,你很喜欢想当然,自己认为是怎么样的,就能断定别人就是怎么样的,这么酷啊?酷毙了!
好了,再说下去我就跟你一样了!那可糟了。
哦,差点忘了告诉你:
摘要算法的特色是算摘要,MD5是典型的摘要算法。
专家说了,MD5 是 Digital Signature Algorithms(数字签名算法,也就是我们说的摘要算法)。
至于DES等为什么没有明确写明是 加密算法,可能是你没有看到吧,你写论文应该找了不少资料的啊,怎么就没看到呢?
要不你自己再去问问专家吧。不管你问得到还是问不到,不必告诉我们,因为我们本来就承认 DES,RSA 等是加密算法。
error_reporting(E_ALL & ~E_NOTICE); 或error_reporting(E_ALL ^ E_NOTICE);
PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
在看帝国cms的connect.php是发现第一句是error_reporting(E_ALL ^ E_NOTICE);以前也没注意过这个语句,知道是设置错误提示的,但不清楚具体怎样设置使用。下面从网上摘抄了些东西,总结了一下。
举例说明:
在Windows环境下:原本在php4.3.0中运行正常的程序,在4.3.1中为何多处报错,大体提示为:Notice:Undefined varialbe:变量名称.
例如有如下的代码:
if (!$tmp_i) { $tmp_i=10; }
在4.3.0中运行正常,在4.3.1中运行会提示Notice:Undefined varialbe:tmp_i
问题下下:
1.问题出在哪里?
2.应如何修改这段代码?
3.不改段代码,如何修改php.ini中的设置使原来在4.3.0中的程序在4.3.1的环境下运行正常?而不出现这个错误提示.
解决办法:
在程序开头加一句:
error_reporting(E_ALL & ~E_NOTICE); 或error_reporting(E_ALL ^ E_NOTICE);
或者
修改php.ini
error_reporting = E_ALL & ~E_NOTICE
有关error_reporting()函数:
error_reporting() 设置 PHP 的报错级别并返回当前级别。
; 错误报告是按位的。或者将数字加起来得到想要的错误报告等级。
; E_ALL - 所有的错误和警告 ; E_ERROR - 致命性运行时错 ; E_WARNING - 运行时警告(非致命性错) ; E_PARSE - 编译时解析错误 ; E_NOTICE - 运行时提醒(这些经常是是你的代码的bug引起的, ;也可能是有意的行为造成的。(如:基于未初始化的变量自动初始化为一个 ;空字符串的事实而使用一个未初始化的变量) ; E_CORE_ERROR - 发生于PHP启动时初始化过程中的致命错误 ; E_CORE_WARNING - 发生于PHP启动时初始化过程中的警告(非致命性错) ; E_COMPILE_ERROR - 编译时致命性错 ; E_COMPILE_WARNING - 编译时警告(非致命性错) ; E_USER_ERROR - 用户产生的出错消息 ; E_USER_WARNING - 用户产生的警告消息 ; E_USER_NOTICE - 用户产生的提醒消息
使用方法:
error_reporting(0);//禁用错误报告 error_reporting(E_ALL ^ E_NOTICE);//显示除去 E_NOTICE 之外的所有错误信息 error_reporting(E_ALL^E_WARNING^E_NOTICE);//显示除去E_WARNING E_NOTICE 之外的所有错误信息 error_reporting(E_ERROR | E_WARNING | E_PARSE);//显示运行时错误,与error_reporting(E_ALL ^ E_NOTICE);效果相同。error_reporting(E_ALL);//显示所有错误
php中error_reporting(E_ERROR | E_WARNING | E_PARSE);是什么意思?
php中error_reporting(E_ERROR | E_WARNING | E_PARSE);是什么意思?
开启这3类错误信息的报告捏:Error一般是严重错误,Warning是些警告类的提示错误,Parse是语法解析方面的错误吧?具体查下文档吧。
至于|这个二进制位的运算符的含义你想象成并且的意思吧,就是这三类加在一起都要。
因为计算机中经常喜欢用比特位来记录某个样式风格,比如一个32位的整数,可以表示32个风格(windows程序开发中窗体风格里就用到)。
比如我要用:
0000 0000 0000 0000 0000 0000 0000 0001 ---------->表示E_ERROR这个符号
0000 0000 0000 0000 0000 0000 0000 0010 ---------->表示E_WARNING这个符号
0000 0000 0000 0000 0000 0000 0000 0100 ---------->表示E_PARSE这个符号
这样用|在一起
0000 0000 0000 0000 0000 0000 0000 0111表示三个的组合。
PHP syntax error, unexpected $end 错误的一种原因及解决
PHP 遇到 syntax error, unexpected $end 错误时,查错思路其实还是看看文件里 PHP 的开始标记和结束标记是否配对,还要额外注意注释里是否出现过 ?> 哟。
Parse error: syntax error, unexpected $end in script.php on line xx
调试了一会后发现产生错误的行是文件中间某行
//$str .= "?>\n";
想起来了 PHP 解释器允许的结尾标记那行还可以用单行注释,即 //$str .= "?>\n"; 被解释成结尾标记前有注释,注释的内容是 //$str .= ",而 ?> 后面的 \n"; 会被解释作 PHP 块外的内容按 HTML 输出出去!结果是给 $str .= "?>\n"; 这行添加 // 成注释后,反而多了个 ?> 的结束标记,造成原来真正的结束标记成了意料之外的(unexpected)了。
解决办法就是直接删掉这一行即可。
PHP 开始和结束标记所在行别写其它东西,是个好习惯。
<?php /** php中有4个位运算,分别是&与 |或 ^异或 ~取反 & 两位全为1,结果为1 | 有一位为1,结果为1 ^ 一个为0,一个为1,结果为1 ~ 取反0->1,1->0 1.二进制的最高位是符号位,0表示正数,1表示负数。 2.正数的原码,反码,补码都一样。 3.负数的反码=它的原码符号位不变,其它位取反(0->1,1->0)。 4.负数的补码=它的反码+1。 5.0的反码,补码都是0. 6.php没有无符号数,换言之,php中的数都是有符号的。 7.在计算机运算的时候,都是以补码的方式来运算的。 **/ //异或 echo 13&7; echo "<br/>"; echo 5|4 ; echo "<br/>"; echo -3^3; //推理过程: /** 13&7 13的补码 00000000 00000000 00000000 00001101 7的补码 00000000 00000000 00000000 00000111 13&7 00000000 00000000 00000000 00000101 = 5 5|4 5的补码 00000000 00000000 00000000 00000101 4的补码 00000000 00000000 00000000 00000100 5|4 00000000 00000000 00000000 000000101 =5 -3^3 -3的补码 -3的原码 10000000 00000000 00000000 00000011 -3的反码 11111111 11111111 11111111 11111100 -3的补码 11111111 11111111 11111111 11111101 3的补码 00000000 00000000 00000000 00000011 -3^3 11111111 11111111 11111111 11111110 《补码》 推反码《对补码-1》 11111111 11111111 11111101 《反码》 推原码《符号位不变 其他取反》 00000000 00000000 00000010 《原码》 =-2 注意:因为二进制没有进位和退位,可以看做是10-1,那就等于1了 **/ ?>
PHP的逻辑运算符中,xor表示逻辑异或
$a xor $b
结果
如果 $a 和 $b 有且仅有一个为 true,则返回 true;如果都是true 或 false,则返回false。
然而在测试xor运算符时,发现一点问题
错误情况1
<?php $a = false xor true; var_dump($a); ?>
结果1
boolean false
情况2
<?php $a = true xor false; var_dump($a); ?>
结果2
boolean true
这是怎么回事呢?
我们换个测试xor运算符的方式
情况3
<?php echo false xor true; ?>
结果3
1
这样就没问题了,那么前两种情况是哪里有毛病呢?
情况4
<?php $a = (false xor true); var_dump($a) ?>
结果4
boolean true
这样就对了,可见应是运算符优先级导致的。
在PHP中,and、or、xor的运算符优先级是比 = 低的,在这种情况下,加个小括号就好了……
<?php function getXOR($data, $key, $string = ''){ $len = strlen($data); $len2 = strlen($key); for($i = 0; $i < $len; $i ++){ $j = $i % $len2; $string .= ($data[$i]) ^ ($key[$j]); } return $string; } $data = 'this is a #test@ string'; $key = 'thisakey'; $f = getXOR($data, $key); echo $f; $s = getXOR($f, $key); print_r($s);
PHP中的运算符 1.算数运算符: %:求模运算(取余数运算) /:除法运算(结果是商的值) 注意:以上两种运算除数不能为0,在PHP语言中会在运算前将%两边的操作数转换为整型。 2.字符串运算符 在PHP中字符串运算符只有一个,就是英文的句点(.),也称连接运算符 如果连接的是一个变量的话,需要在变量的两边加( . )且在外边都加上“” 3.赋值运算符:将左边的值和右边你的值运算后赋给左边 .= 的意义:将变量与所赋的值相连后的结果赋给变量 例子:$x.=3 等价于 $x=$x."3" 4.比较运算符:二元运算符 “=”,“==” ,“===”的 区别 “=” :是一个赋值符号 “==”:是一个等号,当左边的操作数等于右边的操作数的时候,返回TURE ,反之返回FALSE “===”:当左边的操作数和右边的操作数相同,且他们的数据类型也是相同的才返回TRUE 5.逻辑运算符:用于判断对错 and或&&:两边的操作数为TRUE时,才返回TRUE or 或 || :两边操作数为FASE时, 才返回FALSE not 或 ! : 当操作数为TURE的时,返回FALSE xor :逻辑与或运算,只要一边的操作数为TRUE,就可以返回TRUE 6.位运算符: &:两个1才为1; | :两个0才为0; ^ :两个操作数不同的时候,才为1 7.三元运算符:(exprl)?(exprl1):(exprl2)类似与 “if...else”,但是三元运算符会显得更加的整洁 当experl的值为TRUE时,获取exprl1 的值,反之 取exprl2的值 8.执行运算符 :反引号‘ ’ PHP将尝试将引号的内容作为操作系统命令来执行,并将其输出信息返回 9.错误输出控制符号:@ 将其放在一个PHP表达式之前,产生的任何警告信息都将被忽略,它只对表达式有效。 规则:如果能从某处取到值,就可以在它的前面加上@。不能放在函数和类的定义之前。 10.运算符的优先级 优 先 级 结合方向 运 算 符 附加信息 1 非结合 new new 2 左 [ array() 3 非结合 ++ -- 递增/递减运算符 4 非结合 ! ~ - (int) (float) (string) (array) (object) @ 类型 5 左 * / % 算数运算符 6 左 + - . 算数运算符和字符串运算符 7 左 << >> 位运算符 8 非结合 < <= > >= 比较运算符 9 非结合 == != === !== 比较运算符 10 左 & 位运算符和引用 11 左 ^ 位运算符 12 左 | 位运算符 13 左 && 逻辑运算符 14 左 || 逻辑运算符 15 左 ? : 三元运算符 16 右 = += -= *= /= .= %= &= |= ^= <<= >>= 赋值运算符 17 左 and 逻辑运算符 18 左 xor 逻辑运算符 19 左 or 逻辑运算符 20 左 , 多处用到
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> *{margin:0; padding:0;} .father{ width:100%; height: 300px; background: pink; text-align: center; line-height:300px; } .father li{ border:1px solid red; display: inline-block; _display:inline; } </style> </head> <body> <ul class="father"> <Li>1</Li> <li>2</li> <Li>1</Li> <li>2</li> <Li>1</Li> <li>2</li> </ul> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> .big{ width:500px; height:500px; background: pink; text-align: center; display: table; _position: relative; } .small{ display: table-cell; vertical-align: middle; _position:absolute; _top:50%; _left:50%; } .content{ } </style> </head> <body> <div class="big"> <div class="small"> <div class="content"> 范德萨 </div> </div> </div> </body> </html>
<!--盒子自动居中 类 middlesjs 加最后--> <style> .middlesjs{width:auto;display: inline-block;}</style> <script> //自动居中 $(document).ready(function(){ $(".middlesjs").each(function(){ var nw=$(this).width(); $(this).css({'left':'50%','margin-left':'-'+(nw/2)+'px','position':'relative'}); }); }); </script> <!--end-->
<div class="bt1 middlesjs">