진급 4

2850 단어

1. 인용 유형은 어떤 것들이 있습니까?참조되지 않는 유형


기본 형식 값(수치, 볼 값,null,undefined): 창고 메모리에 저장된 간단한 데이터 세그먼트를 가리킨다.인용 형식 값(대상, 수조, 함수, 정규): 메모리에 저장된 대상을 가리킨다. 변수에 저장된 것은 사실상 하나의 바늘일 뿐이다. 이 바늘은 메모리에 저장된 다른 위치를 실행하고 이 위치에서 대상을 저장한다.

2. 다음 코드는 무엇을 출력합니까?무엇 때문에

var obj1 = {a:1, b:2};
var obj2 = {a:1, b:2};
console.log(obj1 == obj2); // false    obj1 obj2 
console.log(obj1 = obj2);  // object{a:1, b:2};    obj2 obj1  
console.log(obj1 == obj2); // true    obj1 obj2 

3. 다음 코드는 무엇을 출력합니까?무엇 때문에

var a = 1
var b = 2
var c = { name: ' ', age: 2 }
var d = [a, b, c]
var aa = a
var bb = b
var cc = c
var dd = d
a = 11
b = 22
c.name = 'hello'
d[2]['age'] = 3
console.log(aa) //  1    var aa = a  aa、a、bb、b 
console.log(bb) // 2     var bb = b  aa、a、bb、b 
console.log(cc)// object { name: 'hello', age: 2 }   cc c 。
console.log(dd)// array[1,2,{name:'hello',age:3}]  d[2] c 

4. 다음 코드는 무엇을 출력합니까?무엇 때문에

var a = 1
var c = { name: 'jirengu', age: 2 }
function f1(n){
  ++n
}
function f2(obj){
  ++obj.age
}
f1(a) // n===2    var n = a,++n n===2, a 。
f2(c) //object { name: 'jirengu', age: 3 }
      // var obj = c
      //  , ++obj.age , c age          
f1(c.age) // c.age = 3  var n = 3. c.age
console.log(a) // 1
console.log(c)// { name: 'jirengu', age: 3}

5. 다음 수조를 필터하여 정수만 남기고 원수조에서 직접 조작

var arr = [3,1,0,-1,-3,2,-5];
function filter(arr) {
for(var i=0;i

6. 다음 수조를 필터하여 정수만 보존하고 원수조는 변하지 않으며 새 수조를 생성합니다

 var arr = [3,1,0,-1,-3,2,-5]
 function filter(arr){
   var newArr = [];
   var j = 0;
    for(var i = 0; i < arr.length; i++){
      if(arr[i] > 0){  
        newArr[j] = arr[i];
        j++;
    }     
  }
    return newArr;
}
console.log('-----') ;
var arr2 = filter(arr);
console.log(arr2); // [3,1,2]
console.log(arr);  // [3,1,0,-1,-2,2,-5]

7. 깊이 복사 함수를 써서 두 가지 방식으로 실현

// 
function deepCopy(oldObj) {
    var newObj = {};
    for(var key in oldObj) {
        if(typeof oldObj[key] === 'object' && oldObj[key] !== null ) {
            newObj[key] = deepCopy(oldObj[key]);
        }else{
           newObj[key] = oldObj[key];
        }
    }
    return newObj;
}
// 
// : , 
// :1.  2. , object,      。
function deepCopy2(oldObj) {
    var newObj = {}
    newObj = JSON.parse( JSON.stringify(oldObj) )
    return newObj
}

얕은 복사는 대상 자체만 복사하고, 깊이 복사는 대상 안의 인용 유형 값 (수조, 대상) 을 복사합니다.

좋은 웹페이지 즐겨찾기