JavaScript中的变量类型

原始值: 就是简单的数据
引用值:多个值构成的对象

// 原始值:保存的是具体的值
let a = 2;
let a1 = true;
// 在js中字符串是原始值不是引用值
let a2 = 'haha';

// 引用值:保存的是一个地址值
let p = new Object();

动态属性:
引用值是可以动态添加属性的,原始值不可以

let person = new Object();
person.name = '张三';
console.log(person.name); // 张三

原始值也可以这么写不报错但是不生效

let name = '李四';
name.age = 25;
console.log(name.age); // undfined

参数传递:
ECMAScript规定:所有函数的参数都是值传递
       在函数执行的时候函数外面的值会被复制到函数内部的参数中。就跟变量赋值是一样的:如果变量是原始值,则会生成跟原始值一样的副本;如果是引用值,则会复制引用值的指针也就是地址值。
        值传递的时候,值就会被复制到一个局部变量。

function add(num) {
	num += 10;
	return num
}
let count = 20;
let res = add(count);
console.log(res); // 30
console.log(count); // 20

         如果函数参数是引用值就有变化了

function setName(obj) {
	obj.name = 'zhangsan';
	return obj;
}
let p = new Object();
let res = setName(p);
console.log(p.name); // zhangsan
console.log(res); // {name: 张三}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值