Aşağıdakileri JavaScript'te nasıl yapabilirim?
"1", "2", "3" ü "123" olarak birleştir
"123" ü 123'e dönüştür
123 + 100 = 223 ekle
223'ü "223" olarak gizleyin
Aşağıdakileri JavaScript'te nasıl yapabilirim?
"1", "2", "3" ü "123" olarak birleştir
"123" ü 123'e dönüştür
123 + 100 = 223 ekle
223'ü "223" olarak gizleyin
Yanıtlar:
parseInt()Ve ile aşina olmak istiyorsunuz toString().
Araç çantanızda yararlı olan, ne tür olduğunu bulmak için bir değişkene bakmak olacaktır— typeof:
<script type="text/javascript">
/**
* print out the value and the type of the variable passed in
*/
function printWithType(val) {
document.write('<pre>');
document.write(val);
document.write(' ');
document.writeln(typeof val);
document.write('</pre>');
}
var a = "1", b = "2", c = "3", result;
// Step (1) Concatenate "1", "2", "3" into "123"
// - concatenation operator is just "+", as long
// as all the items are strings, this works
result = a + b + c;
printWithType(result); //123 string
// - If they were not strings you could do
result = a.toString() + b.toString() + c.toString();
printWithType(result); // 123 string
// Step (2) Convert "123" into 123
result = parseInt(result,10);
printWithType(result); // 123 number
// Step (3) Add 123 + 100 = 223
result = result + 100;
printWithType(result); // 223 number
// Step (4) Convert 223 into "223"
result = result.toString(); //
printWithType(result); // 223 string
// If you concatenate a number with a
// blank string, you get a string
result = result + "";
printWithType(result); //223 string
</script>
"1" + "2" + "3"
veya
["1", "2", "3"].join("")
Katılmak öğeler arasında belirtilen sınırlayıcı koyarak, bir dizeye yöntem birleştirir bir dizinin öğeleri. Bu durumda, "sınırlayıcı" boş bir dizedir ( "").
parseInt("123")
ECMAScript 5'ten önce , 10 tabanı için tabanı geçmek gerekiyordu:parseInt("123", 10)
123 + 100
(223).toString()
(parseInt("1" + "2" + "3") + 100).toString()
veya
(parseInt(["1", "2", "3"].join("")) + 100).toString()
parseInt .
r = ("1"+"2"+"3") // step1 | build string ==> "123"
r = +r // step2 | to number ==> 123
r = r+100 // step3 | +100 ==> 223
r = ""+r // step4 | to string ==> "223"
//in one line
r = ""+(+("1"+"2"+"3")+100);
JavaScript'in yazma sistemi nedeniyle bu sorular her zaman ortaya çıkar. İnsanlar bir sayı dizisini aldıklarında bir sayı aldıklarını düşünürler.
İşte JavaScript'in dizeler ve sayılarla ilgilenme şeklinden yararlanan bazı şeyler. Şahsen, JavaScript'in dize birleştirme için + dışında bir sembol kullanmasını diliyorum .
Adım (1) "1", "2", "3" ü "123" olarak birleştirin
result = "1" + "2" + "3";
Adım (2) "123" ü 123'e dönüştürün
result = +"123";
Adım (3) 123 + 100 = 223 ekleyin
result = 123 + 100;
Adım (4) 223'ü "223" e dönüştürün
result = "" + 223;
Bunların NEDEN işe yaradığını biliyorsanız, JavaScript ifadeleriyle sorun yaşama olasılığınız daha düşüktür.
Bunu şu şekilde yapabilirsiniz:
// step 1
var one = "1" + "2" + "3"; // string value "123"
// step 2
var two = parseInt(one); // integer value 123
// step 3
var three = 123 + 100; // integer value 223
// step 4
var four = three.toString(); // string value "223"
0ve sonra içeren 8veya 9başarısız olan değerler , 0 dönüşüne yol açar . Örneğin parseInt('034') = 28, ve parseInt('09') = 0.
Bir dizeyi sayıya dönüştürmek için 0 çıkarın. Bir sayıyı dizeye dönüştürmek için "" (boş dize) ekleyin.
5 + 1 size 6 verecek
(5 + "") + 1 size "51" verir
("5" - 0) + 1 size 6 verir
Aşağıda JavaScript'in başınızı nasıl belaya sokabileceğine dair çok rahatsız edici bir örnek var:
Yalnızca parseInt()sayıya dönüştürmek için kullanmayı denerseniz ve sonuca başka bir sayı eklerseniz, iki dizeyi birleştirir.
Ancak, aşağıdaki örnekte gösterildiği gibi , toplam ifadesini parantez içine yerleştirerek sorunu çözebilirsiniz .
Sonuç: Yaş toplamları: 98; Yaş toplamları: 5048 DEĞİLDİR
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
function Person(first, last, age, eye) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eye;
}
var myFather = new Person("John", "Doe", "50", "blue");
var myMother = new Person("Sally", "Rally", 48, "green");
document.getElementById("demo").innerHTML = "Their age sum is: "+
(parseInt(myFather.age)+myMother.age)+"; Their age sum is NOT: " +
parseInt(myFather.age)+myMother.age;
</script>
</body>
</html>
En basit olanı, bir tamsayıyı bir dizge yapmak istediğinizde
var a,b, c;
a = 1;
b = a.toString(); // This will give you string
Şimdi, string türünde olan b değişkeninden tamsayı alabiliriz
c = b *1; //This will give you integer value of number :-)
Yukarıda kontrol etmek isterseniz bir sayıdır. B'nin tamsayı içerip içermediğinden emin değilseniz şunu kullanabilirsiniz:
if(isNaN(c*1)) {
//NOt a number
}
else //number
Bunu, önce sayılara dönüştürmek ve basitçe eklemek için unary plus operatörünü kullanarak yapabiliriz . aşağıya bakınız:-
var a = "4";
var b = "7";
var sum = +a + +b;