Atribuições de JScript e de igualdade
No JScript, o operador de atribuição atribui um valor a uma variável.Um operador de igualdade compara dois valores.
Atribuições
Como muitas linguagens de programação, o JScript utiliza o sinal de igual (=) para atribuir valores a variáveis: é o operador de atribuição.O operando esquerdo do = operador deve ser um Lvalue, que significa que deve ser uma variável, elemento de matriz ou propriedade do objeto.
O operando direito do = operador deve ser um Rvalue.An Rvalue pode ser um valor arbitrário de qualquer tipo, incluindo um valor que é o resultado de uma expressão.Veja a seguir um exemplo de uma demonstrativo de atribuição do JScript.
anInteger = 3;
JScript interpreta essa demonstrativo sistema autônomo significado:
"Atribuir o valor 3 à variávelanInteger,"
ou
"anIntegerusa o valor 3."
Uma atribuição sempre será bem-sucedida se a anotação de tipo não tiver limite a variável na demonstrativo a um tipo de dados específico.Caso contrário, o compilador tentará converter o Lvalue para o tipo de dados do Rvalue.Se a conversão nunca pode ser executada com êxito, o compilador gerará um erro.Se a conversão será bem-sucedida para alguns valores mas falhar para outros, o compilador gera um aviso de que a conversão pode falhar quando o código é executado.
Neste exemplo, o valor inteiro armazenado na variável i é convertido em um valor duplo quando atribuído à variável x.
var i : int = 29;
var x : double = i;
Para obter mais informações, consulte Conversão de tipo.
Igualdade
Ao contrário de algumas outras linguagens de programação, o JScript não usa o sinal de igual sistema autônomo um operador de comparação, mas apenas sistema autônomo o operador de atribuição.Para comparação entre dois valores, você pode usar o operador de igualdade (==) ou o operador de Igualdade estrita (=).
O operador de igualdade compara primitivas seqüências, números e valores Boolean por valor.Se duas variáveis tiverem o mesmo valor após a conversão de tipo (se necessário), o operador de igualdade retornará True.Objects (including Array, Function, String, Number, Boolean, Error, Date and RegExp objects) compare by reference.Mesmo se duas variáveis de objeto tiverem o mesmo valor, a comparação retorna True somente se eles consultar exatamente o mesmo objeto.
O operador de Igualdade estrita compara o valor e o tipo de duas expressões; True é retornado somente se duas expressões comparar sistema autônomo iguais com o operador de igualdade e o tipo de dados é a mesma para ambos sistema autônomo operandos.
Observação: |
---|
O operador de Igualdade estrita não faz distinção entre tipos diferentes de dados numéricos.Certifique-se de que você compreender a diferença entre o operador de atribuição, o operador de igualdade e o operador de Igualdade estrita. |
Comparações em seus scripts sempre tem um resultado booliano.Considere a seguinte linha de código JScript.
y = (x == 2000);
Aqui, o valor da variável x é testado para ver se ela é igual ao número 2000. Se for, o resultado da comparação é o valor booliano True, que é atribuído à variável y**.** If x não é igual a 2000, o resultado da comparação será o valor booliano False, atribuídos a y.
O operador de igualdade será tipo-converter para verificar se os valores são os mesmos.Na linha de código JScript a seguir, a seqüência literal "42" será convertida para um número antes comparando-o número 42.O resultado é True.
42 == "42";
Objetos são comparados usando regras diferentes.O comportamento do operador de igualdade depende do tipo dos objetos.Se os objetos são instâncias de uma classe definida com um operador de igualdade, o valor retornado depende a implementação do operador de igualdade.Classes que fornecem um operador de igualdade não podem ser definidos no JScript, embora outras linguagens do .NET estrutura permitem essas definições de classe.
Objetos sem um operador de igualdade definidos, sistema autônomo um objeto com base no JScript Object objeto ou uma instância de uma classe de JScript, comparar sistema autônomo igual somente se ambos sistema autônomo objetos, consulte o mesmo objeto. Isso significa que dois objetos distintos que contenham sistema autônomo mesmos dados comparam sistema autônomo diferentes.O exemplo a seguir ilustra esse comportamento.
// A primitive string.
var string1 = "Hello";
// Two distinct String objects with the same value.
var StringObject1 = new String(string1);
var StringObject2 = new String(string1);
// An object converts to a primitive when
// comparing an object and a primitive.
print(string1 == StringObject1); // Prints true.
// Two distinct objects compare as different.
print(StringObject1 == StringObject2); // Prints false.
// Use the toString() or valueOf() methods to compare object values.
print(StringObject1.valueOf() == StringObject2); // Prints true.
Operadores de igualdade são especialmente úteis nas declarações de condição de estruturas de controle.Aqui, você combina um operador de igualdade com uma demonstrativo que o utiliza.Considere o exemplo de código JScript a seguir.
if (x == 2000)
z = z + 1;
else
x = x + 1;
The if...else demonstrativo no JScript executa uma ação (nesse caso, z = z + 1) se o valor de x é o 2000 e uma ação alternativa (x = x + 1) se o valor de x não é 2000. Para obter mais informações, consulte Estruturas condicional JScript.
O operador de Igualdade estrita (=) executa a conversão de tipo somente em tipos de dados numéricos.Isso significa que o inteiro 42 é considerado idêntico a 42 duplas mas não são idênticas à seqüência de caracteres "42".Esse comportamento é demonstrado por este código JScript.
var a : int = 42;
var b : double = 42.00;
var c : String = "42";
print(a===b); // Displays "true".
print(a===c); // Displays "false".
print(b===c); // Displays "false".