接上篇作一些补充吧,以前讲到过编程中的类型和函数,好比声明一个变量必须指定类型,或者说声明一个函数必须指定参数类型和返回类型。其实在动态编程语言中,并非这样的。动态编程语言比较灵活和自由,我能够列举如下几个特征:javascript
- 声明变量不须要指定类型,好比 var count = 0; var只是一个变量声明的关键字而不是一个类型标识,其实声明以后,count的类型是经过值进行推断出来的
- 变量能够从新赋值,好比 上面已经声明了变量count而且赋值为0,编译器推断它为数值类型。而后我在程序后面能够从新使用诸如 count = "hello world";这样的代码,就是说count的值已经动态变成了一串字符串了,并且类型也变成了字符串类型了。因此js里面var是什么含义呢?它彻底不是类型标识,它就是一个代号一个关键字,这是一个变量,它能够表示任何东西。这一点须要和传统的静态编程语言区分开来
- 函数没必要指定参数类型,也没必要指定返回值类型。好比 function getCount(list){ ... },若是按照静态编程语言,这里应该是 function int getCount(array list){ ... },但这里却不是,动态编程语言(好比js)的函数是不须要在定义的适合指定参数类型和返回类型的。这一点须要注意,有时候这样类型的灵活会带来一些很差的地方,为何呢?能够思考一下
我在这里说明这些,实际上是想说明,我拿静态编程语言举例子,只是为了方便理解而已,具体在编程中,仍是要参照具体的编程语言环境和语法进行编码前端
这里我就不具体阐述程序控制流程的那些说明了,我把它们列出来,本身在代码里面敲一遍理解一下。若是你肯定你已经充分了解他们的用法和使用场景,那么直接跳过就好了java
- if 分支
- if ... else if 分支
- if ... else 分支
- switch 分支
- while 循环
- do ... while 循环
- for(i=0;i<10;i++) { ... } 循环
- for(var item in list) { ... } 循环
- 循环中的continue 循环继续
- 循环中的break 循环中断
- 函数中的return 函数返回
插一下关于逻辑操做符合运算符的知识:算法
- && 而且
- || 或者
- = 赋值运算符
- ==或者===,相等运算符
再讲一个小例子,了解一下运算符的优先级:
好比,if(a){ b = a} ,能够表示为 a && (b=a) ,为何呢?试想一下,假设有一个布尔类型是这样表示的: bool positiveEven = (a>0 && a%2==0),表示正的偶数,a大于0而且a能够被2整除(余数为0),它们的判断顺序是怎么样的呢?先判断a>0这个逻辑,若是a>0的逻辑成立再判断后面a%2==0的这个逻辑。想一想看,这里面的优先级判断,是否是有一个条件判断的意味在里面?由于若是a<0的话,后面那一句确定就不用再判断了,直接就返回false了。嗯,想一想一下||(或)这个逻辑操做符,其实它这个是反过来的逻辑,想一下!
补充几道题目吧,有空作一下:
1)在网页上显示一个时钟和日期,要求实时更新,显示时分秒就能够了。
2)用javascript打印100之内的斐波那契数列
3) 给定一个数组[3,7,5,8,2,1,10,9,4],写一个函数,对这个数组进行排序
尽可能试着作一下吧,最好是可以作出来。了解一下本身哪方面的不足,记下来,写出来编程
后面我准备讲一下函数传值问题,而后讲一下引用类型和值类型,再日后开始讲讲基本的算法和数据结构了。OK,先就这样数组