js判断是不是数组和获取对象的键值对

1、判断是否为数组

通过constructor来判断,当然也可以通过原型来判断

    var arr = [],
    res = arr.constructor === Array ? '是数组' : '不是数组';
    console.log(res);//是数组

2、获取对象的键值对

今天碰见一个文件提交失败时,后台返回的错误提示信息。需要对键值对进行拼接,反馈给用户。然后来做这么一个笔记,加深一下记忆。
返回的错误信息是这样的:


error.jpg

这时候就需要拿到键值对进行拼接了,用for循环来实现就很简单了:

    var obj = {
        'name': 'liuhuan',
        'age': 18
    },
    str = '';
    for (var key in obj) {
        str += key + ':' + obj[key] + '\n';
    }
    console.log(str);
    //name:liuhuan
    //age:18

值得注意的是对象的键可以不用引号直接写的,如:

    var obj = {
        'name': 'liuhuan',
        'age': 18,
        sex: 'man'
    },
    str = '';

这样写是没问题的,但是值不加引号是会报错的。通过中括号来拿值时还是需要加上引号obj['sex'],关于通过点拿值和中括号拿值转几点总结:
中括号运算符总是能代替点运算符。但点运算符却不一定能全部代替中括号运算符。

中括号运算符可以用字符串变量的内容作为属性名。点运算符不能。

中括号运算符可以用纯数字为属性名。点运算符不能。

中括号运算符可以用js的关键字和保留字作为属性名。点运算符不能。

以上几点是别人的总结,我目前自己还没用过中括号去拿值的情况。。。

你可能感兴趣的:(js判断是不是数组和获取对象的键值对)