Se você converter explicitamente um determinado tipo em outro tipo por meio de uma chamada de função ou método, isso será chamado de conversão explícita e o oposto é chamado de conversão implícita de tipo. As palavras "conversão de tipo de exibição" e "conversão de tipo implícita" não são encontradas no Google e na Wikipedia. Vamos chamá-lo assim.
1. Conversões implícitas de tipo em operações
1. Operador “+”
Copie o código do código da seguinte forma:
var a = 11, b = '22';
varc = a + b;
Aqui o motor primeiro transformará a na string “11” e depois a conectará com b, que se tornará “1122”. Algumas pessoas podem se perguntar: por que não transformar b no número 22 e depois realizar a adição aritmética, caso em que c será 33. Não há razão. Quando um dos dois lados do operador "+" é do tipo numérico e o outro é do tipo string, o mecanismo js estipula a execução da concatenação de strings em vez da adição aritmética. Usando o recurso do operador "+", o número pode ser facilmente convertido em String. como
Copie o código do código da seguinte forma:
var a = 11;
alerta(tipo de a); //-->número
uma = uma + '';
alerta(tipo de a); //-->string
2. Operador "-"
"-" pode ser um operador unário (operação negativa) ou um operador binário (operação de subtração). como
Copie o código do código da seguinte forma:
var a = 11, b = '5';
varc = a - b;
alerta(typeof c); //--> número
Ao contrário do "+" acima, a string b será convertida implicitamente no número 5 e então será realizada a subtração aritmética. Usando este recurso, você pode converter facilmente String em Número
Copie o código do código da seguinte forma:
var a = '11';
uma = uma - '';
alert(tipo de a); // -->número
2. Conversões implícitas de tipo em instruções
1, se
Copie o código do código da seguinte forma:
var obj = {nome:'jack'}
se(obj){
//faça mais
}
Aqui obj será convertido implicitamente para o tipo booleano
2. enquanto
Copie o código do código da seguinte forma:
var obj = {nome:'jack'}
enquanto(obj){
//faça mais
}
O mesmo que se
3. Digite conversão durante for in
Uma conversão implícita de identificador em string ocorre quando um literal de objeto é definido.
Copie o código do código da seguinte forma:
var pessoa = {'nome':'jack',"idade":20,escola:'PKU'};
for(var a pessoalmente){
alerta(a + ": " + tipo de a);
}
Aqui, aspas simples/duplas são adicionadas ao nome e à idade, respectivamente, para enfatizar que são do tipo String, e aspas simples/duplas não são adicionadas à escola. Percorremos as propriedades do objeto para ver seu tipo. Verifica-se que a escola também é convertida implicitamente para o tipo String.
O índice da matriz é na verdade um tipo de string. É incrível, mas é verdade. como
Copie o código do código da seguinte forma:
var aria = [1,3,5,7];
for(var a in ary){
alerta(a + ": " + tipo de a);
}
3. Conversão de tipo implícita ao alertar
Copie o código do código da seguinte forma:
String.prototype.fn = function(){retornar isto};
var a = 'olá';
alert(typeof a.fn()); //-->objeto
alert(a.fn()); //-->olá
Um método fn é adicionado ao protótipo String, que retorna this. Sabemos que this pode ser entendido como um objeto de instância da classe atual. Por ser um objeto, typeof a.fn() retorna naturalmente um objeto.
A chave é o último alerta (a.fn()). O que a.fn() retorna é obviamente um objeto, mas é implicitamente convertido em uma string "hello" para exibição.
A mesma coisa acontece com tipos numéricos, como
Copie o código do código da seguinte forma:
Number.prototype.fn = function(){retornar isto};
var a = 10;
alert(typeof a.fn());//-->objeto
alerta(a.fn()); //-->10
a.fn() retorna um tipo de objeto, mas é implicitamente convertido em um número quando alert(a.fn()) é usado.