这两年前端很火,JavaScript又是前端的必会技能,在JavaScript开发中其实有一些有意思的小技巧和方法,本文记录了一些我工作中遇到的一些技巧和方法。
当我们进行http请求时,可能需要把json转化为url参数,这时下面这段代码就派上用场了。
function json2url(json) { var arr=[]; for(var name in json){ arr.push(name+'='+json[name]); } return arr.join('&'); }这个需求在项目中也是很常见的,可以toFixed()方法
var num =3.1415926; num = num.toFixed(4); //toFixed()方法可把 Number 四舍五入为指定小数位数的数字,括号里面取值0~20(包括0和20) console.log(num); //3.1416== (或者 !=) 操作在需要的情况下自动进行了类型转换。=== (或 !==)操作不会执行任何转换。===在比较值和类型时,可以说比==更快。
[10] == 10 // 为 true [10] === 10 // 为 false '10' == 10 // 为 true '10' === 10 // 为 false [] == 0 // 为 true [] === 0 // 为 false '' == false // 为 true 但 true == "a" 为false '' === false // 为 false用于赋值 &&:从左往右依次判断,当当前值为true则继续,为false则返回此值(是返回未转换为布尔值时的原值哦) || : 从左往右依次判断,当当前值为false则继续,为true则返回此值(是返回未转换为布尔值时的原值哦)
var attr = true && 4 && "aaa"; //aaa; var attr = true && 0 && "aaa"; //0 var attr = 100 || 12; //100 var attr = "e" || "hahaha" //'e' var attr = "" || "hahaha" //'hahaha'用于条件执行语句
// 普通的if语句 if(test){ isTrue(); } // 上面的语句可以使用 '&&' 写为: ( test && isTrue() ); test = false; if(!test){ isFalse(); } // 上面的语句可以使用 '||' 写为: ( test || isFalse());用于多次判断后的赋值
var add_level = 0; if(add_step == 5){ add_level = 1; } else if(add_step == 10){ add_level = 2; } else if(add_step == 12){ add_level = 3; } else if(add_step == 15){ add_level = 4; } else { add_level = 0; } //可以写成 var add_level = (add_step==5 && 1) || (add_step==10 && 2) || (add_step==12 && 3) || (add_step==15 && 4) || 0;该方法适合一维或者多维数组。
虽然在ECMAScript5中已经实现了trim方法,它对低版本浏览器并不支持,所以有时候我们需要自己实现。
去除首尾空格
function trim(str){ return str.replace(/(^\s*)|(\s*$)/g, ""); } trim(' hello world '); //"hello world"去除所有空格
function trimAll(str){ return str.replace(/\s+/g,""); } trimAll(' he ll o wo r ld '); //"helloworld"JavaScript里面肯定还有很多技巧,以后遇到了慢慢总结。JavaScript的水很深,感觉还有好多要学的。加油!!!