# 函数
* 简介函数语法
* 函数名命名规则
* 函数包含哪几部分
* 函数调用的三种情况
* 简述函数返回值
* 下面代码的执行结果为
  ```
  var x = myFunction(7, 8);      
    function myFunction(a, b) {
        return a * b;                
    }
  ```

* 为什么要使用函数
* 简单介绍局部变量和全局变量
* 下面两段代码的执行结果分别是什么 并说明原因
  ```
  function myFunction() {
    var carName = "Volvo";
  }
  console.log(carName)

  ```
  ```
  function myFunction() {
    var carName = "Volvo";
    console.log(carName)
  }
  

  ```

* 函数如何返回值，如何接收
* 下面代码执行结果是什么  为什么

```
function sum(iNum1, iNum2) {
    return iNum1 + iNum2;
  }

```

* 下面代码执行结果是什么  为什么 
  
```
function sum(iNum1, iNum2) {
    console.log(iNum1 + iNum2);
  }

```

* 下面代码执行结果是什么  为什么 
  
```
function sum(iNum1, iNum2) {
    console.log(iNum1 + iNum2);
  }
sum()

```

* 下面代码执行结果是什么  为什么 
  
  ```
    function sum(iNum1, iNum2) {
        return iNum1 + iNum2;
      }
      var iResult = sum(1,1);
    alert(iResult);	

  ```

* 下面代码执行结果是什么 为什么
  
  ```
    function sum(iNum1, iNum2) {
      return iNum1 + iNum2;
      alert(iNum1 + iNum2);
    }
  ```

* 下面代码的执行结果为
  ```
  function sayHi(sMessage) {
    if (sMessage == "bye") {
      return;
    }

    alert(sMessage);
  }
  ```

* 如何检测参数的个数
* 下面代码的执行结果是多少
  ```
    function howManyArgs() {
      alert(arguments.length);
    }

    howManyArgs("string", 45);
    howManyArgs();
    howManyArgs(12);

  ```
* 什么是arguments 对象
* 下面代码的执行结果
  ```
  function sayHi() {
  if (arguments[0] == "bye") {
    return;
  }

  alert(arguments[0]);
  }
  ```

* 下面代码的执行结果是什么
  ```
  function howManyArgs() {
  alert(arguments.length);
  }

  howManyArgs("string", 45);
  howManyArgs();
  howManyArgs(12);

  ```
* 什么是函数重载
* 下面代码的执行结果是什么
  ```
  function doAdd() {
    if(arguments.length == 1) {
      alert(arguments[0] + 5);
    } else if(arguments.length == 2) {
      alert(arguments[0] + arguments[1]);
    }
  }

  doAdd(10);	
  doAdd(40, 20);
  ```

* 通过new function() 的系形式重新定义下面的对象
  ```
  function sayHi(sName, sMessage) {
    alert("Hello " + sName + sMessage);
  }

  ```
* Function对象的属性和方法
* 编写一个函数，计算三个数字的大小，按从小到大顺序输出
* 编写一个函数，计算任意两个数字之间所能组成的奇数个数，数字必须是个位数
比如： 计算0-3之间能组成的奇数个是01、21、03、13、23、31

* 某个公司采用公用电话传递数据，数据是四位的整数，在传递过程中是加密的，
加密规则如下：每位数字都加上5,然后用除以10的余数代替该数字，再将第一位和第四位交换，
第二位和第三位交换，请编写一个函数，传入原文，输出密文

* 用*实现等边三角形

* 编写一个函数来验证输入的字符串是否是有效的 IPv4 地址。

    如果是有效的 IPv4 地址，返回 "IPv4" ；
    如果不是上述类型的 IP 地址，返回 "Neither" 。

IPv4 地址由十进制数和点来表示，每个地址包含 4 个十进制数，其范围为 0 - 255， 用(".")分割。比如，172.16.254.1；
