概述
在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>
转载于:https://www.cnblogs.com/1540340840qls/p/7654829.html
最后
以上就是难过紫菜为你收集整理的js中连写两个?:三元运算符语法解释的全部内容,希望文章能够帮你解决js中连写两个?:三元运算符语法解释所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复