相关内容:json详细用法、js语法、unicode、正则
 
json特点--最简单、最小巧的经典js库。
 
json作者:道克拉斯.克劳福德(Douglas Crockford)--js大牛
出版过一本书《js语言精粹》
 
“ajax"中,a - 异步,j - js,(a - and), x - xml;
xml -> json(异步没变、js没变)
--说明json是一个可以取代xml的东西
 
json作为"格式",规定了:
什么样的字符串可以转换为js对象。如何转换?-- JSON.parse()
一个对象将转换成什么样的字符串。如何转换?--JSON.stringify()
 
var j = { a:10, b:"hello", c:[true,new String("abc")], d:{ x:1, y:2 } };
> typeOf(j)
< "object"
> JSON.stringify(j)
< "{"a":10,"b":"hello","c":[true,"abc"],"d":{"x":1,"y":2}}"
> var a = JSON.stringify(j)
a
< "{"a":10,"b":"hello","c":[true,"abc"],"d":{"x":1,"y":2}}"
> JSON.parse(a)
< Object {...}
 
cpu只能识别2进制
世界上所有的文字,都统一编码,我们叫编码集,就是unicode
unicode有个编码集表大家有兴趣可以下载下来看看
 
gb2312 编码集只针对汉语
 
源码结构:
一开始是介绍,链接的介绍,接口的介绍
 
第一行代码:
if ( typeof JSON !== ' object ' ) {
JSON = {}; //window.JSON = {}; JSON.parse JSON.stringify
}
判断如果JSON不是一个对象就把一个空对象赋给JSON
 
第二块代码:
(function () ... ());//自动执行的匿名函数,保证里面的变量是局部变量
为什么要这么干呢?是因为js没有块级作用域
var s = JSON.stringify(j,function(key,value){
if(key === 'a'){
return value+5;
}else if (key === 'x'){
return value + 10
} else{
return value;
}
},2);
 

json2.js源码解读记录的更多相关文章

  1. js便签笔记(10) - 分享:json2.js源码解读笔记

    1. 如何理解“json” 首先应该意识到,json是一种数据转换格式,既然是个“格式”,就是个抽象的东西.它不是js对象,也不是字符串,它只是一种格式,一种规定而已. 这个格式规定了如何将js对象转 ...

  2. json2.js 源码解读

    这一部分是对Date String Number Boolean扩展toString方法,Date的toString是返回UTC格式的字符串,而后面几个是返回原始值. function f(n) {/ ...

  3. js便签笔记(10) - 分享:json.js源码解读笔记

    1. 如何理解“json” 首先应该意识到,json是一种数据转换格式,既然是个“格式”,就是个抽象的东西.它不是js对象,也不是字符串,它只是一种格式,一种规定而已. 这个格式规定了如何将js对象转 ...

  4. fastclick.js源码解读分析

    阅读优秀的js插件和库源码,可以加深我们对web开发的理解和提高js能力,本人能力有限,只能粗略读懂一些小型插件,这里带来对fastclick源码的解读,望各位大神不吝指教~! fastclick诞生 ...

  5. prototype.js 源码解读(02)

    如果你想研究一些比较大型的js框架的源码的话,本人建议你从其最初的版本开始研读,因为最初的版本东西少,易于研究,而后的版本基本都是在其基础上不断扩充罢了,所以,接下来我不准备完全解读prototype ...

  6. prototype.js 源码解读(01)

    prototype.js是一个设计的非常优雅且很有实用价值的js基础类库,其源码非常值得研究.研究它的源码不仅能提升个人水平,而且对你打下坚实的js基础也很有帮助.因本人技术水平有限,该解读仅供参考. ...

  7. require.js 源码解读——配置默认上下文

    首先,我们先来简单说一下,require.js的原理: 1.载入模块
 2.通过模块名解析出模块信息,以及计算出URL
 3.通过创建SCRIPT的形式把模块加载到页面中.
 4.判断被加载的脚本,如 ...

  8. 亚马逊左侧菜单延迟z三角 jquery插件jquery.menu-aim.js源码解读

    关于亚马逊的左侧菜单延迟,之前一直不知道它的实现原理.梦神提到了z三角,我也不知道这是什么东西.13号那天很有空,等领导们签字完我就可以走了.下午的时候,找到了一篇博客:http://jayuh.co ...

  9. zepto js 源码 解读

    /* Zepto v1.0-1-ga3cab6c - polyfill zepto detect event ajax form fx - zeptojs.com/license */ ;(funct ...

随机推荐

  1. JS 点击复制Copy (share)

    分享自:http://www.cnblogs.com/athens/archive/2013/01/16/2862981.html 1.实现点击按钮,复制文本框中的的内容 1 <script t ...

  2. bootstrap-7

    基础表单: 表单中常见的元素主要有:文本输入框.下拉选择框.单选按钮.复选按钮.文本框和按钮等. bootstrap并未对齐做太多的的定制化效果设计,仅仅对表单内的fieldset.legend.la ...

  3. linux与windows的不同

    linux 严格区分大小写:linux 所有内容都以文件形式保存,包括用户和硬件:linux 不以文件后缀名来区分文件类型:但有一些便于管理员区分文件类型的约定俗称的后缀:windows下的程序不能直 ...

  4. FlashFXP 破解代码

    FlashFXP RealKEY: ------------- 将以下内容COPY到软件里面的注册框即可 ------------- FLASHFXPwQAOlhkgwQAAAAC6W5MNJwTns ...

  5. 为 C# 代码生成 API 文档(译)

    原文地址:http://broadcast.oreilly.com/2010/09/build-html-documentation-for-y.html#comments Sandcastle 功能 ...

  6. SSD(Single Shot MultiBox Detector)的安装配置和运行

    下文图文介绍转自watersink的博文SSD(Single Shot MultiBox Detector)不得不说的那些事. 该方法出自2016年的一篇ECCV的oral paper,SSD: Si ...

  7. 【总结】我所整理的各种CSS居中

    在网上看了很多文章,自己也总结了一下,虽说是自己写的,但是还是要列出我参考过的那些文章的地址,感谢你们的分享!  http://blog.gejiawen.com/2015/03/13/css-lay ...

  8. (Design Pattern) Singleton.

    Role: The purpose of the Singleton pattern is to ensure that there is only one instance of a class, ...

  9. laravel 指定 版本安装

    composer create-project laravel/laravel=5.0.* --prefer-dist composer create-project laravel/laravel= ...

  10. android studio新项目时提示:Plugin is too old, please update to a more recent version

    今天想写一个程序来测试一下android studo代码,但是创建好项目后,提示: Error:(1, 0) Plugin is too old, please update to a more re ...