U E D R , A S I H C RSS

Java Script/2011년스터디/JSON-js분석



    • stringify return fake root
    • str함 object, object array .

//  
//  partial  
if (Object.prototype.toString.apply(value) === '[object Array]') {
	length = value.length;
	for (i = 0; i < length; i += 1) {
		partial[i] = str(i, value) || 'null';		//  
	}
	v = partial.length === 0 ? '[]' : gap ?
		'[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' :
		'[' + partial.join(',') + ']';
	gap = mind;
	return v;
}
  • strict ()

"use strict"

    • cx ? cx escapable ?
    • toJSON key ( )

if (typeof Date.prototype.toJSON !== 'function') {

        Date.prototype.toJSON = function (key) {

            return isFinite(this.valueOf()) ?
                this.getUTCFullYear()     + '-' +
                f(this.getUTCMonth() + 1) + '-' +
                f(this.getUTCDate())      + 'T' +
                f(this.getUTCHours())     + ':' +
                f(this.getUTCMinutes())   + ':' +
                f(this.getUTCSeconds())   + 'Z' : null;
        };

	// String 
        String.prototype.toJSON      =
            Number.prototype.toJSON  =
            Boolean.prototype.toJSON = function (key) {   //  key !! 
                return this.valueOf();
            };
    }
  • ?: ?

//  ?
// 1.  partial.length === 0 ? '{}' : gap, gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' : '{' + partial.join(',') + '}'
// 2.  gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' : '{' + partial.join(',') + '}', partial.length === 0 ? '{}' : gap
v = partial.length === 0 ? '{}' : gap ?
                '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' :
                '{' + partial.join(',') + '}';
  • parse함 . ..
  • riviver


    • perl "use strict" ( )
javastript 한 perl
  • '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
// 환하 : .charCodeAt toString(16) 16
// .slice(-4) 4
  • 화(Serialize, Serialization) 형태 환하
  • 화(Deserialize, Deserialization)


    • '\u' ? '\x' ?
    • String.prototype.toJSON =
      Number.prototype.toJSON =
      Boolean.prototype.toJSON = function (key) {
      return this.valueOf();
    • }; ;;;
    • str function 'string', 'number', 'boolean', 'null' string 환한. 'object' NULL ??


    • line 177 : Date.prototype.toJSON = function (key) key ?
    • line 195 : cx ?
    • line 237 : value holderkey ?

    • Javascript strict mode
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:30
Processing time 0.0620 sec