JavaScript同样的意思,更巧的写法
来源:互联网 发布:北京网络诈骗举报电话 编辑:程序博客网 时间:2024/06/06 02:41
今天来介绍一下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",逻辑上被判定为 true1||"OK" //表达式的值为数字1,逻辑上被判定为 truenull||[] //表达式的值为数组[],逻辑上被判定为 truenull&&[] //表达式的值为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");
对比一下很明显,方式二更简单而且易懂,巧妙在于构造一个对象,通过属性获取值,从而避开了繁琐的判断。
原文地址 http://www.cnblogs.com/lranye/archive/2013/06/08/3127013.html
- JavaScript同样的意思,更巧的写法
- JavaScript同样的意思,更巧的写法
- JavaScript同样的意思,更巧的写法
- JavaScript更巧的写法
- 【推荐】同样的焦点图不同的写法
- Javascript中$符号的意思
- Javascript中$符号的意思
- Javascript中$符号的意思
- Javascript中$符号的意思
- javascript return ! 1;的意思
- JavaScript中=+的意思
- Javascript类的写法
- javascript的ajax写法!
- Javascript类的写法
- Javascript类的写法
- javascript类的写法
- javascript不一样的写法
- 轮播图的javascript写法
- Response.Redirect和Server.Transfer的区别
- 所有结点对最短路径问题(Floyd-Warshall算法)——算法导论学习笔记(1)
- Request和Request.QueryString的区别
- Cookie简单小结
- 卷积神经网络(Convolutional Neural Network)总结
- JavaScript同样的意思,更巧的写法
- Hibernate4.2.2搭建Log4J日志环境
- Linux内核:内存寻址
- Hibernate分页
- Sizeof与Strlen的区别与联系
- SVN客户端--TortoiseSVN使用说明
- 思维导图
- 深入理解Ajax原理
- Android设备管理器漏洞