`
piperzero
  • 浏览: 3555546 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

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

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

通常我们会这样写:

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

还可以这样表达:

varresult=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)问题一:根据值获取颜色

实现方式一

functiongetColorByVal(val){varcolor="";if(val=0){color="white";}elseif(val=1){color="red";}elseif(val=2){color="green";}elseif(val=3){color="yellow";}elseif(val=4){color="gray";}elseif(val=5){color="blue";}returncolor;}

实现方式二

functiongetColorByVal(val){varcolor;switch(val){case0:color="white";case1:color="red";break;case2:color="green";break;case3:color="yellow";break;case4:color="gray";break;case5:color="blue";break;}returncolor;}

实现方式三

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

调用:varcolor=getColorByVal(2);

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

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

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

方式一:

functiongetValByColor(color){varcolors=["white","red","green","yellow","gray","blue"];varresult;for(vari=colors.length-1;i--;){if(colors[i]==color){result=i;break;}}returnresult;}

方式二:

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

调用:varval=getValByColor("red");

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

4、交换两个变量的值

通常是这样实现的:

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

不过还可以更巧一些:

vara=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、获取对象的属性方式一vararr=[],i=0;varcolors={"white":0,"red":1,"green":2,"yellow":3,"gray":4,"blue":5};for(varkeyincolors){arr[i++]=key;}

方式二

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

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

是不是发现javascript也很有意思呢?有意思就推荐一下吧<wbr></wbr>
分享到:
评论

相关推荐

    javacript入门

    JavaScript是网页制作中不可或缺的...随着学习的深入,你可以创建更复杂的交互式网页,实现表单验证、动态效果、Ajax通信等功能。继续探索JavaScript,你会发现它是一个强大且灵活的工具,能够极大地提升网页用户体验。

    javacript 控制文本输入限制

    javacript控制文本输入限制javacript控制文本输入限制javacript控制文本输入限制

    javacript

    javacript 经典,入门与复习的最佳资料,让您最短的时间学到最多的内容!

    css+html+javacript 1=3

    CSS3的引入带来了更多的动画效果、多列布局、阴影、渐变等功能,极大地提升了网页的美观度和用户体验。 最后,JavaScript是一种解释型的、跨平台的编程语言,主要用于增加网页的交互性。通过JavaScript,开发者可以...

    css javacript html

    标题中的“css javacript html”提示我们讨论的核心是前端开发中的三个基本技术:CSS(层叠样式表)、JavaScript和HTML(超文本标记语言)。这些技术是构建现代网页和Web应用程序的基础,它们共同作用于网页的结构、...

    javacript新浪图片切换效果

    javacript新浪图片切换效果,操作简单

    javacript 计算器

    javacript编写的一个数学计算器程序,可以进行基本的加减乘除运算和三角函数运算,可以直接调用部分常用的数学常数如PI和e,可以进行开平方根运算

    C#与javacript数据交互

    【C#与JavaScript数据交互】 在Web开发中,C#(通常用于...这些技术可以帮助开发者在服务器端和客户端之间灵活地传递数据和调用功能,实现更复杂的Web应用程序逻辑。在实际应用中,根据项目需求和场景选择合适的方法。

    javacript_dom学习ppt

    使用JavaScript操作DOM进行DHtml开发

    javacript特效

    10. **动画库和框架**:如jQuery、Vue.js、React等提供了丰富的API和插件,简化了动画和特效的实现,让开发者能更高效地创建复杂的交互效果。 学习和掌握JavaScript特效的制作,不仅可以提升网页的用户体验,还能为...

    javacript应用开发技术

    本压缩包“javascript应用开发技术.zip”似乎包含了多种JavaScript代码特效,这将帮助开发者更好地理解和实现各种网页动态效果。 在JavaScript应用开发中,有几个关键知识点是所有开发者都需要掌握的: 1. **基础...

    ES6 的学习javacript

    ES6的学习

    javacript做的进度条

    5. 动画效果:为了让进度条更吸引人,可以添加过渡效果。在CSS中,我们已经设置了`transition`属性。在JavaScript中,也可以通过`setInterval`定时更新宽度,以创建平滑的动画效果。 6. 模块化和框架:如果项目较大...

    javacript和jQuery帮助文件整合

    JavaScript 和 jQuery 是 web 开发中不可或缺的两个工具,它们极大地简化了网页的动态化和交互性。...在实际开发过程中,结合这些文档,可以有效提高开发效率,减少错误,并且更好地理解 web 技术的工作原理。

    数据库结构分析数据库电子书+css+javacript+c

    数据库结构分析数据库电子书+css+javacript+c

    android javacript和java

    在Android开发中,Java和JavaScript是两种非常重要的编程语言,它们各有所长并常常相互协作。本篇文章将深入探讨Android中Java与JavaScript的交互机制,以及如何实现它们之间的调用。 首先,Java作为Android平台的...

    详解Javacript和AngularJS中的Promises

    Promise是JavaScript中处理异步编程的一个核心概念,它允许我们以更优雅的方式编写和管理异步代码。AngularJS作为基于JavaScript的前端框架,内置了$q服务来实现Promise模式,使得异步操作更加容易和直观。 ### ...

    javacript编程实验.doc

    JavaScript编程实验旨在帮助学生熟悉HTML和CSS的基本应用,同时掌握JavaScript的核心语法,以便在网页设计中实现动态效果。...通过实践,学生可以更好地理解如何结合这三种技术来创建具有动态特性的网页。

Global site tag (gtag.js) - Google Analytics