TLDR;
kullanım location.href
veya daha iyi kullanım window.location.href
;
Ancak bunu okursanız, yadsınamaz kanıtlar elde edersiniz.
Gerçek şu ki, kullanımı gayet iyi ama neden şüpheli şeyler yapıyor? En yüksek yolu seçmeli ve sadece yapılması gerektiği gibi yapmalısınız.
location = "#/mypath/otherside"
var sections = location.split('/')
Bu kod mükemmel doğru sözdizimi, mantık bilge, tip-bilge yanlış olan tek şey biliyor musunuz?
sahip olduğu location
yerinelocation.href
Peki buna ne dersin
var mystring = location = "#/some/spa/route"
değeri mystring
nedir? test yapmadan gerçekten bilen var mı? Burada tam olarak ne olacağını kimse bilmiyor. Cehennem sadece bunu yazdım ve ne yaptığını bile bilmiyorum. location
bir nesne ama ben bir dize atamak dize veya konum nesnesi geçecek. Bunun nasıl uygulanması gerektiğine dair bazı cevaplar olduğunu varsayalım. Tüm tarayıcıların aynı şeyi yapacağını garanti edebilir misiniz?
Bu hemen hemen tüm tarayıcılar aynı idare edecek tahmin edebilirsiniz.
var mystring = location.href = "#/some/spa/route"
Eğer bunu derleyiciye yerleştirirseniz, derleyici türünün bunun bir nesne olduğunu varsayacağını söyleyecektir?
Ancak bu konuşma sadece location
nesneden çok daha derindir . Bu dönüşüm ne tür bir programcı olmak istiyor?
Bu kısa yolu alırsanız, evet bugün iyi olabilir, yarın iyi olabilirsiniz, cehennem sonsuza kadar iyi olabilir, ama efendim şimdi kötü bir programcısınız. Senin için iyi olmayacak ve başarısız olacak.
Daha fazla nesne olacak. Yeni sözdizimi olacak.
Sadece bir dizge alan ancak bir nesne döndüren bir alıcı tanımlayabilirsiniz ve en kötü yanı, doğru bir şey yaptığınızı düşüneceksiniz, bu zeki yöntem için parlak olduğunuzu düşünebilirsiniz, çünkü buradaki insanlar utanç verici bir şekilde yoldan sapmışlardır.
var Person.name = {first:"John":last:"Doe"}
console.log(Person.name) // "John Doe"
Alıcılar ve ayarlayıcılarla bu kod gerçekten işe yarayacaktır, ancak bunun yapılabilmesi, bunun 'WISE' olduğu anlamına gelmez.
Programlayan çoğu insan programlamayı sever ve daha iyi olmayı sever. Son birkaç yıl içinde oldukça iyi öğrendim ve çok şey öğrendim. Özellikle Kütüphaneler yazarken bildiğim en önemli şey tutarlılık ve öngörülebilirlik.
Sürekli yapabileceğiniz şeyleri yapın.
+"2"
<- burada bu dizeyi bir sayıya ayrıştırır. kullanmalısın ya da kullanmalı parseInt("2")
mısın?
Ne hakkında var num =+"2"
?
Öğrendiklerinizden, stackoverflow'un akıllarından çok umarım değilim.
Eğer bu 2 kelimeyi takip etmeye başlarsanız tutarlı ve tahmin edilebilir. Stackoverflow ile ilgili bir ton soruya doğru cevabı bileceksiniz.
Size bunun nasıl bir fayda sağladığını göstereyim. Normalde yazdığım ;
her javascript satırına yerleştiririm . Daha etkileyici olduğunu biliyorum. Daha açık olduğunu biliyorum. Kurallara uydum. Bir gün yapmamaya karar verdim. Neden? Çünkü pek çok insan bana artık gerek olmadığını ve JavaScript'in onsuz yapabileceğini söylüyor. Peki bunu yapmaya karar verdim. Şimdi bir programcı olarak kendimden emin olduğum için (bir dilde ustalaşmanın meyvesinden zevk almanız gerektiği gibi) çok basit bir şey yazdım ve kontrol etmedim. Bir virgül sildim ve bir virgül kaldırmak gibi basit bir şeyi tekrar test etmem gerektiğini düşünmedim.
Es6 ve babel'de buna benzer bir şey yazdım
var a = "hello world"
(async function(){
//do work
})()
Bu kod başarısız oldu ve çözülmesi sonsuza dek sürdü. Nedense gördüğü
var a = "hello world"(async function(){})()
kaynak kodu içinde gizli gizli bana "merhaba dünya" bir işlev değil diyordu.
Daha fazla eğlence için düğüm aktarılan kodun kaynak haritalarını göstermez.
Çok aptalca zaman harcadım. Birisine ES6'nın nasıl parlak olduğu hakkında da sunum yapıyordum ve daha sonra hata ayıklamaya başlamak ve baş ağrısının nasıl daha iyi ve daha iyi ES6 olduğunu göstermek zorunda kaldım. İkna edici değil.
Umarım bu sorunuzu cevaplamıştır. Bu eski bir soru, daha çok gelecek nesiller için, hala öğrenmekte olan insanlar için.
İnsanların her iki şekilde de çalışmasının önemli olmadığını söyledikleri soru. Şans daha akıllı bir kişi size başka bilge söyleyecektir.
Birisi konum nesnesinin üzerine yazarsa ne olur. Eski tarayıcılar için bir şim yapacaklar. Büzülmesi gereken bazı yeni özellikler alacak ve 3 yaşındaki kodunuz başarısız olacaktır.
Düşünmek için son notum.
Temiz, açık amaçlı kod yazmak, kodunuz için doğru veya yanlış cevap veremeyen bir şey yapar. Yaptığı şey, kodunuzu bir etkinleştirici yapmaktır.
Kodlar arasında kesinti korkusu olmayan kütüphaneler, daha fazla şey eklentileri kullanabilirsiniz.
kayıt için. kullanım
window.location.href