值类型 和 引用类型
2016-02-29 16:39
274 查看
实例:
上述两处输出结果完全一样。改变settlementDetail,同时改变了 data.result.settlementDetail。因为两个对象都是引用类型,指向同一个地址。
JavaScript值类型和引用类型有哪些
(1)值类型:数值、布尔值、null、undefined。
(2)引用类型:对象、数组、函数。
如何理解值类型和引用类型及举例
我们可以用“连锁店”和“连锁店钥匙”来理解,不知道以下比喻合不合适,^-^。
(1)值类型理解:变量的交换等于在一个新的地方按照连锁店的规范标准(统一店面理解为相同的变量内容)新开一个分店,这样新开的店与其它旧店互不相关、各自运营。
【值类型例子】
复制代码 代码如下:
function chainStore()
{
var store1='Nike China';
var store2=store1;
store1='Nike U.S.A.';
alert(store2); //Nike China
}
chainStore();
//把一个值类型(也可以叫基本类型)store2传递给另一个变量(赋值)时,其实是分配了一块新的内存空间,因此改变store1的值对store2没有任何影响,因为它不像引用类型,变量的交换其实是交换了指像同一个内容的地址。
(2)引用类型理解:变量的交换等于把现有一间店的钥匙(变量引用地址)复制一把给了另外一个老板,此时两个老板同时管理一间店,两个老板的行为都有可能对一间店的运营造成影响。
【引用类型例子】
复制代码 代码如下:
function chainStore()
{
var store1=['Nike China'];
var store2=store1;
alert(store2[0]); //Nike China
store1[0]='Nike U.S.A.';
alert(store2[0]); //Nike U.S.A.
}
chainStore();
//在上面的代码中,store2只进行了一次赋值,理论上它的值已定,但后面通过改写store1的值,发现store2的值也发生了改变,这正是引用类型的特征,也是我们要注意的地方。
// 处理价格,原始价格为分 if (data.result.settlementDetail) { var settlementDetail = data.result.settlementDetail; $.each(settlementDetail, function (index, item) { settlementDetail[index] = item / 100; }); console.log(settlementDetail) console.log(data.result.settlementDetail) }
上述两处输出结果完全一样。改变settlementDetail,同时改变了 data.result.settlementDetail。因为两个对象都是引用类型,指向同一个地址。
JavaScript值类型和引用类型有哪些
(1)值类型:数值、布尔值、null、undefined。
(2)引用类型:对象、数组、函数。
如何理解值类型和引用类型及举例
我们可以用“连锁店”和“连锁店钥匙”来理解,不知道以下比喻合不合适,^-^。
(1)值类型理解:变量的交换等于在一个新的地方按照连锁店的规范标准(统一店面理解为相同的变量内容)新开一个分店,这样新开的店与其它旧店互不相关、各自运营。
【值类型例子】
复制代码 代码如下:
function chainStore()
{
var store1='Nike China';
var store2=store1;
store1='Nike U.S.A.';
alert(store2); //Nike China
}
chainStore();
//把一个值类型(也可以叫基本类型)store2传递给另一个变量(赋值)时,其实是分配了一块新的内存空间,因此改变store1的值对store2没有任何影响,因为它不像引用类型,变量的交换其实是交换了指像同一个内容的地址。
(2)引用类型理解:变量的交换等于把现有一间店的钥匙(变量引用地址)复制一把给了另外一个老板,此时两个老板同时管理一间店,两个老板的行为都有可能对一间店的运营造成影响。
【引用类型例子】
复制代码 代码如下:
function chainStore()
{
var store1=['Nike China'];
var store2=store1;
alert(store2[0]); //Nike China
store1[0]='Nike U.S.A.';
alert(store2[0]); //Nike U.S.A.
}
chainStore();
//在上面的代码中,store2只进行了一次赋值,理论上它的值已定,但后面通过改写store1的值,发现store2的值也发生了改变,这正是引用类型的特征,也是我们要注意的地方。
相关文章推荐
- activemq 消息队列服务器
- c++头文件:stdio.h ,cstdio ,iostream ,bits/stdc++.h
- 反射——不同对象属性映射赋值
- 10g 及之后导出/导入工具
- NSString、NSMutableString基本用法
- cxf 调用webservice
- java基础知识---每天进步一点
- shell脚本实现带参数
- Android ListView异步加载图片乱序问题,原因分析及解决方案(一)
- RadioButton复选框
- Android 自定义View (一)
- JAVA中值类型和引用类型的不同?
- LeetCode: Convert Sorted List to Binary Search Tree
- docker
- 使用Git上传代码到GitHub详细的不能再详细教程
- Android的Launcher启动器中添加快捷方式及小部件实例
- singleTask和startActivityResult
- 盒模型&&外边距塌陷
- iOS下的2D仿射变换机制CGAffineTransform相关
- 仿微信图片选择器