“流程控制语句”:if、for。

1.1 if

选择语句,给程序添加了多种执行路线。

1 if(){

2  语句1

3 }else if(){

4  语句2

5 }else if(){

6  语句3

7 }else{

8  语句4

9 }

有且仅有一条出路。注意跳楼现象。

所以我们发现,计算机的两个基本能力:1)计算能力 2)流程控制能力

1.2 for

循环语句,顾名思义,就是将结构类似的语句重复执行。

1 for(var i = 0 ; i <= 100 ; i++){

2  console.log(i);

3 }

for语句能够简化程序的书写,不用大量的ctrl+C、ctrl+V了;

for语句充分体现计算机的“奴隶性”。

比如题目:寻找1~1000之内,所有能被5整除、或者能被6整除的数字

for(var i = 1 ; i <= 1000 ; i++){

2  if(i % 5 == 0 || i % 6 == 0){

3  console.log(i);

4  }

}

上面这个算法,我们有一个术语“穷举法”

穷:  完整。欲穷千里目,更上一层楼。穷尽。

举:  列举,推举。

穷举法:就是一个一个试。我们现在要寻找1~1000之内,所有能被5整除、或者能被6整除的数字。

我们的思路,就是将1、2、3、4、……998、999、1000依次去试验。看看这个数字,能不能被5或者6整除。

这时候你说,老师,那计算机太辛苦了。你看,13这个数字,为什么还要试呢?打眼一看就不能被5、6整除。

计算机就是一个奴隶。它没有思维,它就是一个不吃饭,有着极强计算力的东西。

二、几道算法练习

2.1 题目1:报7游戏的安全数

大家从小到大,都玩儿过的一个庸俗的游戏:

游戏玩儿法就是,大家轮流报数,如果报到能被7整除的数字,或者尾数是7的数字,都算踩地雷了。就应该罚唱歌。

请在控制台输出1~60之间的所有“安全数”。

比如:

1、2、3、4、5、6、8、9、10、11、12、13、15、16、18、19、20、22、23、24、25、26、29、30……

答案见案例

2.2 题目2:水仙花数

水仙花数是一种特殊的三位数,它的特点就是,每个数位的立方和,等于它本身。

比如153就是水仙花数。因为:

13+53+33 = 153

100~999之内,只有4个水仙花数,请找出来。

特别经典的算法,是每个学习编程的人,都要会做。

答案见案例,我们只列出数值答案: 153、370、371、407


2.3 题目3:求1~100的和

求和的题目,涉及到了新的一种算法思想,叫做“累加器”。

1+2+3+4+5+6……

正确的:

1  var sum = 0; //累加器

2  //遍历1~100,将所有的数字扔到累加器里面

3  for(var i = 1 ; i <= 100 ; i++){

4  sum = sum + i;

5  }

6  console.log(sum);

初学者常见的错误:

错误1:不声明sum,不行的,因为所有的变量都要声明:

1  //遍历1~100,将所有的数字扔到累加器里面

2  for(var i = 1 ; i <= 100 ; i++){

3  sum = sum + i;

4  }

5  console.log(sum);

错误2: sum不能在for里直接声明:

1  //遍历1~100,将所有的数字扔到累加器里面

2  for(var i = 1 ; i <= 100 ; i++){

var sum = sum + i;

4  }

1  console.log(sum);

错误3: 每次for循环都要var一次,是不正确的:

1  //遍历1~100,将所有的数字扔到累加器里面

2  for(var i = 1 ; i <= 100 ; i++){

var sum = 0;//累加器

4  sum = sum + i;

5  }

6  console.log(sum);


2.4 求阶乘

所谓的阶乘,比如6的阶乘,就是1*2*3*4*5*6 = 720。

现在,计算13的阶乘。

1 var result = 1; //累乘器

2

3 for(var i = 1 ; i <= 13 ; i++){

4  result = result * i;

5 }

6 console.log(result);

2.5 用户输入一个数,输出因数的个数

昨天晚上的作业3,就是用户输入一个数,输出所偶遇能够整除它的数字。

比如,

用户输入48,此时输出1、2、3、4、6、8、12、16、24、48 。  共10个数字。

用户输入21,此时输出1、3、7、21.共4个数字。

今天的这道题目,和昨天的这个题目非常像,不过不输出完成序列,只输出个数。

也就是说,用户输入48,弹出10

用户输入21,弹出4

用户输入11,弹出2

提示:此题用到累加器。

2.6 判断质数

质数:就是只能被1和自己整除。

翻译过来:它的因数个数是2。

比如:2、3、5、7、11、13、17、19、23、29、31、37……

用户输入一个数字,弹出这个数字是否是质数。

提示,用2.5的思路。

答案见案例。


三、函数

3.1 初步认识函数

1  <script type="text/javascript">

2  console.log("你好");

sayHello(); //调用函数

4

5  //定义函数:

6  function sayHello(){

7  console.log("欢迎");

8  console.log("welcome");

9  }

10  </script>

11 </body>

函数,是一种封装。就是将一些语句,封装到函数里面。通过调用的形式,执行这些语句。

函数的使用,是两个步骤,第一步,函数的定义

语法:

1 function 函数名字(){

2

3 }

function就是英语“函数”、“功能”的意思。顾名思义,将一些功能封装到函数里面。

function是一个关键字,和var、typeof一样,都是关键字,后面要加空格。

函数名字的命名规定,和变量的命名规定一样。只能是字母、数字、下划线、美元符号,不能以数字开头。

后面有一对儿空的小括号,里面是放参数用的,下午介绍。大括号里面,是这个函数的语句。

常见错误:

不能小括号包裹大括号:

1 function sayHello({

2

3 })

不能忘了小括号对儿:

1 function sayHello{

2

3 }


第二步,函数的调用。

函数如果不调用,等于白写。

调用一个函数,太简单了,就是这个函数的名字后面加小括号对儿。

语法:

1 函数名字();

定义函数,可以在调用的后面:这是JS的语法特性,函数声明头的提升。知道就行了。

1  console.log("你好");

2  sayHello(); //调用函数

3

4  //定义函数:

5  function sayHello(){

6  console.log("欢迎");

7  console.log("welcome");

8  }

函数的功能、好处:

1) 将会被大量重复的语句写在函数里面,这样以后需要这些语句的时候,直接调用函数,不用重写那些语句。

2) 简化编程,让编程变的模块化。

3.2 函数的参数

实际参数和形式参数的个数,要相同。

1  qiuhe(3,4);

2  qiuhe("3",4);

3  qiuhe("我爱你","中国");

4

5  function qiuhe(a,b){

6  console.log(a + b);

7  }

3.3 函数的返回值

1  <script type="text/javascript">

2  console.log(qiuhe(3,4));

3

4  function qiuhe(a,b){

return a + b;

6  }

7  </script>

return就是英语“返回”的意思,那么就表示此时这个“函数调用的表达式”(红色部分),值就是这个a+b。

● 函数里面可以没有return,如果有,只能有一个。不能有多个return;

● 函数里面,return后面不允许书写程序了,也就是说写在后面的程序无效;

JS原生第一篇 (帅哥)的更多相关文章

  1. JS原生第二篇 (帅哥)

    1.1 Javascript 作用  1.  网页特效 2. 用户交互 3. 表单验证 Js  就是可以用来控制   结构  和 样式 . 1.2  体验js   认识常用的三个输出语句.  都属于 ...

  2. js入门第一篇

    简介:JavaScript 运行在客户端(浏览器)是一种客户端语言,javascript的引擎被称为JavaScript引擎,为浏览器的一部分广泛用于客户端的脚本语言 应用场景:网页特效, 服务端开发 ...

  3. 初识js(第一篇)

    初识javascript js是前端中作交互控制的语言,有了它,我们的前端页面才能"活"起来.学好这么语言显得非常重要,但是存在一定难度,所以一定要认真学习,充满耐心. js书写规 ...

  4. JS数据结构第一篇---算法之复杂度判断

    1.算法:算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作. 那么一个怎样的算法才能称得上是好算法,也就是说有没有什么标准来评判一个算法的好坏? 在此之 ...

  5. iOS开发--JS调用原生OC篇

    JS调用原生OC篇 方式一(反正我不用) 第一种方式是用JS发起一个假的URL请求,然后利用UIWebView的代理方法拦截这次请求,然后再做相应的处理. 我写了一个简单的HTML网页和一个btn点击 ...

  6. Three.js 第一篇:绘制一个静态的3D球体

    第一篇就画一个球体吧 首先我们知道Three.js其实是一个3D的JS引擎,其中的强大之处就在于这个JS框架并不是依托于JQUERY来写的.那么,我们在写这一篇绘制3D球体的文章的时候,应该注意哪些地 ...

  7. jquery jtemplates.js模板渲染引擎的详细用法第一篇

    jquery jtemplates.js模板渲染引擎的详细用法第一篇 Author:ching Date:2016-06-29 jTemplates是一个基于JQuery的模板引擎插件,功能强大,有了 ...

  8. 空格哥的第一篇Blog

    首先十分感谢博客园在这里给我的平台,我在这里学习到了很多东西,响应的,我也想要在这里记录下自己的心路历程!在学习的过程中,希望博客园一直陪伴我,小弟在这里不胜感激!这是小弟的第一篇博客,很多东西都不是 ...

  9. 深入理解javascript对象系列第一篇——初识对象

    × 目录 [1]定义 [2]创建 [3]组成[4]引用[5]方法 前面的话 javascript中的难点是函数.对象和继承,前面已经介绍过函数系列.从本系列开始介绍对象部分,本文是该系列的第一篇——初 ...

随机推荐

  1. 访问控制public/protected/private的区别

    Java支持四种不同的访问权限: 修饰符 说明 public 共有的,对所有类可见. protected 受保护的,对同一包内的类和所有子类可见. private 私有的,在同一类内可见. 默认的 在 ...

  2. 天气预报API(六):中国气象频道、腾讯天气--“新编码”接口的测试

    说明 本文所有测试均以青岛为例. 本文所列接口城市代码(cityid)参数都使用的 "新编码": 全国城市代码列表(新) 本文接口均不是官方接口,仅供测试使用! 腾讯天气 空气质量 ...

  3. src与 href 的一些区别

    src用于替换当前元素,href用于在当前文档和引用资源之间确立联系. src 是 source 的缩写,指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置:在请求 src 资源时会将其指 ...

  4. toad的基本操作

    1.把鼠标停在sql所在行,然后ctrl+Enter直接执行当前sql. 2.解决Toad对中文显示乱码问题(如果数据库所在主机的NLS_LANG是AMERICAN_AMERICA.WE8ISO885 ...

  5. selenium 富文本框处理

    selenium 富文本框处理, 网上有用API的解决方法1:参见:http://blog.csdn.net/xc5683/article/details/8963621 群里1位群友的解决方法2:参 ...

  6. ButterKnife的原理简述

    ButterKnife的原理简述 注解处理器Java5 中叫APT(Annotation Processing Tool),在Java6开始,规范化为 Pluggable Annotation Pro ...

  7. U8SDK——游戏接入SDK(只接入抽象框架)

    上一篇文章我们说了整个U8 SDK抽象成的设计,那这篇文章,我们就来验证一下,他是否如我们期待的那样,简单灵活. 正如之前所说,对于每个游戏,只需要接入抽象层,而每个渠道SDK的接入,就是该抽象层的一 ...

  8. linq to entity 查询数据表是错误解决

    错误提示: 解决方式:换成了 linq to sql方式

  9. 转载:oracle null处理

    (1)NULL的基础概念,NULL的操作的基本特点NULL是数据库中特有的数据类型,当一条记录的某个列为NULL,则表示这个列的值是未知的.是不确定的.既然是未知的,就有无数种的可能性.因此,NULL ...

  10. Windows Server 2008 系统设置集合

    1.禁用IPV6 netsh interface teredo set state disabled netsh interface 6to4 set state disabled netsh int ...