Динамическая типизация
Материал из Википедии — свободной энциклопедии
Динами́ческая типиза́ция — приём, широко используемый в языках программирования и языках спецификации, при котором переменная связывается с типом в момент присваивания значения, а не в момент объявления переменной. Таким образом, в различных участках программы одна и та же переменная может принимать значения разных типов. Примеры динамически типизированных языков — Smalltalk, Python, Руби, PHP, Perl, JavaScript.
Противоположный приём — статическая типизация.
В некоторых языках с динамической типизацией стоит проблема сравнения величин, так, например, PHP имеет операторы сравнения «==», «!=» и «===», «!==», где вторая пара операторов сравнивает значения и типы переменных. Оператор «===» даёт true только при полном совпадении, в отличие от «==», который считает верным такое выражение: (1=="1"). Стоит отметить, что это проблема не динамической типизации в целом, а конкретных языков программирования.
[править] Примеры
- В PHP:
<html><head><title>test</title></head> <body> <?php $res = "string1"; echo $res.'<br />'; // выводит "string1" $res = 1; echo $res.'<br />'; // выводит "1" $res += 2; echo $res.'<br />'; // выводит "3" $res .= "string2"; echo $res.'<br />'; // выводит "3string2" ?> </body> </html>
- В JavaScript:
<html><head><title>test</title></head>
<body>
<script type="text/javascript">
function DoTest(obj) {
var res = "string1"; alert(res); // выводит «string1»
res = 1; alert(res); // выводит «1»
res += 2; alert(res); // выводит «3»
res += 'string2'; alert(res); // выводит «3string2»
}
</script>
<a href="#" onClick="DoTest()">Click to test</a>
</body></html>
[править] См. также
[править] Ссылки
- Sitepoint: «Introduction to Static and Dynamic Typing» [1]

