TLDR;
sử dụng location.href
hoặc sử dụng tốt hơn window.location.href
;
Tuy nhiên nếu bạn đọc điều này, bạn sẽ đạt được bằng chứng không thể phủ nhận.
Sự thật là nó tốt để sử dụng nhưng tại sao làm những điều đáng nghi ngờ. Bạn nên đi đường cao hơn và chỉ cần làm theo cách mà nó có thể nên được thực hiện.
location = "#/mypath/otherside"
var sections = location.split('/')
Mã này là hoàn toàn chính xác cú pháp khôn ngoan, logic khôn ngoan, loại khôn ngoan bạn biết điều duy nhất sai với nó?
nó có location
thay vìlocation.href
cái này thì sao
var mystring = location = "#/some/spa/route"
giá trị của là mystring
gì? Có ai thực sự biết mà không làm một số thử nghiệm. Không ai biết chính xác những gì sẽ xảy ra ở đây. Địa ngục tôi chỉ viết cái này và tôi thậm chí không biết nó làm gì. location
là một đối tượng nhưng tôi đang gán một chuỗi nó sẽ truyền chuỗi hoặc truyền đối tượng vị trí. Hãy nói rằng có một số câu trả lời cho việc này nên được thực hiện như thế nào. Bạn có thể đảm bảo tất cả các trình duyệt sẽ làm điều tương tự?
Điều này tôi có thể đoán khá nhiều tất cả các trình duyệt sẽ xử lý như nhau.
var mystring = location.href = "#/some/spa/route"
Thế còn nếu bạn đặt cái này vào bản thảo thì nó sẽ bị hỏng vì trình biên dịch kiểu sẽ nói đây là giả sử là một đối tượng?
Tuy nhiên, cuộc trò chuyện này sâu sắc hơn nhiều so với chỉ location
đối tượng. Chuyển đổi này là gì về loại lập trình viên bạn muốn trở thành?
Nếu bạn thực hiện việc rút gọn này, hôm nay bạn có thể ổn, bạn có thể sẽ ổn vào ngày mai, địa ngục có thể sẽ ổn mãi mãi, nhưng bạn ạ bây giờ là một lập trình viên tồi. Nó sẽ không ổn cho bạn và nó sẽ làm bạn thất vọng.
Sẽ có nhiều đối tượng hơn. Sẽ có cú pháp mới.
Bạn có thể định nghĩa một getter chỉ mất một chuỗi nhưng trả về một đối tượng và điều tồi tệ nhất là bạn sẽ nghĩ rằng mình đang làm gì đó chính xác, bạn có thể nghĩ rằng bạn thật xuất sắc cho phương pháp thông minh này bởi vì mọi người ở đây đã xấu hổ dẫn bạn đi lạc đường.
var Person.name = {first:"John":last:"Doe"}
console.log(Person.name) // "John Doe"
Với getters và setters, mã này sẽ thực sự hoạt động, nhưng chỉ vì nó có thể được thực hiện không có nghĩa là 'WISE' để làm như vậy.
Hầu hết những người đang lập trình đều thích lập trình và thích làm tốt hơn. Trong vài năm qua tôi đã khá giỏi và học hỏi được nhiều điều. Điều quan trọng nhất tôi biết bây giờ đặc biệt là khi bạn viết Thư viện là tính nhất quán và dự đoán.
Làm những việc mà bạn luôn có thể làm.
+"2"
<- điều này ngay tại đây phân tích chuỗi thành một số. bạn có nên sử dụng nó? hay bạn nên sử dụng parseInt("2")
?
những gì về var num =+"2"
?
Từ những gì bạn đã học được, từ những suy nghĩ của stackoverflow tôi không quá hy vọng.
Nếu bạn bắt đầu theo 2 từ này nhất quán và dự đoán. Bạn sẽ biết câu trả lời đúng cho hàng tấn câu hỏi trên stackoverflow.
Hãy để tôi chỉ cho bạn cách này trả hết. Thông thường tôi đặt ;
trên mỗi dòng javascript tôi viết. Tôi biết nó biểu cảm hơn. Tôi biết nó rõ ràng hơn. Tôi đã tuân theo các quy tắc của tôi. Một ngày tôi quyết định không. Tại sao? Bởi vì rất nhiều người đang nói với tôi rằng nó không còn cần thiết nữa và JavaScript có thể làm mà không cần nó. Vì vậy, những gì tôi quyết định làm điều này. Bây giờ bởi vì tôi đã chắc chắn về bản thân mình với tư cách là một lập trình viên (vì bạn nên tận hưởng thành quả của việc thành thạo một ngôn ngữ), tôi đã viết một cái gì đó rất đơn giản và tôi đã không kiểm tra nó. Tôi đã xóa một dấu phẩy và tôi không nghĩ rằng mình cần kiểm tra lại một việc đơn giản như xóa một dấu phẩy.
Tôi đã viết một cái gì đó tương tự như thế này trong es6 và babel
var a = "hello world"
(async function(){
//do work
})()
Mã này thất bại và mất mãi mãi để tìm ra. Vì một số lý do, những gì nó thấy là
var a = "hello world"(async function(){})()
ẩn sâu bên trong mã nguồn, nó nói với tôi "xin chào thế giới" không phải là một chức năng.
Đối với nút vui hơn không hiển thị bản đồ nguồn của mã được mã hóa.
Lãng phí quá nhiều thời gian ngu ngốc. Tôi đã trình bày với ai đó về việc ES6 tuyệt vời như thế nào và sau đó tôi phải bắt đầu gỡ lỗi và chứng minh ES6 không đau đầu và tốt hơn như thế nào. Không thuyết phục là nó.
Tôi hy vọng điều này đã trả lời câu hỏi của bạn. Đây là một câu hỏi cũ, nó dành cho thế hệ tương lai, những người vẫn đang học hỏi.
Câu hỏi khi mọi người nói nó không thành vấn đề theo cách nào. Cơ hội là một người khôn ngoan hơn nhiều kinh nghiệm sẽ cho bạn biết khôn ngoan khác.
Điều gì xảy ra nếu ai đó ghi đè lên đối tượng vị trí. Họ sẽ làm một shim cho các trình duyệt cũ hơn. Nó sẽ nhận được một số tính năng mới cần được làm sáng tỏ và mã 3 năm tuổi của bạn sẽ thất bại.
Lưu ý cuối cùng của tôi để suy ngẫm.
Viết mã rõ ràng, có mục đích rõ ràng sẽ làm điều gì đó cho mã của bạn không thể trả lời đúng hay sai. Những gì nó làm là nó làm cho mã của bạn trở thành một enabler.
Bạn có thể sử dụng nhiều plugin hơn, Thư viện mà không sợ bị gián đoạn giữa các mã.
cho hồ sơ. sử dụng
window.location.href