js第六课——数组1.0

数组

定义:各种数据的集合
数组的组成:键名和键值组成
例:    var arr = [10,20,30];
        console.log(arr);//打印的结果为(3)[10,20,30]
        展开为: 0:10
                1:20
                2:20
                prototype array(0);
                length:3;
数组作用:
    1.通过键名可以获取具体数组里的值
        例:console.log(arr[0]);//打印结果为10
            console.log(arr[1]);//打印结果为20
    2.可以通过 数组下标(键名)来赋值数组对应的键值
        例:arr[0] = 50 ;
            console.log(arr[0]);//此时的键名为0的键值变成50
    3.数组的长度    数组里的键值数量
        例:console.log(arr.length);//数组arr的长度为3,打印结果也是3
    4.键值的类型   可以是任何类型

隐藏参数

--作用:通过隐藏参数接收不定数量的实参,每个函数内部都会预定一个变量名叫arguments,里面放的是调用时候的实参

--实际意义:隐藏参数实际上是一个放了所有不确定的实参个数的数组,在函数内部,可以通过arguments[键名]调用

--注意--
    隐藏参数arguments的个数只和实参个数有关,和形参无关
    例:    function () {
                console.log(arguments[1]);
            }
            fn(5,6,7,8);//打印结果为6
            分析:由实参传递过来的数据组成的隐藏数组可以表示为arguments[5,6,7,8] ,arguments[1]的结果就是6
函数的参数类型
    函数的实参,也可以是任意类型,所以传递给函数的隐藏参数数组可以是任意类型
    例: function () {
            console.log("fn1");
            return function () {
                console.log("fn");
            }
        }
        fn()();//打印结果为fn1  

声明与预解析

1.变量声明
    例:console.log(a);//打印结果为undefined
        var a = 10 ;
    上述代码在hosting模式中,解析为:
        var a ;
        console.log(a);
        a = 10;    
        所以最后执行的结果时定义未赋值,打印为undefined

2.函数的声明
    函数的声明:函数的声明无论在哪里定义一个函数,在预解析代码阶段都会吧函数声明提升到最顶部
    例:    var fn = function () {

            }
        等同于:    var fn ;
                    fn = function (){}

3.既有变量提升,也有函数提升
    注意:函数的提升优先于变量的提升

例:    var fn = 10 ;
        function fn (){
            console.log("fn1");
        }
        fn = () ; 
在编译器内部,这一段js代码预解析后:
        function fn () {
            console.log("fn");
        }
        var fn ; 
        fn = 10 ;
        fn () ;
函数声明前置,然后是变量声明前置,然后代码一次执行。
因为var 给fn声明的是一个数值10,所以fn不能执行函数的内容。最后打印的结果是--fn is not a function--
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值