安卓开发替换json字符串中的数据_22条常用JavaScript开发小技巧

fccbde66c4053167ae0f61ba67028a88.png

脚本之家

你与百万开发者在一起

fccbde66c4053167ae0f61ba67028a88.png

04d4af3096e4c51139da2403de094b26.gif

源 /  web前端开发

1、使用var声明变量

如果给一个没有声明的变量赋值,默认会作为一个全局变量(即使在函数内赋值)。要尽量避免不必要的全局变量。

2、行尾使用分号

虽然JavaScript允许省略行尾的分号,但是有时不注意的省略,会导致不必要的错误。建议在可用可不用行尾分号的地方加上分号。

3、获取指定范围内的随机数

var getRandom = function(max, min) {min = arguments[1] || 0;return Math.floor(Math.random() * (max - min + 1) + min);};

上面的函数接受一个你希望的随机最大数和一个你希望的随机最小数。

4、打乱数字数组的顺序

var sortArray = array.sort(function(){  return Math.random() - 0.5;});

5、取出数组中的随机项

var ran = array[Math.floor(Math.random() * array.length)];

6、去除字符串的首尾空格

var s = string.trim();

7、类数组对象转为数组

比如:类数组对象遍历:

Array.prototype.forEach.call(argumens,function(value){})

DOM的NodeList和HTMLCollection也是类数组对象

8、获取数组中的最大值和最小值

var max = Math.max.apply(Math, array);var min = Math.min.apply(Math, array);

9、清空数组

array.length = 0;
array = [];

10、保留指定小数位

var num = num.toFixed(2);

返回字符串,保留两位小数

11、使用for-in循环来遍历对象的属性

for(var key in object) {   // object[key]}

不要用for-in来遍历数据

12、获取某月天数

function getMonthDay(date){  date = date || new Date();  if(typeof date === 'string') {      date = new Date(date);  };  date.setDate(32);  return 32 - date.getDate();}

传入date参数,可以是字符串、日期对象实例;为空表示当月天数

13、浮点数问题

0.1 + 0.2 = 0.30000000000000004 != 0.3

JavaScript的数字都遵循IEEE 754标准构建,在内部都是64位浮点小数表示

14、JSON序列化和反序列化

使用JSON.stringify()来将JavaScript对象序列化为有效的字符串。
使用JSON.parse()来将有效的字符串转换为JavaScript对象。

在AJAX传输数据时很有用

15、使用“===”替换“==”

相等运算符(==)在比较时会将操作数进行相应的类型转换,而全等运算符(===)不会进行类型转换。

16、避免使用with()

使用with()可以把变量加入到全局作用域中,因此,如果有其它的同名变量,一来容易混淆,二来值也会被覆盖。

17、不要使用eval()或函数构造器

eval()和函数构造器(Function consturctor)的开销较大,每次调用,JavaScript引擎都要将源代码转换为可执行的代码。

18、简化if语句

if (condition) {  fn();}

可替换成:

condition && fn();

19、给可能省略的参数赋默认值

function test(a, b){  a = a || '1';}

20、给数组循环中缓存length的值

如果你确定循环中数组的长度不会变化,那么你可以这样:

var length = array.length;for(var i = 0; i < length; i++) {}

可以避免在每次迭代都将会重新计算数组的大小,提高效率

21、合并数组

对于小数组,我们可以这样:

var arr1 = [1,2,3];var arr2 = [4,5,6];var arr3 = arr1.concat(arr2);  // [1,2,3,4,5,6]

不过,concat()这个函数并不适合用来合并两个大型的数组,因为其将消耗大量的内存来存储新创建的数组。在这种情况之个,可以使用Array.prototype.push.apply(arr1,arr2)来替代创建一个新数组。
这种方法不是用来创建一个新的数组,其只是将第一个第二个数组合并在一起,同时减少内存的使用:

Array.prototype.push.apply(arr1, arr2); 
console.log(arr1); // [1,2,3,4,5,6]

22 枚举对象“自身”的属性

for...in除了枚举对象“自身”的属性外,还会枚举出继承过来的属性。

var hasOwn = Object.prototype.hasOwnProperty;var obj = {name: 'tg', age: 24};for(var name in obj) {  if (hasOwn.call(obj, name)) {    console.log(name + ':' + obj[name]);  }}// name:tg// age:24

ec57d434518d00635c68acc99d9a7647.png

760b61e7bfdb4f5d2404eafc9f30f974.png

43d50aaa19601ac7f6b0176ac12efd04.png

有赞996工作制引发员工吐槽

f4bcf95d019768c7d380a4ea044cc45d.png

《搜索引擎百度已死》一夜刷屏!

843fa0959d4bddeb8106b9f1444d0d65.png

对不起,我被裁员了

71283537516fee58b013066d97e54e58.gif

● 961d2883139b90eb1f811c20cfd27ba0.gif 书榜 | 计算机书籍(1.21-1.27)销售排行榜

● 961d2883139b90eb1f811c20cfd27ba0.gif 脚本之家粉丝福利,请查看!

● 961d2883139b90eb1f811c20cfd27ba0.gif 导师不愿意带的10种学生,你可别中了!

● 2018微信数据报告来了!00后、90后最爱的表情是它们...

● 从项目的 star 数看2018年 JavaScript 生态圈

● 互联网年度薪资报告:高开低走,屯粮过冬

● 在华为干了十二年的老员工被离职了:合同到期不续签,焉知祸福

●  五款主流Linux发行版性能对比,不求最强但求稳

725da3be369fe5620978d923083af693.gif

小贴士

返回 上一级 搜索“Java 女程序员 大数据 留言送书 运维 算法 Chrome 黑客 Python JavaScript 人工智能 女朋友 MySQL 书籍 等关键词获取相关文章推荐。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值