如果你想确保你的JavaScript在大多数浏览器和移动设备中都可以工作,那么我从大漠等大神指导,原来可以使用f2etest,也可以使用Endtest,browserstack等

1. 使用 + 字符可以转换成数字

比如要把一个字符串数字转换成数字,你可能会这样做:

var one = ‘1’;

var two = ‘2’;

var numberOne = Number(one); //1

var numberTwo = parseInt(two); //2

我要说的这个小技巧是在John Papa那里学到的,通过 + 字符,直接实现了对变量的 数字转换。

这种方式灰常简单,但前提得是一个数字的字符串,否则就会得到NaN值。

例如下面的代码:

function convertNumber(str){

return +str;

}

convertNumber(‘1234’);

//1234

convertNumber(‘abc’);

//NaN

var one = ‘1’;

var numberOne = +one; //1

这种写法比较简单,想说为什么这样写,因为比较酷~

2 清空数组

有时候清空Array你可能会这样做

var list = [1, 2, 3, 4];

list = [ ];

但另一个方法可能会更加的高效一些:

你可以这样写:

var list = [1,2,3,4];

list.length = 0;

这样做是因为:

  • list = [ ] ,会将一个新数组的引用分配给变量,而其他任何引用都不受影响。这意味着对前一个数组的内容的引用仍然保留在内存中,导致内存泄漏。

  • list.length = 0, 则直接就删除了Array中的内容

3 合并数组

在实际操作中,经常要实现数组的合并,尤其是有时候Component化后,会需要定义许多的Module啊,Component等等,比如Angular, 可能由于项目比较大,而让不同的app声明了不同的数组。那此时可以这样做,使用Array.concat() 或者 [ ].concat()

比如

ComponentModule= [‘call-back’,’router’,’nav’]

PageModule = [‘home’,’payment’]

AppModule = [ ]. concat(ComponentModule,PageModule)

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

var array1 = [1,2,3];

var array2 = [4,5,6];

console.log(array1.push.apply(array1, array2)); // [1,2,3,4,5,6];

4 把Arguments转换成数组

这用到了ES6的特性,把Arguments的数值spread出去

function toArray(…args){

console.log(args);

}

toArray(1,2,3); //[1,2,3]

5 复制数组

同样也使用了ES6的特性

var arr=[1,2,3];

//var arr2=Array.from(arr);

var arr2=[...arr];

arr.pop();

console.log(arr); //[1,2]

console.log(arr2); //[1,2,3]

6 数字转字符串

假设有不确定的变数类型,需要转换成字符串,如果直接使用可能会有错误

var one = 1;

var two = 2;

var three = '3';

var result = one + two + three;

// 会得到 "33" 而非 "123"

可以使用 concat 来链接字符串,而避免了错误

var one = 1;

var two = 2;

var three = '3';

var result = ''.concat(one, two, three); // 得到 "123"

7在Array中找到最大值和最小值

有时候,程序员就是有尿性,非要找到最大值和最小值,内建函数有 Math.max() 和 Math.min() 可以找到最大和最小值

Math.max(1, 2, 3, 4); // 4

Math.min(1, 2, 3, 4); // 1

如果要在Array中找最大最小值可以这样用

var numbers = [1, 2, 3, 4];

Math.max.apply(null, numbers) // 4

Math.min.apply(null, numbers) // 1

通过ES6 的Spread来完成

var numbers = [1, 2, 3, 4];

Math.max(...numbers) // 4

Math.min(...numbers) // 1

8 设置默认值

也许这个小技巧,许多小伙伴在学javascript一段时间就都已经掌握了了。

如果你想必须给一个变量赋默认值,可以这样简单写

var  a;

console.log(a) // undefined

a = a || ‘default value’

console.log(a)  // default value

a = a || ‘new value’

console.log(a)   // default value

8个Javascript小技巧,让你写的代码有腔调的更多相关文章

  1. 12个非常实用的JavaScript小技巧

    在这篇文章中将给大家分享12个有关于JavaScript的小技巧.这些小技巧可能在你的实际工作中或许能帮助你解决一些问题. 使用!!操作符转换布尔值 有时候我们需要对一个变量查检其是否存在或者检查值是 ...

  2. 11个不常被提及的JavaScript小技巧

    这次我们主要来分享11个在日常教程中不常被提及的JavaScript小技巧,他们往往在我们的日常工作中经常出现,但是我们又很容易忽略. 1.过滤唯一值 Set类型是在 ES6中新增的,它类似于数组,但 ...

  3. [转]11个教程中不常被提及的JavaScript小技巧

    原文地址: https://www.cnblogs.com/ld1024/p/10723827.html 这次我们主要来分享11个在日常教程中不常被提及的JavaScript小技巧,他们往往在我们的日 ...

  4. 11个教程中不常被提及的JavaScript小技巧

    这次我们主要来分享11个在日常教程中不常被提及的JavaScript小技巧,他们往往在我们的日常工作中经常出现,但是我们又很容易忽略. 1.过滤唯一值 Set类型是在ES6中新增的,它类似于数组,但是 ...

  5. 12个十分实用的JavaScript小技巧

    12个非常实用的JavaScript小技巧 在这篇文章中将给大家分享12个有关于JavaScript的小技巧.这些小技巧可能在你的实际工作中或许能帮助你解决一些问题. 使用!!操作符转换布尔值 有时候 ...

  6. 常用的一些javascript小技巧

    (转载)常用的一些javascript小技巧: http://bbs.blueidea.com/thread-2201069-1-1.html

  7. 12个非常有用的JavaScript小技巧

    在这篇文章中将给大家分享12个有关于JavaScript的小技巧.这些小技巧可能在你的实际工作中或许能帮助你解决一些问题. 使用!!操作符转换布尔值 有时候我们需要对一个变量查检其是否存在或者检查值是 ...

  8. 8个Javascript小技巧

    1. 使用 + 字符可以转换成数字 比如要把一个字符串数字转换成数字,你可能会这样做: var one = '1'; var two = '2'; var numberOne = Number(one ...

  9. JavaScript小技巧整理篇(非常全)

    能够为大家提供这些简短而实用的JavaScript技巧来提高大家编程能力,这对于我来说是件很开心的事.每天仅花上不到2分钟的时间中,你将可 以读遍JavaScript这门可怕的语言所呈现给我们的特性: ...

随机推荐

  1. Problem_A

    Problem_A Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Descripti ...

  2. mysql时间相减的问题

    MySQL中时间不能直接相减,如果日.分.时不同,相减结果是错误的 mysql> select t1,t2,t2-t1 from mytest;   +--------------------- ...

  3. [note]CRT&exCRT

    中国剩余定理 别人的blog 假设现在有关于x的同余方程组(p1,p2均为质数) \(x=a_1\pmod {p_1}\) \(x=a_2\pmod {p_2}\) 可以转化成如下形式 \(x=a_1 ...

  4. python3 计算文件夹中所有py文件里面代码行数,注释行数,空行数

    import os,re #代码所在位置 FILE_PATH = './' def analyze_code(codefilesource): ''' 打开一个py文件统计其中的代码行数,包括空格和注 ...

  5. vim下的ctags和taglist等的使用和配置

    1.ctags (1)到 http://prdownloads.sourceforge.net/ctags/ctags-5.6.tar.gz         下载ctags源码ctags-5.6.ta ...

  6. MySQL常用代码

    create database 数据库名 create table CeShi1( Uid varchar(50) primary key, Pwd varchar(50), Name varchar ...

  7. 每天一个Linux命令(22)find命令_命令详解

        find命令的一些常用参数的常用实例和用时的注意事项.     实例:     (1)-name参数: 1)[sunjimeng@localhost home]$ find ~ -name & ...

  8. Data Structure Array: Given an array of of size n and a number k, find all elements that appear more than n/k times

    http://www.geeksforgeeks.org/given-an-array-of-of-size-n-finds-all-the-elements-that-appear-more-tha ...

  9. 模块化(CommonJs、AMD、CMD、UMD)发展历史与优缺点

    全文主要整理自摘自<Webpack中文指南>(好文,建议直接去看,以下仅对该系列文章中的<历史发展>篇幅进行备份——也整理了点其他内容) 模块化 模块化是老生常谈了,这里不做阐 ...

  10. [原创]java WEB学习笔记11:HttpServlet(HttpServletRequest HttpServletRsponse) 以及关于 Servlet 小结

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...