探究类数组与json[原创]
类数组:
类似数组,但不是数组;这意味着功能更加强大,可以代替数组与对象;
在数组内添加几个属性;
var obj = { //对象 1: "a", 2: "b", 3: "c", } var analogyArr = { //类数组--》属性要为数字;最好加上push,但是一定要有length属性; "0": "a", "1": "b", "2": "c", "length":3, "push":Array.prototype.push,//将一个或多个元素添加到数组的末尾,并返回数组的长度; "splice":Array.prototype.splice//通过删除或替换现有元素 } var arr = ["a","b","c"];//对象
上述代码在控制台可以访问到obj.length,也可以使用push与splice;在控制台打印后:
当然最关键的是有没有push的方法,要不然类数组也没什么用处;
在网上找到了一个有趣的类数组题,是16年阿里巴巴出的题目;
var setArr = { "2": "a", "3": "b", "length":2, "push" : Array.prototype.push, } setArr.push("c"); setArr.push("d"); //问最后这个数组长什么样子
在控制台打印的最终效果;
为什么会是这样,这就要探究到push的方法上去了
Array.prototype.push = function (target) { this[this.length] = target; this.length ++; } // this.length = 2; // this[2] = "c"; // this.length ++ = 3;
以上即是我对类数组的近期学习的总结;
json:
json是一种传输数据的格式;以对象为样板,本质上就是对象,但用途有区别,对象就是本地用的,但是json是用来传输的
JSON.parse()//将后台传值进行转化成 ==>对象 JSON.stringfiy(); //将前台传值-后台内容进行转化成 ==>“object{}” 使用方法: var obj = { 1: "a", 2: "b", 3: "b", } var str= JSON.stringify(obj);//将内容进行转化成给后台传值。-->"object{}" console.log(str) // 浏览器打印出 : "{"1":"a","2":"b","3":"b"}"
然后试下JSON.parse(str);将str转化成了 {1: "a",2: "b",3: "b",}
以上即是我对json格式近期学习的总结;
希望与大家共勉。