javascript tópico 1

Qual é o resultado do programa a seguir? (Escolha um)

//climg.mukewang.com/590bee2d0001f56705000198.jpg

Os dados de dois tipos de referência são comparados e a comparação é sua referência. Mesmo que duas matrizes pareçam exatamente iguais, se não estiverem referenciando a mesma matriz, não serão iguais. Somente quando eles se referem ao mesmo array eles serão iguais quando comparados. Por exemplo, var a = []; var b = [], aeb não se referem à mesma matriz vazia, portanto, a não é igual a b. var c = []; var d = c, atribua o valor de c a d, ou seja, c e d referem-se à mesma matriz vazia, portanto, são iguais. Além disso, se dois tipos diferentes de dados forem == comparados, o esquerdo e o direito serão convertidos para o mesmo tipo e depois comparados.

[] == [] retorna falso; [] === [] retorna falso; 4 == [4] retorna verdadeiro ([4] é convertido em um tipo numérico, então [4] == 4 é verdadeiro); 4 = == [4] retorna falso, então a resposta a esta pergunta é D.

Em var arr2 = [arr1 [0], arr1 [1]], arr1 não é atribuído diretamente a arr2, os endereços de memória dos dois pontos são diferentes, portanto, adicionar ou excluir elementos de arr1 não afetará arr2.

Mas os elementos em arr2 são copiados diretamente dos elementos em arr1. Como arr1 [1] é um tipo de referência, então arr1 [1] == arr2 [1], a exclusão ou adição de elementos em arr1 [1] afetará o resultado de arr2.

//img.mukewang.com/climg/5f531146294e8e8c05001000.jpg

Portanto, a resposta a esta pergunta é D.

 

Qual é o resultado do programa a seguir? (Escolha um)

//climg.mukewang.com/590c10240001483505000365.jpg

A função fn já foi declarada com antecedência durante a pré-análise. Portanto, document.write (fn) produzirá a função fn () {}, a resposta a esta pergunta é C.

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>什么是函数</title>
</head>

<body>
    <script>
    function fun(){
        document.write("B");
    }
    document.write(fun);
    </script>
</body>

</html>

Qual é o resultado do programa a seguir? (Escolha um)

//climg.mukewang.com/590c10df00016e4705000348.jpg

Quando a variável é pré-analisada, ela será declarada (definida) com antecedência e atribuído o valor undefined.Note que a instrução de atribuição não será pré-analisada.

var fn = function () {} define uma variável, e o valor da variável é uma função. Portanto, fn segue a pré-análise de variáveis. É equivalente ao seguinte:

var fn = indefinido;

document.write (fn);

fn = função () {};

Portanto, o resultado de saída do código acima é indefinido e o código para esta pergunta é B.

Quais são os resultados de saída dos seguintes códigos em ordem? (Escolha um)

//img.mukewang.com/climg/5f532a53291d108c05001000.jpg

Esta questão examina a ordem de execução do código e a pré-análise das funções.

A função será promovida no estágio de pré-análise, portanto, chamar a função a antes da definição não relatará um erro. O código é executado sequencialmente e a função a é chamada primeiro, portanto, "Xiaomu" será gerado. Seguido pela saída "Little Ou" e, finalmente, a saída "Little Sugar". Portanto, a resposta a esta pergunta é D.

 

Com relação aos argumentos, quais das afirmações a seguir estão corretas? (Escolha dois)

Esta questão examina o uso de argumentos.

Argumentos são objetos semelhantes a arrays, mas não objetos de array reais. Uma instrução está errada;

argumentos. comprimento pode obter o número de parâmetros passados, a declaração de B está correta;

argumentos [] podem obter o valor do parâmetro passado, o índice do parâmetro colocado entre colchetes, o índice começa em 0, a instrução C está errada, D está correta;

Portanto, a resposta a essa pergunta é BD.

Qual é o resultado do código a seguir? (Escolha um)

//climg.mukewang.com/582bf8420001f64503820139.jpg

Se não houver valor de retorno após return, undefined é retornado por padrão e, após a instrução return ser executada, a instrução a seguir não será executada.

No código desta questão, chame fun2 (20,10), então os parâmetros num1 = 20, num2 = 10. Se a condição de num1> num2 for satisfeita, execute return. Observe que não há valor de retorno após o retorno, o padrão é indefinido, então a resposta a esta pergunta é C.

Qual é a saída do código a seguir? (Escolha um)

//img.mukewang.com/climg/5f532cdd2947096a05001000.jpg

O parâmetro também é equivalente a uma variável local. No código, ao chamar fn () sem passar os parâmetros reais, o parâmetro formal a é como se a definição da variável não fosse atribuída e o padrão fosse indefinido, então o primeiro a resulta em "indefinido".

Na função, se a variável local a for definida, a variável global a não será pesquisada para cima. Na função, a = 34, é atribuir um valor ao parâmetro a, e a variável global a ainda é 23.

 

Qual é a saída do código a seguir? (Escolha um)

//img.mukewang.com/climg/5f5347142911f25b05001000.jpg

No código desta questão, o método a do objeto obj é chamado primeiro, e o valor de retorno this.b é atribuído à variável global obj1. O método a é chamado por obj, então isso em a aponta para obj. Então this.b obtém o método b de obj, e chamar obj1 mais tarde é equivalente a chamar o método b de obj. obj1 é chamado no global, portanto, no método b aponta para a janela do objeto global, portanto, this.c obtém a variável global c, o resultado de saída é 1 e a resposta a esta pergunta é A.

 

Qual é a saída no código a seguir? (Escolha um)

//img.mukewang.com/climg/5f21199329996c2d05001000.jpg

Em funções comuns, isso aponta para o objeto que está chamando a função.

1. No escopo global, declare uma constante para receber a função fn1 no objeto obj e, em seguida, chame a função, que é equivalente à chamada do método window.res (), e isso aponta para a janela.

2. Atribua o método de teste a fn2 sob o objeto obj e, em seguida, chame-o na forma de obj.fn2, de forma que neste método aponte para o objeto obj.

3. Como a função de retorno de chamada na função setTimeout não especifica o objeto de chamada quando ele é executado, a sintaxe js estipula que ele é chamado pelo objeto janela por padrão, portanto, aponta para a janela.

Portanto, a resposta a esta pergunta é D.

 

Observe a foto abaixo, quantos isso tem no código? (Escolha um)

//img.mukewang.com/climg/5b0f96b30001088b05000323.jpg

Olá, colegas, aqui está principalmente o uso da chamada. Já falei sobre o método de chamada antes, e o link do vídeo é: https://class.imooc.com/lesson/1628#mid=39918

Os alunos podem revisar novamente. O professor apresenta brevemente aos alunos:

A função pode ser chamada na forma de "nome ()":

http://img.mukewang.com/climg/5ff1a22409feb90806990251.jpg

Neste ponto, isso aponta para a janela:

http://img.mukewang.com/climg/5ff1a2390962f6f511630103.jpg

Você também pode usar o método call para chamar uma função, onde o primeiro parâmetro da chamada pode ser usado para alterar o ponto desta, como segue

http://img.mukewang.com/climg/5ff1a24d090e5b6e09840429.jpg

http://img.mukewang.com/climg/5ff1a2550951670606320180.jpg

Portanto, nas questões práticas:

1. Var f = foo.call ({id: 1}) significa: chame foo e aponte para {id: 1}

2. A função de seta que retorna o primeiro retorno após foo ser chamada, e não há este ponto na função de seta, então, mesmo se você usar call para passar no objeto {id: 2}, isso aponta para this no função foo, que é {id: 1}

3. O seguinte e assim por diante, todas as funções de seta de retorno, sem este ponto, isso aponta para this na função foo, que é {id: 1}

Há apenas um isso no final.

Bom aprendizado!

 

Nos cenários a seguir, quais opções podem ser usadas para declarar uma função como uma função de seta? (Escolha um)

Qual é o resultado de saída do código mostrado na figura abaixo? (Escolha um)

//img.mukewang.com/climg/5f58499f29cc4d4a05001000.jpg

Quando a matriz é desestruturada, o valor padrão só terá efeito quando o resultado correspondente for estritamente igual a undefined.

No código desta questão, os parâmetros 1 e null passados ​​pela chamada de fn não são estritamente iguais a undefined, portanto os valores padrão de aeb não são eficazes, o resultado correspondente de a é 1 e o resultado correspondente de b é nulo.

Quando nulo está envolvido no cálculo, ele será convertido para um valor de 0 por padrão, e o resultado final de a + b é 1, então a resposta a esta pergunta é C.

Qual dos seguintes códigos de opção pode manter os elementos na matriz arr inalterados? (Escolha um)

//img.mukewang.com/climg/5f5b72e4297e931005001000.jpg

 Esta questão examina principalmente o princípio da caça preguiçosa de empregos quando o valor padrão da atribuição de desconstrução é uma expressão.

A avaliação lenta significa que ela será avaliada apenas quando for usada, portanto, quando o teste usar o valor padrão, arr.pop () será executado para excluir o último elemento do array e alterar o valor de arr.

obj é um objeto vazio, teste usa o valor padrão quando o objeto é desconstruído e a opção A está errada.

Não há atributo de teste no objeto obj. Quando o objeto é desconstruído, o teste usa o valor padrão e a opção B está errada.

O valor do atributo de teste no objeto obj é o array arr, que pode ser desconstruído normalmente, o valor padrão não será usado e a opção C está correta.

O atributo de teste no objeto obj é indefinido, o teste usa o valor padrão quando o objeto é desconstruído e a opção D está errada.

Portanto, a resposta a esta pergunta é C.

 

Quais são as condições para que o valor padrão personalizado de desconstrução de objeto entre em vigor? (Escolha um)

Esta questão examina principalmente o valor padrão da atribuição de desconstrução de objeto,

Na desconstrução de objetos, o valor padrão só será usado quando corresponder a undefined, portanto, a resposta a esta pergunta é B.

 

Qual das opções a seguir é correta para desestruturar e atribuir a variável declarada ao objeto? (Escolha um)

Primeiro declare a variável e, em seguida, execute a atribuição de desestruturação. Toda a desestruturação deve ser colocada entre parênteses, caso contrário, um erro será relatado, porque o analisador interpretará a chave inicial como um bloco de código em vez de uma instrução de atribuição. A opção A está correta , BD A opção está errada.

const declara uma constante, que não pode ser declarada primeiro e depois atribuída. A opção C está errada.

Portanto, a resposta a esta pergunta é A.

No código a seguir, args representa as opções para os parâmetros restantes? (Escolha dois)

 

Esta questão examina principalmente a distinção entre os parâmetros restantes e os elementos restantes.

O formato de escrita dos parâmetros restantes e dos elementos restantes são ambos na forma de "... nome da variável", a diferença é que os parâmetros restantes são usados ​​diretamente como parâmetros de função. Os elementos restantes são usados ​​para receber os elementos restantes durante a atribuição de desestruturação.

O parâmetro na opção A é um formato de objeto e os ... args no objeto são os elementos restantes no objeto aceito.

Os args na opção B são usados ​​diretamente como parâmetros de função, onde ... args representa os parâmetros restantes.

O parâmetro na opção C é um formato de matriz, e os ... args na matriz significa receber os elementos restantes.

Existem dois parâmetros na opção D, args é usado diretamente como um parâmetro de função, onde ... args representa os parâmetros restantes.

Portanto, a resposta a essa pergunta é BD.

UMA

 

//img.mukewang.com/climg/5f4e09ce29f4ebe505001000.jpg

 

B

 

C

 

D

 

//img.mukewang.com/climg/5f4e09f4296b7da905001000.jpg

 

 

Acho que você gosta

Origin blog.csdn.net/qq_27009517/article/details/112298503
Recomendado
Clasificación