JS-函数的 定义、调用、匿名函数

2017-10-24  本文已影响0人  大大的小小小心愿

JS消耗内存,性能比较低。一般能用CSS写HTML5写,不要用JS
变量在栈对象在堆
一、函数就是能执行特殊功能的代码段。函数是否需要参数、返回值,取决于这个函数的功能
注:函数只能有一个返回值。
二、定义函数

function a(){ ....}

三、调用函数、打印函数返回值,
1、基础

a();                         //调用函数
cosole.log(a());             // 打印函数返回值。  没有返回值,打印 undefined

2、调用对象,将属性当参数来写:便于触发多个事件

var a = {name:"大仁",eat:"苹果"};
function print(nav){
    console.log(a[nav]);  // [] 相当于 .
}
print("name");

四、形参、实参

function add(a,b){    //形参
    console.log(a + "," + b);
    console.log(arguments);   //  获取到的是实参的值
    return (a+b);
}    
add(11,12);           //实参

不传参时,
a、b的值为 nudefined
函数的返回值为 NaN



五、函数的作用域
全局变量:在函数外部定义的变量,可以在函数内部使用
局部变量:在函数内部定义的变量,只能在函数内部使用
其中,在函数内部定义的变量,如果不写var,也是全局变量。在外部使用前,需先执行这个函数(不推荐)
如果全局变量与局部变量有冲突,使用局部变量。(作用域近的)

  // 内部变量、外部变量冲突(取就近的)
    var numC = 20; 
    function fb(){
        var numC = 10;
        console.log(numC);  //10,就近取
    }
    fb();//执行fn
    console.log(numC);      //20,就近取

六、变量申明提前
就相当于 变量申明放到了JS代码最前方(var num1),再赋了值(num1 = 11)

//列一
console.log(num1);  // undefined
var num1 = 11;
console.log(num1);  // 11
//列二
function fn(){
console.log(num2);  //局部变量 undefined
var num2 = 12;
console.log(num2);  //局部变量 12
}
fn();

七、命名函数表达式
将一个函数存放在变量里

只能通过变量名去调用函数,不能通过函数名去调用
列::
  var fn = function a(){
    console.log("123");
  }
  fn(); // 正常打印  123
  a();  // 报错     a is not defined

八、匿名函数、匿名函数自执行
匿名函数:不能直接调用,可以保存在变量里

// 匿名函数
var a = function(){
}
// 匿名函数自执行
(function(){})();

var a = function(){
  console.log(123);
  return function(){
     console.log(456);
  }
}
a();               // 123
console.log(a());  // 123 和 返回的这个函数

a()();             // 456
//返回一个函数,再加个(),执行内部函数

九、isNaN 判断一个变量是不是NaN要用isNaN

if(isNaN(num)){ 
   ...  
}
上一篇下一篇

猜你喜欢

热点阅读