Js基础进阶(一)—— 前言,变量

你好,朋友。
欢迎进入JS基础引导——变量

前言

经过了前段时间的JS基础引导,算是让完完全全的小白有了比较不夯实的基础。后续配合学校课程讲到的时候进行再次巩固,便于更好的理解。接下来涉及到的知识,个人认为是比前段时间更高级一点点点点的基础知识。写在这里,一方面是给各位一个引导,另一方面也是为了自省。各位,共勉。

变量

基本类型和引用类型的值

js变量可能包换两种不同类型的值:基本类型值和引用类型值。
基本类型值:简单的数据段,比如前面提到的五个基本类型。
引用类型值:可能由多个值构成的对象,比如唯一的复杂类型——Object对象。

复制变量值

在复制变量的时候,基本类型和引用类型是有很大区别的。
对于基本类型来说:他的复制是重新创建一个对象,然后让这个变量的值和被复制的值相同。
对于引用类型来说:他的复制是创建一个指针类型的副本。

通俗点来说:
假设被复制的变量是一个冰箱a,那么基本类型的复制就是又买了一个一模一样的冰箱b引用类型的复制就是给冰箱a新取了一个名字冰箱c。看起来冰箱a和冰箱c不一样,实际上这两个代表同一个冰箱a。使用当你往冰箱c放东西的话,从冰箱a也可以取出来。

传递参数

在传递参数的时候,会涉及到一个名词叫做局部变量。
局部变量:即命名参数,或者说,就是你定义方法时先括号里面的arg1。
局部变量的作用效果和存在时间都只在方法内有效,当运行完方法之后,立刻被销毁。

对于基本类型:在经过方法的修改之后,不会对原变量的数值产生任何问题。
如下:

	 function addTen(num){
	 	num += 10;
	 	return num;	
	 }

	var count = 20;
	var result = addTen(count);	
	alert(count);		//20,没有变化。
	alert(result);		// 30
	
	可以看出,count不会进行任何改变,而返回值需要你定义另一个变量(如上面的result)来接收。

对于引用变量:经过方法的修改之后,会对原变量的数值产生影响。(上面的冰箱理论)

如下:

	 function setName(obj){
		obj.name = "Nicholas";
	}
	var person = new Object();
	setName(person);
	alert(person.name);	//"Nicholas"
	
	可以看出,当进行修改之后,原变量就会进行变动,因为obj实际上是一个指针。
	对于指针来说,他指向的时同一个对象。所以修改了就是修改了。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值