信息发布软件,b2b软件,广告发布软件

标题: If..else里最常用的JavaScript 条件语句全部集合在一起方便查询 [打印本页]

作者: 群发软件    时间: 2017-5-26 23:39
标题: If..else里最常用的JavaScript 条件语句全部集合在一起方便查询
1. if...else结构
// Set r to 0 or 1 var r= Math.floor(2*Math.random())  // Set a, b and c to "small" if r==0 an else set them to "big" // using three different techniques  // Method 1: If else var a; if (r==0){a = "small"} else {a = "big"};  // Method 2: Conditional operator var b = r==0 ? "small" : "big";  // Method 3: And/or operators var c = r==0 && "small" || "big";  // Check the values of our variables alert(r+" "+a+" "+b+" "+c);
2. if...else if...else结构
// Set r to 0,1,2 or 3 var r= Math.floor(4*Math.random())  // Set a, b and c to "nada","small","big" and "huge" // depending on the value or r using three different techniques  // Method 1: If.. else if... else var a; if (r==0){a="nada"} else if (r==1){a="small"} else if (r==2){a="big"} else {a="huge"};  // Method 2: Conditional operators var b = r==0 ? "nada" : r==1 ? "small" : r==2 ? "big" : "huge";  // Method 3: And/or operators var c = r==0 && "nada" || r==1 && "small" || r==2 && "big" || "huge";  // Check the values of our variables alert(r+" "+a+" "+b+" "+c);
3. 执行函数
// Set r to 0,1,2 or 3 var r= Math.floor(4*Math.random())  // The global variable x and our four functions var x=""; nada=function(){x+="Nada! "}; small=function(){x+="Small! "}; big=function(){x+="Big! "}; huge=function(){x+="Huge! "};  // Call a specific function depending on the value of r // using three different techniques  // Method 1: If.. else if... else if (r==0){nada()} else if (r==1){small()} else if (r==2){big()} else {huge()};  // Method 2: Conditional operators r==0 ? nada() : r==1 ? small() : r==2 ? big() : huge();  // Method 3: And/or operators r==0 && (nada() || true) //nada()函数不一定返回true,为了保证后续的逻辑或||判断不被执行,需要返回true值,下同|| r==1 && (small() || true) || r==2 && (big() || true) || huge();  // Check the values of our variables alert(r+" "+x);
4. 执行代码
// Set r to 0,1,2 or 3 var r= Math.floor(4*Math.random())  // The global variable x var x="";  // Executing different code depending on the value of r // using three different techniques  // Method 1: If.. else if... else if (r==0){x+="Nada! "} else if (r==1){x+="Small! "} else if (r==2){x+="Big! "} else {x+="Huge! "};  // Method 2: Conditional operators r==0 ? function(){x+="Nada! "}() : r==1 ? function(){x+="Small! "}() : r==2 ? function(){x+="Big! "}() : function(){x+="Huge! "}();  // Method 3: And/or operators r==0 && (function(){x+="Nada! "}() || true) //有人在评论中指出这里的匿名函数是不必需的,在只有一条可执行代码时是这样的,但是如果有多条代码需要执行,匿名函数还是不错的|| r==1 && (function(){x+="Small! "}() || true) || r==2 && (function(){x+="Big! "}() || true) || function(){x+="Huge! "}();  // Check the values of our variables alert(r+" "+x);
在这篇网文中,作者的关注重心是代码的简短与否,所以在一般情况下实现同等功能,作者更倾向于使用?:运算符,而觉得&&和||的方式要多打几个字母,因而显得比较累赘。在执行函数的情况下,使用传统的if...else更方便。在它的评论中有人提出,让Client端代码更简洁短小作用大过提高一些不起眼的运行效率,这一点从某种程序上来说也是正确的。所以从形式上选取一种更简洁的形式处理条件语句,可能比这些语句本身的运行效率更为重要,何况运行效率还会因UA而异。
在只存在两种条件的判断中,用if...else或?:都是相当直白,而&&和||的运算方式就稍嫌复杂。但是其实只要明白以下两个基本原则,所有问题都会迎刃而解了:
其一、当用逻辑与&&和逻辑或||运算符运算时,方向都是自左向右的,&&运算到第一个值为false的条件(或可转换为false的值,如null/undefined/0/""/NaN等)时停止,而运算到第一个值为true的条件(或可转换为true的值)时停止;整个条件返回的值是最后检测的条件的值,不一定只是true/false。
其二、逻辑与&&运算符较逻辑或运算符相比,前者有更高的优先级。
根据第一个原则,r==0和"small"按自左向右的顺序计算,如果r==0为true,则检测"small","small"为非空字符串,故这样c取值为"small";如果r==0为false,则直接开始逻辑或||的第二个条件"big"检测,同样的道理,c应当取值为"big"。根据第二个原则,在对上述代码中的变量c的运算过程中,没有必要加括号。
由于使用?:和&&、||运算符在一定程序上能起到精简代码的作用,在jQuery这样的库源代码中非常重要。归纳起来,这类运算符主要有两方面的应用,一是赋值或返回值,二是执行代码(暂且这样分类)。
用于赋值的用法在jQuery或其他库中比比皆是,一个经典应用就是为接口实现默认值的功能,我们可以很容易写出这样的代码来,如:
var myObj = function(options) {  var color = options.color || this.defaults.defaults;  var backgroundColor = options.backgroundColor      || this.defaults.backgroundColor;};myObj.prototype.defaults = {  color : "#393939",  backgroundColor : "#222"}var myIns = new myObj({  color : "#80FF80"});console.log("color:"+myIns.color+", backgroundColor: "+myIns.backgroundColor);
不管用?:还是&&和||,由于不具备if...else与生俱来的代码块功能(用{}号包裹),所以它们都仅能执行单行代码,如:
(xmlHttpRequest.readyState==4 && xmlHttpRequest.status ==200) ? alert("Success!"): alert("Failure!");
所以如果有多条代码需要执行,就应该用匿名函数。如:
(xmlHttpRequest.readyState==4 && xmlHttpRequest.status ==200) ? function(){alert("Success!"); var a=100; alert(a);}: alert("Failure!");
在jQuery 1.7.1源代码这两种简写形式太多了,如line 2643就有:
// Hook for boolean attributesboolHook = {  get: function( elem, name ) {    // Align boolean attributes with corresponding properties    // Fall back to attribute presence where some booleans are not supported    var attrNode,      property = jQuery.prop( elem, name );    return property === true || typeof property !== "boolean" && ( attrNode = elem.getAttributeNode(name) ) && attrNode.nodeValue !== false ?      name.toLowerCase() :      undefined;  },  set:function(){  ...  }}
看来还得继续学习进行总结。
以上这篇Javascript简写条件语句(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

在您编写代码时,经常需要根据不同的条件完成不同的行为。可以在代码中使用条件语句来完成这个任务。

在 JavaScript 中,我们可以使用下面几种条件语句:

if 语句在一个指定的条件成立时执行代码。if...else 语句在指定的条件成立时执行代码,当条件不成立时执行另外的代码。if...else if....else 语句使用这个语句可以选择执行若干块代码中的一个。switch 语句使用这个语句可以选择执行若干块代码中的一个。

If 语句






本例演示 If 语句。

如果浏览器时间小于 10,那么会向您问“早安”。


If...else 语句





本例演示 If...Else 语句。

如果浏览器时间小于 10,那么会向您问“早安”,否则会向您问候“祝您愉快”。


If..else if...else 语句






Good day
本例演示 if..else if...else 语句。

  • if语句

    有些代码块只能在一定条件下运行,通过if、if else、else代码块,可以让你的代码按条件执行。
[size=1em][size=1em]// 控制流

[size=1em][size=1em]var foo = true;

[size=1em][size=1em]var bar = false;

[size=1em][size=1em]if ( bar ) {

[size=1em][size=1em]// 这里的代码将无法运行。

[size=1em][size=1em]console.log( "hello!" );

[size=1em][size=1em]}

[size=1em][size=1em]if ( bar ) {

[size=1em][size=1em]// 这里的代码将无法运行。

[size=1em][size=1em]} else {

[size=1em][size=1em]if ( foo ) {

[size=1em][size=1em]// 这里的代码是可以运行的。

[size=1em][size=1em]} else {

[size=1em][size=1em]// 当foo和bar都为false的时候这里的代码才能运行

[size=1em][size=1em]}

[size=1em][size=1em]}

    虽然没有严格要求单行的条件语句代码块使用{}包裹,但是为了提高代码的易读性,建议所有的条件语句代码块都使用{}包裹。

    为了if语句的执行成功,重要的是了解条件是真还是假。
[size=1em][size=1em]// 真

[size=1em][size=1em]"0";

[size=1em][size=1em]"any string";

[size=1em][size=1em][]; // 一个空数组

[size=1em][size=1em]{}; // 一个空对象

[size=1em][size=1em]1; // 任意非0数。


[size=1em][size=1em]// 假

[size=1em][size=1em]""; // 空字符串

[size=1em][size=1em]NaN;

[size=1em][size=1em]null;

[size=1em][size=1em]undefined;

[size=1em][size=1em]0; // 数字0




  • 三元运算条件赋值

    有时候一个变量的设置需要由某个条件决定,这时可以使用if语句来实现,但是使用三元运算会更加的方便,三元运算时检测条件,如果条件为真返回特定值,如果条件为假则返回另一个值。
[size=1em][size=1em]// 如果bar为真foo就等于1,否则foo就等于0:

[size=1em][size=1em]var foo = bar ? 1 : 0;



    除了if语句外还有switch语句可以进行条件控制,根据条件的值决定执行相应的代码块。
[size=1em][size=1em]switch ( foo ) {

[size=1em][size=1em]case "bar":

[size=1em][size=1em]alert( "the value was bar -- yay!" );

[size=1em][size=1em]break;

[size=1em][size=1em]case "baz":

[size=1em][size=1em]alert( "boo baz " );

[size=1em][size=1em]break;

[size=1em][size=1em]default:

[size=1em][size=1em]alert( "everything else is just ok" );

[size=1em][size=1em]}


    另外可以通过创建对象的形式实现switch语句的功能。
[size=1em][size=1em]var stuffToDo = {

[size=1em][size=1em]"bar": function() {

[size=1em][size=1em]alert( "the value was bar -- yay!" );

[size=1em][size=1em]},

[size=1em][size=1em]"baz": function() {

[size=1em][size=1em]alert( "boo baz " );

[size=1em][size=1em]},

[size=1em][size=1em]"default": function() {

[size=1em][size=1em]alert( "everything else is just ok" );

[size=1em][size=1em]}

[size=1em][size=1em]};

[size=1em][size=1em]if ( stuffToDo[ foo ] ) {

[size=1em][size=1em]stuffToDo[ foo ]();

[size=1em][size=1em]} else {

[size=1em][size=1em]stuffToDo[ "default" ]();

[size=1em][size=1em]}




分类:


作者: dfgdgdfgdf    时间: 2017-5-31 00:49
模版好看时尚老板服务态度好下次继续光临这家店好评!
作者: iiiiik    时间: 2017-6-2 04:20
人,解决问题超负责的!点32个赞
作者: 脱颖而出    时间: 2017-6-2 07:53
过来看看的
作者: anleey    时间: 2017-6-2 15:40
家,技术经验都很精湛,物超所值,值得推荐!
作者: ebxly    时间: 2017-6-5 21:39
错效率很高价格合理还会来的
作者: a001hao    时间: 2017-6-11 10:17
赞一个,卖家服务部错
作者: anleeycn    时间: 2017-6-11 11:06
好评厉害耐心的卖家
作者: pxynmi018    时间: 2017-6-18 02:57
错,虽然教程要自己学,但是技术都很热情,回答的也很及时,问题都给解决了。之前怕一付款技术就不理我了,所以故意延迟付款,但是技术人员一直都很耐心,现在想想是我太多心了,希望卖家生意兴隆!
作者: meili1    时间: 2017-6-19 17:53
计的东西很漂亮,我很喜欢,店铺也漂亮了很多,想到不错的设计公司,店家服务好,问题解答详细好评
作者: loverun    时间: 2017-6-23 04:50
蛋和27号技术服务真的很好,超赞,以后还找她们做网站




欢迎光临 信息发布软件,b2b软件,广告发布软件 (http://www.postbbs.com/) Powered by Discuz! X3.2