首页 > 试题广场 >

以下代码的执行结果是什么? function funcA(d

[单选题]
以下代码的执行结果是什么?
function funcA(data) {
    data.key = 'data';
}
function funcB(data) {
    data = {};
      data.value = 'data';
}
var data = { key: 'key', value: 'value' };
funcA(data);
funcB(data);
console.log(data.key);
console.log(data.value);
  • 'key', 'value'
  • 'data', 'data'
  • 'data', 'value'
  • undefined, 'data'
function funcA(data) {
    data.key = 'data';
}
function funcB() { // 把函数的这个data参数去掉,结果就是D选项了
    data = {};  // 这个data虽然在函数里面,但是并没有用var 声明,所以算是全局变量,会把var 声明的全局变量替换
      data.value = 'data';
}
var data = { key: 'key', value: 'value' };   // 用 var声明的全局变量
funcA(data); 
funcB(data);
console.log(data.key);
console.log(data.value);
发表于 2018-11-23 21:08:07 回复(0)
function funcA(data) {
    data.key = 'data';//此data就是参数data
}
function funcB(data) {
    data = {}; //这里的data是一个新的data,并不是参数data,是函数里面的data,所以并不会改变全局data的值
      data.value = 'data';
}
var data = { key: 'key', value: 'value' };
funcA(data);
funcB(data);
console.log(data.key);
console.log(data.value);
所以输出结果是data value

发表于 2018-08-30 17:02:28 回复(0)