zoukankan      html  css  js  c++  java
  • JS基础部分(二)

    JavaScript 函数部分

    p113-114 函数导读

    概念:可能会经常重复用到一些代码,把他封装起来,方便使用。

    目的:让大量代码重复使用

    p115-116 函数的使用

    函数的声明:

    function 函数名(参数列表){

    ​ 代码块

    }

    调用函数一定要带上小括号 例如:函数名()

    p117-118 函数的参数

    形参:形式参数 声明中

    实参:实际参数 调用中

    参数之间用逗号隔开

    p119 函数形参和实参个数不匹配的情况

    1.个数匹配。正常

    2.实参的个数多于形参

    ​ 会取到形参的个数

    3.如果实参的格式小于形参的个数

    ​ num2 是一个变量但是没有接受值,多的形参定义为undefined就是underfined,结果是NaN

    p120-125 函数的应用

    Return 的注意事项

    1. return 后面的代码不会被执行
    2. return 只能返回一个值
    3. return num1,num2; return返回最后一个值
    4. 返回多个值的时候,可以通过数组 return [num1,num2];
    5. 函数有返回值,返回return 后面的值,没有的话返回undefined/

    p126 arguments的使用

    我们不知道到底需要多少个形式参数,用arguments来代替,用来获取参数,里面存储了传递的所有实参(是一种伪类数组(1.具有数组的length 属性 2.按照索引的方式进行存取 3.他没有真正数组的一些方法))

    我们按照数组遍历的方法来使用arguments的长度

        <script>
            function getMax(){
                var max = arguments[0];
                for(var i=1;i<arguments.length;i++){
                    if(arguments[i]>max){
                        max=arguments[i];
                    } 
                }
                return max;
            }
            console.log(getMax(1,2,3,4,12,61));
        </script>
    

    p128 翻转数组

    function reverse(arr){
               var newArr = [];
               for(var i = arr.length-1;i>= 0 ;i--){
                    newArr[newArr.length]=arr[i];
               }
               return newArr;
           }
           var arr1=reverse([1,2,3,4,5]);
           console.log(arr1);
    

    p133函数的声明方式

    1.利用函数关键字自定义函数

    2.函数表达式(匿名函数)

    var fun = function(arg){
     console.log('我是一个函数表达式');
     console.log(arg);
    }
    

    p134-139 作用域,全局变量,局部变量

    1. 代码名字在某个范围内起作用和效果,目的是为了提高程序的可靠性,更重要的是减少命名冲突
    2. js的作用域,在(es6)之前:全局作用域 局部作用域
    3. 全局作用域,在整个script标签内,或者整个外部文件的时候
    4. 局部作用域:在函数内部就是局部作用域,指代函数内部起效果和作用

    全局/局部变量

    1. 全局变量:浏览器关闭时才会销毁,比较占用内存
    2. 局部变量:函数运行之后就会被销毁

    JS现阶段没有块级作用域,es6里面才有作用域,for{} if {}这些都属于块级作用域。

    作用域链(就近原则)

    1. 函数内部再来一个函数,会有个新的作用域
    2. 内部函数是可以访问外部函数的
    3. 从内部函数->外部函数->全局变量, 一层层往往外面去找。采取的是就近原则。

    预解析

    JS代码是由浏览器中的解释器来执行的,JS解释器在运行JS代码的时候分为两步:预解析和代码啊执行

    1. 预解析

      js引擎会把js里面所有的var还有function提升到当前作用域的最前面

      • 分为变量预解析(变量提升)和函数预解析
      • 变量(所有用var声明的,包括方法返回)提升:就是把所有的变量声明提升到当前作用域最前面 不提升赋值操作
      • 函数提升:函数表达式,他的调用必须写在调用的后面

    2.代码执行

    按照代码书写的顺序从上往下执行

    注意很容易弄错

    <script>
            f1();
            console.log(c);
            console.log(b);
            console.log(a);
            function f1(){
                var a=b=c=9;
                // 这里相当于var a=9;b=9;c=9;这里面b,c是全局变量
                console.log(a);
                console.log(b);
                console.log(c);
            }       
        </script>
    
  • 相关阅读:
    B1009
    (OK)(OK) [android-x86-6.0-rc1] compile_Android-x86_64_in_IBM-X3650-M4.txt
    Fortran, Matlab, Octave, Scilab计算速度比较
    GNU Octave
    [android-x86-6.0-rc1] /system/etc/init.sh
    [android-x86-6.0-rc1] /system/xbin/log.sh
    Android源码学习之接着浅析SystemServer
    Android源码学习之浅析SystemServer脉络
    Android-x86_64
    Android-x86_64
  • 原文地址:https://www.cnblogs.com/li33/p/13129901.html
Copyright © 2011-2022 走看看