String conversion to undefined/null/number/boolean

后端 未结 3 2079
梦毁少年i
梦毁少年i 2021-01-02 11:23

Do you know any better and faster way to convert a string to the type it represents?

I\'ve always been using this function:

var convertType = functio         


        
3条回答
  •  忘掉有多难
    2021-01-02 12:12

    How about:

    var convertType = function (value){
      var values = {undefined: undefined, null: null, true: true, false: false}
         ,isNumber = !isNaN(+(value));
      return isNumber && +(value) || !(value in values) && value || values[value];
    };
    convertType('null');      //=> null
    convertType('something'); //=> "something"
    convertType('57.321');    //=> 57.321
    convertType('undefined'); //=> undefined
    

    This seems faster @ jsPerf

    var convertType = function (value){
        var v = Number (value);
        return !isNaN(v) ? v : 
             value === "undefined" ? undefined
           : value === "null" ? null
           : value === "true" ? true
           : value === "false" ? false
           : value
     }
    

提交回复
热议问题