JavaScript同样的意思,更巧的写法

前言:这篇东西是转载别人的,不过主要目的还是为了做一下笔记,以防自己漏掉了一些知识。


今天来介绍一下JAVAscript不一样的写法,很简单哦。

1、当条件成立时执行a方法,当条件失败是执行b方法

通常我们会这样写:

var result;
if(isOk){
  result=funA();
}else{
 result=funB();
}

还可以这样表达:

 var result=isOk? funA():funB()

2、当条件成立执某个方法

通常方式:

 if(isOk){
     doSomething();
 }

我更喜欢这样写:

isOk&&doSomething();

如果一个变量没定义或没有值则给它一默认值

str=str||"ok";
arr=arr||[];

上面的方式可行,是因为在js逻辑运算中,返回值不一定是true或false,也可以是其他任何值,而且 0、""、null、false、undefined、NaN都会判为false,其他都为true。举例:

1&&"OK"  //表达式的值为字符串"OK",逻辑上被判定为 true
1||"OK"  //表达式的值为数字1,逻辑上被判定为 true
null||[]  //表达式的值为数组[],逻辑上被判定为 true
null&&[]  //表达式的值为null,逻辑上被判定为 false

3、当进行多个条件判段时

    给一个例子:每种颜色对应一个值,比如"white","red","green","yellow","gray","blue" 分别对应的值为0,1,2,3,4,5

1) 问题一:根据值获取颜色

实现方式一

function  getColorByVal(val) {
     var  color =  "" ;
     if  (val == 0){
         color =  "white" ;
     } else  if  (val == 1) {
         color =  "red" ;
     else  if  (val == 2) {
         color =  "green" ;
     else  if  (val == 3) {
         color =  "yellow" ;
     else  if  (val == 4) {
         color =  "gray" ;
     else  if  (val == 5) {
         color =  "blue" ;
     }
     return  color;
}
实现方式二

function getColorByVal(val) {
var color;
switch (val) {
case 0:
color = "white";
case 1:
color = "red";
break;
case 2:
color = "green";
break;
case 3:
color = "yellow";
break;
case 4:
color = "gray";
break;
case 5:
color = "blue";
break;

}
return color;
}

实现方式三

function  getColorByVal(val) {
    return  [ "white" , "red" , "green" , "yellow" , "gray" , "blue" ][val];
}

调用: var color=getColorByVal(2);

方式一和方式二相比没什么差别,但方式二稍微好一点,而方式三则是让人眼前一亮,短小精悍就完成了功能。不过有的人会说颜色的值刚好是数组下标,所以我们再来一题:

2) 问题二:根据颜色获取值

你可以用if 或switch 语句来完成,不过这里给出另外两种方式:

方式一:

function getValByColor(color){
var colors=["white","red","green","yellow","gray","blue"];
var result;
for(var i=colors.length-1;i--;){
if(colors[i]==color){
result=i;
break;
}
}
return result;
}

方式二:

function getValByColor(color){
    return {"white":0,"red":1,"green":2,"yellow":3,"gray":4,"blue":5}[color];
}

调用: var val=getValByColor("red");

对比一下很明显,方式二更简单而且易懂,巧妙在于构造一个对象,通过属性获取值,从而避开了繁琐的判断。

 4、交换两个变量的值

通常是这样实现的:

var temp=0,a=5,b=10;
temp=a;
a=b;
b=temp;

不过还可以更巧一些:

var a=5,b=10;
a=[b,b=a][0];
a=[b,b=a][0] 执行过程:先执行数组里两个表达式b和b=a,作用是把5赋值给b并产生一个数组[10,5] ,然后 a=[10,5][0]即 a=10,这样就完成了交换,不过也借助了无名的数组,但看起来好想没借助第三个变量,不过不提倡这样做,毕竟第一种方式更易懂。

5、获取对象的属性

方式一
var arr=[],i=0;
var colors={"white":0,"red":1,"green":2,"yellow":3,"gray":4,"blue":5};
for(var key in colors){
   arr[i++]=key;
}

方式二

var arr=[],i=0;
var colors={"white":0,"red":1,"green":2,"yellow":3,"gray":4,"blue":5};
 for(arr[i++] in colors);

两种方式都得到了对象colors的属性(arr=["white""red""green""yellow""gray""blue"]), 第二种方式不过搭了 for in 语句的顺风车。方式一中for in语句依次从colors获取一个属性赋值给key,只不过在方式二中赋值给了arr[i++]。这个纯粹是为了好玩,享受编程的乐趣也是编程的一部分吧。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
牙科就诊管理系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了用户在线查看数据。管理员管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等功能。牙科就诊管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 管理员在后台主要管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等。 牙医列表页面,此页面提供给管理员的功能有:查看牙医、新增牙医、修改牙医、删除牙医等。公告信息管理页面提供的功能操作有:新增公告,修改公告,删除公告操作。公告类型管理页面显示所有公告类型,在此页面既可以让管理员添加新的公告信息类型,也能对已有的公告类型信息执行编辑更新,失效的公告类型信息也能让管理员快速删除。药品管理页面,此页面提供给管理员的功能有:新增药品,修改药品,删除药品。药品类型管理页面,此页面提供给管理员的功能有:新增药品类型,修改药品类型,删除药品类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值