Web ----- JavaScript 一 语言基础(二)

一.函数

普通函数

// 普通函数定义
function f1() {
  console.log("Hello world!");
}

带参数函数

// 带参数的函数
function f2(a, b) {
  console.log(arguments);  // 内置的arguments对象
  console.log(arguments.length);
  console.log(a, b);
}

带返回值函数

/ 带返回值的函数
function sum(a, b){
  return a + b;
}
console.log(sum(1, 2));  // 调用函数

匿名函数

// 匿名函数方式
var sum = function(a, b){
  return a + b;
}
console.log(sum(1, 2));

立即执行函数

// 立即执行函数
console.log(
(function(a, b){
  return a + b;
})(1, 2);)

ES6新增的箭头函数

var f = v => v;
// 等同于
var f = function(v){
  return v;
}

// 如果箭头函数不需要参数或需要多个参数,就是用圆括号代表参数部分:

var f = () => 5; // 等同于 var f = function(){return 5}; var sum = (num1, num2) => num1 + num2; // 等同于 var sum = function(num1, num2){ return num1 + num2; }

函数中的arguments函数:

function add(a,b){
  console.log(a+b);
  console.log(arguments.length)
}

add(1,2)

函数只能返回一个值,如果要返回多个值,只能将其放在数组或对象中返回。

函数的全局变量和局部变量:

局部变量

在JavaScript函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它(该变量的作用域是函数内部)。只要函数运行完毕,本地变量就会被删除。

全局变量:

在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。

变量生存周期:

JavaScript变量的生命期从它们被声明的时间开始。

局部变量会在函数运行以后被删除。

全局变量会在页面关闭后被删除。

作用域:

var city = "BeiJing";
function f() {
  var city = "ShangHai";
  function inner(){
    var city = "ShenZhen";
    console.log(city);
  }
  inner();
}

f();  //输出结果是?
ShenZhen
结果
var city = "BeiJing";
function Bar() {
  console.log(city);
}
function f() {
  var city = "ShangHai";
  return Bar;
}
var ret = f();
ret();  // 打印结果是?
BeiJing
结果

闭包函数

var city = "BeiJing";
function f(){
    var city = "ShangHai";
    function inner(){
        console.log(city);
    }
    return inner;
}
var ret = f();
ret();
ShangHai
结果
原文地址:https://www.cnblogs.com/beihan/p/9601253.html