javascript挑战编程技能-第四题:谈个if讲点逻辑

简介: javascript挑战编程技能-第四题:谈个if讲点逻辑

(请仔细阅读带*****号的地方)

前三节课我们,我们编写的程序都有点简单。

就是根据输入计算然后输出结果。


上一节课写了一些工具方法,其实jQuery.js已经有了很好的封装。

后面的demo中会开始使用,不了解的朋友可以查阅官网api。

http://api.jquery.com/


这里我不做过多的讲解哦。其实很好懂的,我的学习路线跟其他的前段不太一样,

我是一开始就学习的angular.js,后面项目中有用到jq,也没去看,

反正有些方法知道就直接用,不知道就直接自己写dom操作.


今天这节课我想说的是,在编程中处理的更多的问题是需要根据用户的输入或者服务端返回的数据创建选择分支的.


从这结课开始,我们的代码会越来越长,越来越复杂.

代码解析到底层,其实无非就是是和否的逻辑,

我想学过汇编语言的会对这个概念有比较清晰的认识.

接下来我们先简单的看一下JavaScript中if的用法


if(a === b){

//条件成立执行这里的代码.

}


*****这里有一点要强调的,一般在做判断的时候,在这里使用绝对等于(===),三等号.

*****因为在js中使用等于(==).会有一个自动类型转换的过程,可能会引起一些错误.


这个在第二节的编程规范里面已经提过了.这点是我见过的最容易被忽略的点,

所以我这里再强调一遍.

上面的代码执行时当a和b相等,值和类型都相等.

有时也会执行不相等的时候.

那就是

if(a === b){
//条件成立执行
}else{
//条件不成立执行
}


有时候可能条件更多,

就会使用if-elseif-else这样的结构

if(a === b){
//条件a===b成立执行
}else if(a === c){
//条件a===c成立执行
}else{
//以上条件不成立执行
}


如果有更多的选择分支,为了是代码看起来更加的简洁,可以使用swith

switch(a){
        case:b
         // 条件a===b成立执行
        break;
       case:c
       // 条件a===c成立执行
        break;
       case:d
       // 条件a===d成立执行
        break;
       default:
       //都不成立时执行
       break;
}


*****这里也有一点需要强调的,不要使用代码贯穿(额,这个名词不知道对不对,就这个意思)

*****就是尽量不要使用省略中间的break这样的用法.

*****还有就算所有条件都不成立时什么都不执行,也不要省略default-break,因为服务端返回的数据不一定就能按照预期的样子,都会有出错的时候.

*****还有一点就是关于if的嵌套使用,这点呢,在实际开发中也经常用到,但是呢,我的建议是尽量避免这样的用法.

*****因为if嵌套会增加代码的阅读难度,给后续的维护增加困难.

这里有一个简单的规避方案.如:

if(a === b){
 if(c===d){
 //这里其实可以写成if(a===b&&c===d)但是在实际项目中可能不可以的,比如这个的else还有一个if的话,这里只是演示,不要较真.
 }
}
可以写成
if(a===b){
e();
}
function e(){
 if(c===d){


//这里其实可以写成if(a===b&&c===d)但是在实际项目中可能不可以的,比如这个的else还有一个if的话,这里只是演示,不要较真.

}

}

尽量让if只有一层.


*****在这里呢,还有另外一个建议,我觉得不管是初学者还是有经验的老程序员都可以这么做的.

*****那就是开始动手敲代码之前,先借助笔和纸写出代码逻辑和分析需求.

*****这会让你编写代码时思维比较清晰,

*****在这个过程中,你关注的之后代码逻辑和需求分支.

*****你不会注意语法和代码结构这些东西,

*****会使你写出来的代码更少的出现bug.


我看书上说,最好画流程图.但是我觉得,画流程图比较麻烦.

费的时间也多,对于不太爱动笔的程序员来说,还是不太容易做到的.

还有关于是否写伪代码这东西,我想说,如果英文不是太好的朋友,

请用中文写伪代码,不然你自己还要想半天,真的浪费时间.

伪代码指的就是在动手敲代码之前,把逻辑先写出来,看一下是否有遗漏分支,如

if a=b
就xxxxx
else
就yyyyy


或者

1.a=b xxx
2.a=c yyy
3.a=d zzzz


最后提一个建议.


关于函数名命名

*****不管英文好坏,尽量使用英文,别使用拼音,会让自己的代码看起来档次很低.

其实很多语言最开始学习的第一个关键字就是if,但是我觉得还是有很多东西值得关注的.


今天的篇幅感觉有点长了,就不做题了.

第四节课就到这里结束了吧,

目录
相关文章
|
3天前
|
JavaScript Java 测试技术
基于springboot+vue.js的编程训练系统附带文章和源代码设计说明文档ppt
基于springboot+vue.js的编程训练系统附带文章和源代码设计说明文档ppt
22 11
|
15天前
|
JavaScript 前端开发 数据处理
掌握JavaScript中的二进制运算,提升你的编程技能!
掌握JavaScript中的二进制运算,提升你的编程技能!
|
15天前
|
存储 前端开发 JavaScript
深入了解JavaScript:声明式与命令式编程
深入了解JavaScript:声明式与命令式编程
|
16天前
|
消息中间件 存储 设计模式
JavaScript发布订阅模式:实现事件驱动编程!
JavaScript发布订阅模式:实现事件驱动编程!
|
16天前
|
JavaScript 前端开发 Java
JS编程中有哪些常见的编程“套路”或习惯
【5月更文挑战第8天】JS编程中有哪些常见的编程“套路”或习惯
|
16天前
|
Web App开发 JavaScript 前端开发
通过一个实际的例子,介绍 Node.js 的事件驱动编程模式
通过一个实际的例子,介绍 Node.js 的事件驱动编程模式
29 2
通过一个实际的例子,介绍 Node.js 的事件驱动编程模式
|
17天前
|
JavaScript 前端开发
JS中运算符的算术、赋值、+、比较(不同类型之间比较)、逻辑
JS中运算符的算术、赋值、+、比较(不同类型之间比较)、逻辑
11 1
|
17天前
|
JavaScript 前端开发 测试技术
在JS编程中常见的编程“套路”或习惯汇总
在当前技术圈快速迭代发展的时代,JavaScript是一种广泛应用于Web开发和移动应用开发的脚本语言,其重要性愈发凸显,尤其是随着技术的不断发展和应用场景的不断扩展,JS编程已经成为了许多开发者必备的技能之一。但是仅仅掌握JS语法和基本知识并不足够,为了写出高质量、可靠性和可维护性的代码,开发者需要掌握一些常见的编程"套路"或习惯,这些套路和习惯能够帮助开发者更好地组织和管理代码,提高开发效率,并减少潜在的错误和问题。在JS编程开发中,有一些常见的编程“套路”或习惯,可以帮助开发者编写高效、可维护且易于理解的代码。让我们来看看其中一些常见的编程“套路”或习惯。那么本文就来分享探讨在JS编程中
33 6
在JS编程中常见的编程“套路”或习惯汇总
|
17天前
|
JavaScript 前端开发 C语言
JavaScript编程语法练习
本篇文章是对于javaScript中if ,switch,while ,do-while,,for语法的作业练习.对于我来说也是对自己知识掌握的一种检验.是对js的基础语法进行的一次练习,通过有趣的示例进行练习,使得对于代码能够增加印象,对于知识的掌握更加透彻.
|
17天前
|
XML 存储 JavaScript
JavaScript的基本语法是编程的基础
【4月更文挑战第20天】JavaScript的基本语法是编程的基础
23 5