dabocaiqq
2018-05-26 04:44
采纳率: 66.6%
浏览 824

问一个javascript的基本问题

请问如何将undefined转换为object对象,或者怎么在json里面使用呢?还有===怎么判断undefined?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

10条回答 默认 最新

  • 已采纳

    在调用对象相关方法前要判断是否为null,undefined,是的话就不能调用,要不会报错
    var s=null;
    if(s)s=s.substring(2);///这里不判断s直接调用会报错,后续js代码都不会运行

    打赏 评论
  • qq_31256487 2018-05-26 04:51

    undefined 不能直接转object,一定要个使用object的话 建议转换的时候判断一下,为undefined时创建一个新的object

    var test = undefined;
    判断undefined

    if(undefined == test || typeof(test) == “undefined”) return true;

    打赏 评论
  • 码砖小将疯子凯 2018-05-26 05:26

    定义一个集合,然后直接用JSON.stringify();就可以封装了,如果集合中的元素没赋值,就是undefined。

    判断的话,使用if(data[0].属性名 === undefined)可以判断

    打赏 评论
  • lenient315 2018-05-26 06:14

    首先,undefined是在仅申明变量,但未给变量赋值前的变量的值。
    var obj; // console.log(obj) 输出undefined
    这时,给变量obj赋值一个对象,其中name的值是一个string,age的值是undefined
    obj = {"name": "lenient", age: undefined};
    如果用JSON.stringify(obj), 这时输出的是 {"name":"lenient"}, 值为undefined的age被忽略了。
    如果想判断obj这个对象的哪个key的值是undefined, 需要遍历对象的每一个属性来判断

     var keys = Object.keys(obj);
    for (let i = 0; i < keys.length; i++) {
      let key = keys[i];
      if (obj[key] === undefined) {
        console.log(key, '的值是undefined');
      }
    }
    
    打赏 评论
  • lin_shuimu 2018-05-26 06:34

    请问如何将undefined转换为object对象,或者怎么在json里面使用呢?还有===怎么判断undefined?
    1. 没有办法转成对象。 undefined 是一种值, 代表一个变量声明了,但是没有定义。比如:var a; 那么变量a的值就是 undefined。
    2. 可以用typeof进行判断。 比如var a;typeof a === ;undefined'; 也可以直接判断:var a; a === undefined; // true

    打赏 评论
  • 默默悟问 2018-05-26 06:50
    > obj = {"name": "lenient", age: undefined};
    { name: 'lenient', age: undefined }
    > obj['a']
    undefined
    > typeof(obj)
    'object'
    > typeof(undefined)
    'undefined'
    > typeof(33)
    'number'
    

    可以认为undefined就是一种特殊的对象,类似number。但是在对象里做序列化不会显式转化,因为也没必要,在反序列化后得到的对象只要引用本身就是undefined,就如上面的obj['a']

    > obj1 = JSON.parse(JSON.stringify(obj));
    { name: 'lenient' }
    > obj1
    { name: 'lenient' }
    > obj1['a']
    undefined
    > obj1['age']
    undefined
    
    打赏 评论
  • wxl_gf 2018-05-26 06:51

    if(undefined == test || typeof(test) == “undefined”) return true;

    打赏 评论
  • hookdook 2018-05-26 07:11

    for(key in arr) {
    if(arr[key] === undefined) //判断undefined
    arr[key] = null; //转成null对象
    }

    打赏 评论
  • helloworld123 2018-05-26 07:50

    JavaScript里面 0, false, 空字符串,undefined,null 都是false
    只需要 if (!test) 就行了。

    打赏 评论
  • 默默悟问 2018-05-26 08:52

    来点权威的:

    The global undefined property represents the primitive value undefined. It is one of JavaScript's primitive types.
    
    Property attributes of undefined
    Writable    no
    Enumerable  no
    Configurable    no
    

    ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined
    也可以参考ECMAScript
    ref: https://tc39.github.io/ecma262/

    打赏 评论

相关推荐 更多相似问题