<!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>
判断数组 arguments
最新推荐文章于 2023-04-03 16:34:17 发布