《众妙之门——JavaScript与jQuery技术精粹》——1.3 JavaScript自带函数(数学、数组以及字符串函数)

本节书摘来自异步社区《众妙之门——JavaScript与jQuery技术精粹》一书中的第1章,第1.3节,作者: 【德】Smashing Magazine译者: 吴达茄 芮鹏飞 更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.3 JavaScript自带函数(数学、数组以及字符串函数)

通读了JavaScript的数学、数组和字符串函数后,我意识到它们会让编程变得非常方便,使用它们可避免使用许多循环和条件。例如,当需要找到一组数中的最大数时,需要写这样一个循环:
《众妙之门——JavaScript与jQuery技术精粹》——1.3 JavaScript自带函数(数学、数组以及字符串函数)

可以不通过循环而这样实现:
《众妙之门——JavaScript与jQuery技术精粹》——1.3 JavaScript自带函数(数学、数组以及字符串函数)

需要注意的是,不能对一个数值数组使用sort()函数,因为它会按照词法排序。

另一个有趣的方法是利用Math.max()函数,返回一列参数中的最大值:

Math.max(12,123,3,2,433,4); // returns 433

因为这个函数可以测试数据并返回最大值,因此可以用它来测试浏览器支持的默认属性:

《众妙之门——JavaScript与jQuery技术精粹》——1.3 JavaScript自带函数(数学、数组以及字符串函数)

这解决了一个IE问题。我们可以读出当前文件的特性,但是对于该文件不同的文档类型,两个属性中其中之一将被赋予该值。而使用Math.max()则可以获得正确的值,因为只有一个属性有返回值,另一个将是未定义。

其余操作字符串的常用函数是split()和join()。最经典的例子可能就是利用一个函数将CSS的类添加到元素中。

现在的问题是,当需要在DOM元素中添加一个类时,要么是将它作为第一个类添加,要么是将它和一个空格键一起加在已经存在的类前面。当删除该类时,也需要删除相应的空格(这在过去更为重要,因为有些浏览器会因为多余的空格报错)。

因此,原始方程应该写成这样:

《众妙之门——JavaScript与jQuery技术精粹》——1.3 JavaScript自带函数(数学、数组以及字符串函数)

可以运用split()和join()函数来自动实现:

《众妙之门——JavaScript与jQuery技术精粹》——1.3 JavaScript自带函数(数学、数组以及字符串函数)

这样操作可以保证类与空格自动分离且结果被附加在最后。

上一篇:14 个使用 jQuery 开发的模拟、数字时钟


下一篇:day01基于ECS搭建FTP服务