JavaScript 实用技巧:JSON-P、内置函数与字符串处理

作者:青柠

时间:2026-10-29

浏览:665

本文介绍JavaScript开发中的实用技巧,包括直接使用JSON-P获取数据、利用Math.max和Array.sort简化逻辑、以及通过split和join高效管理DOM元素的CSS类名,帮助开发者写出更简洁高效的代码。

文章目录

引言

在之前的文章中,我们探讨了JavaScript的七大技巧。尽管从事JavaScript开发已有时日,但回顾其发展历程,仍令人兴奋。作为这一语言发展的见证者与受益者,我撰写了多篇教程、章节及专著,但依然不断发现新的知识。以下分享的是一些曾让我惊叹的编程技巧,建议立即尝试,而非等待未来偶然发现。

JSON-P数据获取


var band = {
   "name":"The Red Hot Chili Peppers",
   "members":[
   {
   "name":"Anthony Kiedis",
   "role":"lead vocals"
   },
   {
   "name":"Michael 'Flea' Balzary",
   "role":"bass guitar, trumpet, backing vocals"
   },
   {
   "name":"Chad Smith",
   "role":"drums,percussion"
   },
   {
   "name":"John Frusciante",
   "role":"Lead Guitar"
   }
   ],
   "year":""
   }

JavaScript支持直接使用JSON,可将其封装在函数中,或作为API的返回值。这种形式被称为JSON-P,被许多API广泛采用。你可以调用数据源,在script代码中直接返回JSON-P数据:

01 12

上述示例调用了Delicious网站提供的Web服务,获取最近无序书签列表的JSON格式数据。

本质上,JSON是描述复杂数据结构最轻便的方式,且能在浏览器中直接运行。

你甚至可以在PHP中使用json_decode()函数来处理它。

JavaScript的内置函数(Math、Array和String)

令我惊讶的是,深入研究JavaScript中的math和String函数后,我发现它们能极大简化编程工作。

使用这些函数,可以省去复杂的循环处理和条件判断。

例如,当需要找出数字数组中的最大值时,过去的写法如下:

利用内置函数简化逻辑


 var numbers =
  [,,,,];
   var max = ;
   for(var i=;i
   if(numbers[i]
  > max){
   max = numbers[i];
   }
   }
   alert(max);

现在无需循环即可实现:


 var numbers =

  [,,,,];
   numbers.sort(function(a,b){return b -
  a});
   alert(numbers[]);

需要注意的是,不能对数字字符数组直接使用sort(),因为这会按字母顺序排序。如需了解更多用法,推荐阅读关于sort()的详细介绍文章。

另一个有趣的函数是Math.max()。

该函数返回参数中最大的数字:


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

由于该函数能校验数字并返回最大值,可用于测试浏览器对某特性的支持情况:


 var scrollTop=
  Math.max(
   doc.documentElement.scrollTop,
   doc.body.scrollTop
   );

这是解决IE兼容性问题的一种方法。获取当前页面的scrollTop值时,根据页面DOCTYPE的不同,上述两个属性中仅有一个存放该值,另一个为undefined。通过Math.max()即可获取正确数值。

阅读相关文章可获取更多使用数学函数简化JavaScript的知识。

另外,split()和join()是一对非常有用的字符串操作函数。最具代表性的应用场景是为页面元素附加CSS样式。

具体而言,当给页面元素添加CSS class时,若它是该元素的第一个class,则直接赋值;若已有其他class,则需在原有class后加空格再追加新class。移除class时,也需同时去除其后的空格(这在旧版浏览器中至关重要,因为它们无法识别后跟空格的class)。

因此,原始写法如下:

高效管理CSS类名


 function addclass(elm,newclass){
   var c =
  elm.className;
   elm.className = (c === '') ? newclass : c+' '+newclass;
   }  你可以使用 split() 和 join() 函数自动完成这个任务: function addclass(elm,newclass){
   var classes =
  elm.className.split(' ');
   classes.push(newclass);
   elm.className = classes.join(' ');
   }  

这能确保所有class均被空格分隔,且追加的class位于末尾。

这种做法略显短视。虽然工具包能加速开发,但若不理解JavaScript底层机制,仍易出错。

JSON数据存储优势

使用JSON形式存储数据

在发现JSON之前,我使用各种复杂方法将数据存储于JavaScript固有数据类型中,例如数组、字符串,中间夹杂易拆分的标志符号及其他繁琐内容。

Douglas Crockford发明JSON后,情况彻底改变。

借助JSON,可利用JavaScript自有功能将数据存储为复杂格式,无需额外转换,直接访问使用。

JSON是“JavaScript Object Notation”的缩写,它结合了上述两种简写方法。

以上内容为小编分享的JavaScript七大技巧,希望对大家有所帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章