• js中连写两个?:三元运算符语法解释


    在angular 源码中有连写两个三元运算符的代码:

    var hash = isString(hash) ? hash : isNumber(hash) ? hash.toString() :$location.hash;

    上述代码等价于:
    if(isString(hash)){
    return hash;
    }else{
    if(isNumber(hash)){
    return hash.toString();
    }else{
    return $location.hash;
    }
    }
    验证代码如下所示:
     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>连写两个三元运算符的执行顺序</title>
     6 </head>
     7 <body>
     8 <!--下面这两个script 脚本中的自执行匿名函数证明了连写连个三元运算符的执行顺序是从左到右顺序执行。-->
     9 <script>
    10 
    11     //        hash = isString(hash) ? hash : isNumber(hash) ? hash.toString() : $location.hash();
    12     (function (hash) {
    13         isString=function (str) {
    14             return  toString.call(str)=='[object String]'?true:false;
    15         }
    16         isNumber=function (number) {
    17             return toString.call(number)=='[object Number]'?true:false;
    18         }
    19 
    20         var hash = isString(hash) ? hash : isNumber(hash) ? hash.toString() :"人生";
    21         alert(hash);
    22     })("ouyangfeng");
    23 </script>
    24 <script>
    25     (function (hash) {
    26         isString=function (str) {
    27             return  toString.call(str)=='[object String]'?true:false;
    28         }
    29         isNumber=function (number) {
    30             return toString.call(number)=='[object Number]'?true:false;
    31         }
    32         function getHash() {
    33             if(isString(hash)){
    34                 return hash;
    35             }else{
    36                 if(isNumber(hash)){
    37                     return hash.toString();
    38                 }else{
    39                     return "人生";
    40                 }
    41             }
    42         }
    43         var hash=getHash(hash);
    44         alert(hash);
    45     })("123");
    46 </script>
    47 <style>
    48 </body>
    49 </html>
  • 相关阅读:
    Java中File类的使用
    Java集合中Comparator和Comparable接口的使用
    ODP.NET
    DllImport
    .net 项目与网站区别
    sqlserver 2012 分页
    sqlserver 分页
    ORACLE 中ROWNUM
    mysql 分页优化
    mysql windows 安装
  • 原文地址:https://www.cnblogs.com/1540340840qls/p/7654829.html
Copyright © 2020-2023  润新知