code: function primitive(str) {
  	if (typeof str !== 'string')
  		return str
  	if (str === 'null')
  		return null
  	if (str === 'undefined')
  		return undefined
  	if (str === 'true')
  		return true
  	if (str === 'false')
  		return false
  	if (str === 'true')
  		return true
  	if (str === 'NaN')
  		return NaN
  	//if (str === 'Infinity')
  	//	return Number.POSITIVE_INFINITY
  	let ret
  	if (str.indexOf('.') >= 0)
  		ret = Number.parseFloat(str)
  	else
  		ret = Number.parseInt(str)
  	if (!Number.isNaN(ret))
  		return ret
  	return str
  }
docs: Converting string to javascript primitive types: Boolean, Null, Undefined, Number
  @param	{object}	str - target string convert from
  @return	{object}	The converted primitive, if possible. Otherwise the original string