<script type="text/javascript">
// 基本类型的值传递给最近的变量
var num1=55;
var num2=66;
function f1(num,num1) {
num=100;
num1=100;
num2=100;
console.log(num);//100
console.log(num1);//100
console.log(num2);//100
}
f1(num1,num2);
console.log(num1);//55
console.log(num2);//100
console.log(num);//报错,未定义
</script>
<script type="text/javascript">
function Person(name,age,salary) {
this.name=name;
this.age=age;
this.salary=salary;
}
function f1(person) {
person.name="1s";
person=new Person("aa",28,30000);
}
var p=new Person("2s",18,10000);
console.log(p.name);//2s
f1(p);
console.log(p.name);//1s
// 复杂类型的传递传递的是存储地址,即使在函数的局部执行环境中执行,更改的也是同一个地址中的数据。
// 但是新创建的对象,就和原来不是同一个地址了。
</script>
<script type="text/javascript">
var a=1;
function fn1(a){
console.log(a); //1
var a = 2;//局部
}
fn1(a);
console.log(a) //1
</script>
<script type="text/javascript">
var a=1;
function fn1(a){
console.log(a); //1
a = 2;//局部
}
fn1(a);
console.log(a); //1
</script>
<script type="text/javascript">
var a=1;
function fn1(){
console.log(a); //1
a = 2;//隐式全局
}
fn1(a);
console.log(a); //2
</script>
js预解析和数据类型传递的练习
最新推荐文章于 2021-08-13 21:18:29 发布