zoukankan      html  css  js  c++  java
  • JavaScript 函数

    JavaScript 函数

    方法&函数

    区别

    1. function 是更通用的概念,如数学、编程
    2. method 是面向对象中的概念,一般与类或对象成对出现

    关系

    1. 对象的属性可以是任意类型
    2. 对象的属性如果是函数类型,它就叫做这个对象的方法
    3. 所以方法的本质还是函数

    函数的调用

    1. fun()
    2. obj.fun()
    3. fun.call()

    函数的属性和方法

    1. name
    2. length
    3. toString

    作用域

    变量不是哪里都可以使用

    全局变量(跨文件)

    var n = 1;
    function fn(){
    	console.log(n);  // 1
    }
    

    局部变量(只能在函数内部访问)

    function fn1(){
    	var n = 2;
    }
    console.log(n);  // Uncaught ReferenceError: number is not defined
    

    函数作用域

    • 函数能独立出一个作用域
    var n = 1;
    function f(){
    	var n = 2;
    	console.log(n); // 在当前作用域进行变量寻找
    }
    f();
    console.log(n);  // 在全局作用域进行变量寻找
    
    • 函数里面可以访问函数外面
    var n = 1;
    var x = function(){
    	console.log(n);
    };
    
    function f(){
    	var n = 2;
    	x();
    }
    f();
    
    • 自调用匿名函数
    !function (){
    	var n = 1;
    	console.log(n);
    };
    
    ~function (){
    	var n = 1;
    	console.log(n);
    };
    
    (function(){
    	var n = 1;
    	console.log(n);
    }());
    
    • 闭包
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <title>JS Bin</title>
    </head>
    <body>
      <ul>
        <li>aaa</li>
        <li>bbb</li>
        <li>ccc</li>
        <li>ddd</li>
        <li>eee</li>
      </ul>
      <script>
        var items = document.getElementsByTagName('li'),
                i = 0;
        for (i; i < items.length; i++) {
          items[i].onclick = function(e){
            alert(i);
          };
        }
      </script>
    </body>
    </html>
    
    function fn1(){
      var a = 1;
      
      function fn2(){
        a += 1;
        console.log(a);
      }
      
      return fn2; 
    }
    
    var r = fn1();
    r();    // 2
    r();    // 3
    r();    // 4
    
    • 回调(callback)给别人调用的函数
    function trySomething(callback){
      console.log('some thing');
      callback('成功');
    }
    
    trySomething(function(value){
      console.log(value);
    });
    

    setTimeout(callback, time),一段时间后将 callback 放入执行清单
    JavaScript 引擎做完手头的事情才会去看执行清单

    • 同步
    console.log(1);
    console.log(2);
    console.log(3);
    
    • 异步
    console.log(1);
    setTimeout(function(){
      console.log(2);
    },0);
    console.log(3);
    
  • 相关阅读:
    JS深度判断两个数组对象字段相同
    box-shadow inset
    swiper实现滑动到某页锁住不让滑动
    vuex上手文章参考
    js基础补漏
    react学习文章
    C# .Net String字符串效率提高-字符串拼接
    JS,Jquery获取各种屏幕的宽度和高度
    highcharts的dataLabels如何去处阴影
    .net C# 抽奖,中奖
  • 原文地址:https://www.cnblogs.com/jimmzy/p/5563724.html
Copyright © 2011-2022 走看看