⊗jsPmBsATC 43 of 505 menu

Veri Tiplerinin Otomatik Dönüşümü

Bildiğiniz gibi, JavaScript'teki dizeler tırnak içine alınmalıdır. Dizedeki tüm karakterlerin rakam olması durumu olabilir:

let a = '123';

Bu durumda, a değişkeni de bir dizedir, ancak bir nüansla.

Nüans şudur: rakamlardan oluşan bir dize üzerinde herhangi bir matematiksel işlem yapılırsa - bu işlem, sanki gerçekten sayılarımız varmış gibi, dizeler değilmiş gibi yapılacaktır:

alert('2' * '3'); // 6 yazacaktır

Bu durumda JavaScript, dizeler için geçersiz, ancak sayılar için geçerli bir işlem yapmaya çalıştığımızı görür.

Ayrıca, dizelerimizin aslında tırnak içindeki sayılar olduğunu görür. Bu nedenle JavaScript bu dizeleri otomatik olarak sayılara dönüştürür ve üzerlerinde ilgili matematiksel işlemi gerçekleştirir.

Bu, yalnızca dizelerimizde sadece rakamlar varsa çalışır. Eğer en az bir harf varsa - JavaScript işlemi geçersiz sayacak ve sonucu NaN değeri yapacaktır:

alert('2' * '3s'); // NaN yazacaktır

Ayrıca, işlem matematiksel olarak doğruysa ama dizeler için geçersizse otomatik dönüşüm gerçekleşir.

Örneğin, dizeler (sayılar yapabilir ama) çarpılamaz, bölünemez, çıkarılamaz, bu nedenle tüm bu işlemlerde rakamlı dizelerin sayılara otomatik dönüşümü gerçekleşecektir.

Ancak, dizeler, sayılar gibi, + operatörü kullanılarak toplanabilir. Bu, toplama durumunda otomatik dönüşüm olmayacağı anlamına gelir:

let a = '1' + '2'; alert(a); // '12' yazacaktır - dize toplaması gerçekleşti

Toplananlardan biri sayı, diğeri dize ise, her zaman dize kazanır:

let a = 1 + '2'; alert(a); // '12' yazacaktır

Bu gibi durumlarda JavaScript, tam tersine, sayıları otomatik olarak dizelere dönüştürür ve dize toplamasını gerçekleştirir.

Ancak, toplananlar ikiden fazla olduğunda nüanslar vardır: bu durumda belirli bir türe dönüşüm, işlemlerin yürütme sırasına bağlıdır.

Aşağıdaki örnekte önce 2 ve 3 sayı olarak toplanacak, ardından sonuç '1' dizesine zaten '5' dizesi olarak eklenecek, bu da sonuçta '15' dizesini verecektir:

let a = '1' + (2 + 3); alert(a); // '15' yazacaktır

Eğer parantezler kaldırılırsa, her şey soldan sağa toplanacaktır. Yani önce '1' dizesine 2 sayısı eklenecek ve sonuçta '12' dizesi elde edilecektir. Sonra bu dizeye 3 sayısı eklenecek ve sonuçta '123' dizesi elde edilecektir:

let a = '1' + 2 + 3; alert(a); // '123' yazacaktır

Ancak aşağıdaki örnekte 2 ve 3 sayıları başta yazılıdır, bu nedenle önce sayı olarak toplanacak, sonuçta 5 sayısını verecek, ardından bu sayıya '1' dizesi eklenecek, sonuçta '51' dizesini verecektir:

let a = 2 + 3 + '1'; alert(a); // '51' yazacaktır

Kodu çalıştırmadan, ekrana ne yazılacağını belirleyin:

let a = '5' + '2'; alert(a);

Kodu çalıştırmadan, ekrana ne yazılacağını belirleyin:

let a = '5' + 2; alert(a);

Kodu çalıştırmadan, ekrana ne yazılacağını belirleyin:

let a = 5 + '2'; alert(a);

Kodu çalıştırmadan, ekrana ne yazılacağını belirleyin:

let a = 5 + 2; alert(a);

Kodu çalıştırmadan, ekrana ne yazılacağını belirleyin:

let a = '5' * '2'; alert(a);

Kodu çalıştırmadan, ekrana ne yazılacağını belirleyin:

let a = '5' - '2'; alert(a);

Kodu çalıştırmadan, ekrana ne yazılacağını belirleyin:

let a = '5' / '2'; alert(a);

Kodu çalıştırmadan, ekrana ne yazılacağını belirleyin:

let a = '5' % '2'; alert(a);

Kodu çalıştırmadan, ekrana ne yazılacağını belirleyin:

let a = '5s' * '2'; alert(a);

Kodu çalıştırmadan, ekrana ne yazılacağını belirleyin:

let a = '5s' + '2'; alert(a);

Kodu çalıştırmadan, ekrana ne yazılacağını belirleyin:

let a = (-'5') + (-'2'); alert(a);

Kodu çalıştırmadan, ekrana ne yazılacağını belirleyin:

let a = '5' * 1 + '2' * 1; alert(a);

Kodu çalıştırmadan, ekrana ne yazılacağını belirleyin:

let a = '5' * '1' + '2' * '1'; alert(a);

Kodu çalıştırmadan, ekrana ne yazılacağını belirleyin:

let a = '' + 3 + 1; alert(a);
Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet