不要用 Eval,使用 ES7 的 Array.prototype.includes() 和 Array.prototype.indexOf() 函数
在前端开发中,我们常常需要对数组进行操作。在处理数组时,我们经常会遇到查找元素的需求。而在查找元素时,我们通常会使用 indexOf() 函数。但是,ES7 新增了一个更加方便和易于使用的函数——includes()。相比较于 indexOf() 函数,includes() 函数更加简洁、易读、易于维护。
不要使用 Eval 函数
在 JavaScript 中,我们可以使用 Eval 函数来执行一段字符串作为代码,例如:
eval("var a = 1; console.log(a);"); // 输出 1
但是,Eval 函数存在一些安全性问题。如果我们在执行 Eval 函数时,传入的字符串中包含了恶意代码,就有可能导致代码被注入,从而造成安全漏洞。因此,我们应该尽量避免使用 Eval 函数。
使用 Array.prototype.includes() 函数
ES7 中新增了一个 includes() 函数,用于判断一个元素是否在数组中。这个函数的使用非常简单,只需要传入需要查找的值即可。示例代码如下:
const arr = ['apple', 'banana', 'orange']; console.log(arr.includes('apple')); // true console.log(arr.includes('watermelon')); // false
使用 Array.prototype.indexOf() 函数
在 ES6 之前,我们经常使用 indexOf() 函数来查找数组中的元素。这个函数的使用也非常简单,只需要传入需要查找的值即可。示例代码如下:
const arr = ['apple', 'banana', 'orange']; console.log(arr.indexOf('apple')); // 0 console.log(arr.indexOf('watermelon')); // -1
需要注意的是,indexOf() 函数返回的是元素在数组中的索引值,如果没有找到对应的元素,就会返回 -1。
总结
在前端开发中,我们常常需要对数组进行操作。在处理数组时,我们经常会遇到查找元素的需求。而在查找元素时,我们通常会使用 indexOf() 函数。但是,在 ES7 中,新增了一个更加方便和易于使用的函数——includes()。相比较于 indexOf() 函数,includes() 函数更加简洁、易读、易于维护。因此,我们应该尽可能地使用 includes() 函数,而避免使用 Eval 函数。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/658ce5b5eb4cecbf2d2be2fe