js基础及json转换

JavaScript 是一种弱类型或者说动态语言。这意味着你不用提前声明变量的类型,在程序运行过程中,类型会被自动确定。

此外,最新的 ECMAScript 标准定义了7中数据类型:

6种 原始类型: Boolean, Null, Undefined, Number, Stirng, Symbol

一种复杂类型(引用类型)对象: Object.

JavaScript 一切皆对象(除了6中原始类型)

在 JS 中,所有除 Object 以外的类型都是不可变的。比如,JS 中字符串是不可变的,任何对字符串的操作一定返回了一个新字符串,原始字符串并没有被改变。

跟java类似分为值传递和引用传递。


<script type="text/javascript">
var people={age:15,name:'aaa'};
var people1=people;
people1.age=20;
console.log(people.age);//20
</script>

上述例子中people和people1指向同一引用地址。
如果传值时不想改变引用对象的值,可以使用深度克隆方法,也可以使用jQuery.extend([deep], target, object1, [objectN])


 

<script type="text/javascript">
var people={age:15,name:'aaa'};
var people1={};
$.extend(people1,people);
people1.age=20;
console.log(people.age);//15
</script>

js对象比较

<div data-test="{username: 'admin', password: 123456}"></div>

var test1 = {username: 'admin', password: 123456};

var test2 = {username: 'admin', password: 123456};
var test3=$("div").data('info');
console.log(test1 == test2);//引用比较false

console.log(JSON.stringify(test1) == JSON.stringify(test2));//true值比较

console.log(test2);
console.log(test3);


注意这里取得的test3并非是对象。


console.log(test3.username);//undefined

console.log(test3);
test3 = eval('(' +test3 + ')');//将test3转变为obj
console.log(test3);


console.log(JSON.stringify(test1) == JSON.stringify(test3));
console.log(test3.username);


 


 暂时写到这

 

posted @ 2018-12-26 10:10  茉雨而眠  阅读(155)  评论(0编辑  收藏  举报