<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 发布
本文深入探讨JavaScript中基本类型与复杂类型的值传递机制,解释局部与全局作用域的区别,以及变量在不同作用域中的行为表现。通过具体示例,帮助读者理解JavaScript的数据类型处理和作用域规则。
265

被折叠的 条评论
为什么被折叠?



