JS中一些比较有用的写法

一、正则

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

4. 判断大于等于零正整数

/^[0-9]+$/

二、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无效

扫描二维码关注公众号,回复: 16527875 查看本文章
var a = ["a", "b", "c"];
for(item of a){
    
    
    console.log(item); // 这是值
}

猜你喜欢

转载自blog.csdn.net/jl15988/article/details/121452391