typeof map[Symbol.iterator] === ‘function‘ 到底是什么? 判断数据结构是否含有遍历器

typeof map[Symbol.iterator] === ‘function’ 到底是什么?

typeof是一个操作符,它的作用是返回一个值的数据类型。例如:

typeof 'hello'; // 'string'
typeof 123; // 'number'
typeof true; // 'boolean'
typeof [1, 2, 3]; // 'object'
typeof {name: '小姐姐'}; // 'object'
typeof null; // 'object'
typeof undefined; // 'undefined'
typeof function(){}; // 'function'

常见的数据类型有:undefined、boolean、number、string、bigint(ES6中新增的大整数类型)、symbol(ES6中新增的原始数据类型)和 object(包括数组、对象、null等)。

在一个对象后面加上中括号,表示访问该对象的一个属性或方法。例如:

var obj = {
  name: '小明',
  age: 18
};

console.log(obj['name']); // '小明'
console.log(obj['age']); // 18
等同于:

var obj = {
  name: '小明',
  age: 18
};

console.log(obj.name); // '小明'
console.log(obj.age); // 18

function也是一个数据类型。它和其他数据类型一样,可以作为变量的值、可以作为对象的属性和数组的元素。例如:

var func = function(){
  console.log('我是一只小函数~');
}

var obj = {
  sayHi: function(){
    console.log('大家好,我是对象里的一只小函数~');
  }
};

var arr = [
  function(){console.log('我是数组里的一只小函数~')},
  function(){console.log('我也是数组里的一只小函数~')}
]

最后来说一下上述代码。map[Symbol.iterator]表示获取map对象的一个名为Symbol.iterator的属性(这是ES6中用于定义迭代器的一种新的方式)。typeof map[Symbol.iterator] === 'function’则表示判断map对象是否具有iterator方法,并且该方法是否为一个函数。因为在JS中函数也是一种数据类型,因此可以用typeof来判断是否为函数。这句代码的作用就是对一个对象进行判断,看看它是否具有可迭代性。如果是,那么我们就可以对这个对象进行迭代操作。

参考:ES总结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值