正则
1. 删除字符串末尾0
var str = "0043003300";
str.replace(/(0+)$/g,"0"); //删除一个0,把+去掉
//结果 00430033
2. 删除字符串头部0
var str = "0043003300";
str.replace(/\b(0+)/g,""); //删除一个0,把+去掉
//结果 43003300
// \b是退格符
3. 删除字符串所有0
var str = "0043003300";
str.replace(/(0+)?/g,"");
//或
str.replace(/0/g,"");
//结果 4333
Object
1. toString.call()
在JS使用typeof或是instanceof来判断类型是非常有局限性的,因为它不能区别数组和对象
其实数组也属于对象,所以我们可以借助Object原型来判断类型
使用toString.call()
toString.call([2]); //[Object Array]
toString.call(null); //[Object Null]
...
其实质上是
Object.prototype.toString.call([2]);
所以我们可以写一个方法来判断数据类型
function isType(type){
return function(obj) {
return {}.toString.call(obj) == "[object " + type + "]";
}
}
isType("Array")([2]); //true
提高优雅性
在js中,对于if条件的多判断会显得很长,降低代码美观性,但是很多方法可以提高代码优雅性
1. if或条件使用includes()
if(x === "a" || x === "b"){}
可以写成
if(['a', 'b'].includes(x)){}
2. if(boolean) else{}使用三目运算符
var b = true;
var s;
if(b){
s = "1";
}else{
s = "2";
}
可以写成
var b = true;
var s = b ? "1" : "2";
3. if判断为空赋值
var a = "1";
var b;
if(a === null || a === undefined){
b = "";
}else{
b = a;
}
可以写成
var a = "1";
var b = a || "";
4. 迭代
对于数组,json等对象往往需要对其元素进行遍历,一般为获取长度后for循环,但可以写成以下方式
var a = ["a", "b", "c"];
for(item in a){
console.log(item); // 这是下标/键值
console.log(a[item]); // 这是值
}
如果只获取值的话还有一种方法,但是这种方法只对Array,Map,Set,String等有用,对json无效
var a = ["a", "b", "c"];
for(item of a){
console.log(item); // 这是值
}
持续更新中…