JavaScript:函数学习

2017-03-20  本文已影响16人  勇往直前888

函数声明

console.log(square(5));
/* ... */
function square(n) {
    return n*n;
} // 这里不要有;只是定义,不是执行

函数表达式

var square = function(number) {
  return number * number
};  // 这里有;
var x = square(4); // x得到的值为16
var factorial = function fac(n) {return n<2 ? 1 : n*fac(n-1)};
console.log(factorial(9));
function map(f,a) {
  var result = [];// 创建一个新的数组

  for (var i = 0; i != a.length; i++) {
      result[i] = f(a[i]);
  }
  return result;
}
var f = function(x) {
    return x * x * x
};
var a = [0, 1, 2, 5, 10];
var b = map(f, a);   // b = [0, 1, 8, 125, 1000]; a = [0, 1, 2, 5, 10];

自调用函数

(function () {
    var x = "Hello!!";      // 我将调用自己
    alert(x);
})();

闭包

var createPet = function(name) {
  var sex;
  
  return {
    setName: function(newName) {
      name = newName;
    },
    
    getName: function() {
      return name;
    },
    
    getSex: function() {
      return sex;
    },
    
    setSex: function(newSex) {
      if(typeof newSex == "string" 
        && (newSex.toLowerCase() == "male" || newSex.toLowerCase() == "female")) {
        sex = newSex;
      }
    }
  }
}

var pet = createPet("Vivie");
pet.getName();                  // Vivie

pet.setName("Oliver");
pet.setSex("male");
pet.getSex();                   // male
pet.getName();                  // Oliver

使用arguments对象

函数的实际参数会被保存在一个类似数组的arguments对象中。在函数内,可以通过arguments[i]找出传入的参数。比如,模仿数组的join函数实现:

function myConcat(separator) {
   var result = ""; // initialize list
   // iterate through arguments
   for (var i = 1; i < arguments.length; i++) {  // 0 是separator
      result += arguments[i] + separator;
   }
   return result;
}
// returns "red, orange, blue, "
myConcat(", ", "red", "orange", "blue");
// returns "elephant; giraffe; lion; cheetah; "
myConcat("; ", "elephant", "giraffe", "lion", "cheetah");
// returns "sage. basil. oregano. pepper. parsley. "
myConcat(". ", "sage", "basil", "oregano", "pepper", "parsley");

参考文章

函数

JavaScript function函数种类

JavaScript 函数定义

上一篇 下一篇

猜你喜欢

热点阅读