判断数组 arguments

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        var arr = [1,2,3,4]
        var obj = {a:1}
        var str = '123132'
        var num = 123132
        var bool = true
        // var un = null
        // 判断是否是数组
        // console.log( Array.isArray(arr) )//true
        // 是数组 返回true 返回布尔值
        // console.log( typeof arr ) // object
// 使用typeof 判断会把数组和对象 无法准确判断

        // console.log( Array.isArray( obj ) ) // false

        // 无法区分对象和数组
        // 去判断对象和数组

        // ES6方法
        // console.log( Array.isArray(arr) )

        // 判断类型 可以用其构造函数来进行判断
        // 数组的构造函数 是数组类型的
        // console.log( arr.constructor === Array )
        // console.log( arr.constructor )
        // console.log( obj.constructor )
        // console.log( str.constructor )
        // console.log( num.constructor )
        // console.log( bool.constructor )

        // 参数列表

        // ES6中 callee caller 被禁止使用 所以不管了
        // 尽量不要使用匿名函数 
        var i = 0
        function fn1(){
            // i++
            // arguments//只能在函数内调用
            // console.log(arguments)//类数组 伪数组 类数组列表
            // 虽然是类数组 但是不能使用数组的方法 但是可以使用下标来访问数组内部的元素
            // console.log( Array.from(arguments) )
            console.log( arguments.callee )
            // 如果该函数 是回调执行的 那么arguments.callee.caller 就是调用这个函数的方法  就是fn2
            console.log( arguments.callee.caller )
      
                // console.log( arguments.callee() )//就是执行自己
                // 哪个函数中 就是当前的函数
       
            
        }
        function fn2(fn){
            fn()
        }

        fn2(fn1)

        // fn1(1,2,2,2,2,2,2,2,)
        // console.log(str.slice(0,3))
        // 有些数组的方法 字符串也能用

        function pushs(arr){
            for(var i = 0; i < arguments.length;i++){
                arr[arr.length] = arguments[i]
                // 一种别的类型 列表类型
                // 数组的长度 比下标大一个 所以正好可以当成数组的下标
            }
            return arr.length
        }
        // console.log( pushs(arr,5,6,7,8,9),arr)
        // console.log( str[1] )
        // console.log( str.length)
        // for( var i of str ){
        //     console.log(i)
        // }
        
        //  匿名函数 你不知道自己的名字 需要使用callee
        
</script>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值