美文网首页
2018-11-07

2018-11-07

作者: kathyever | 来源:发表于2018-11-07 19:41 被阅读0次

Q: 考虑如下代码,并解释为什么

   var a = new Object()
   var b = new Object()

变量a与变量b是否完全相等?即 (a === b)的返回结果
解释为什么会输出这样的结果

var a = new Object()
var b = new Object()
console.log(a===b)//false
//new Object()是用构造函数的形式创建对象,每次创建的对象打印出来都是{}这样一个空对象,虽然为空,但是内存中保存的指针是不一样的。除非他们来自同一个实例,否则他们都是不相等的。



Q: 考虑如下代码,并解释为什么

   var person = {
     name: 'kathy',
     age: 18
   }
   var b = person
   b.age = 19
   console.log(b)//name:"kathy",age:19
   console.log(person)//name:"kathy",age:19

A:

输出的b和person都为:name:"kathy",age:19
首先,变量person保存了一个对象的新实例。然后这个值被复制到了b。这个时候,person和b都指向了同一个对象,所以当访问的时候,这两个变量引用的都是同一个对象。

Q:我们如何删除一个数组中的所有元素?(考虑length属性)

A:

 var colors = ["red","blue","green"]; 
colors.length = 0; 
console.log(colors);//[]


Q: 实现如下的需求

   var a = [
     {
       name: 'kathy',
       age: 18
     },
     {
       name: 'qianzhang',
       age: 19
     },
     {
       name: 'qingchong',
       age: 20
     }
   ]

变量a为一个保存着3个对象元素的数组,每个对象都有(name, age)两个属性,
请将变量a中每个对象元素的的age属性+1,使a数组变成如下结构

    var a = [
     {
       name: 'kathy',
       age: 19
     },
     {
       name: 'qianzhang',
       age: 20
     },
     {
       name: 'qingchong',
       age: 21
     }
   ]

同上,我们再为该数组做变换,将a的所有name添加前缀'name_',更改后的结果如下

    var a = [
     {
       name: 'name_kathy',
       age: 19
     },
     {
       name: 'name_qianzhang',
       age: 20
     },
     {
       name: 'name_qingchong',
       age: 21
     }
   ]

A:

 var a = [
     {
       name: 'kathy',
       age: 18
     },
     {
       name: 'qianzhang',
       age: 19
     },
     {
       name: 'qingchong',
       age: 20
     }
   ]
a.age = a.age+1
console.log(a);
var a = [
     {
       name: 'kathy',
       age: 18
     },
     {
       name: 'qianzhang',
       age: 19
     },
     {
       name: 'qingchong',
       age: 20
     }
   ];
for(var i = 0; i < a.length; i++) {
    a[i].age+=1;
}
    console.log(a);
var a = [
     {
       name: 'kathy',
       age: 18
     },
     {
       name: 'qianzhang',
       age: 19
     },
     {
       name: 'qingchong',
       age: 20
     }
   ];
for(var i = 0; i < a.length; i++) {
    a[i].name="name_" + a[i].name;
}
    console.log(a);

相关文章

网友评论

      本文标题:2018-11-07

      本文链接:https://www.haomeiwen.com/subject/xipvxqtx.html