2015-11-07 20 views
5

Tôi không thể tạo lại hành vi này trong công cụ đoạn mã SO, nhưng tôi đang gặp một số hành vi thao tác chuỗi khá sôi nổi trong Chrome (v46).Hành vi chuỗi lạ với không gian trong Bảng điều khiển Javascript của Chrome

Hãy nhìn vào ảnh chụp màn hình này của giao diện điều khiển Chrome JavaScript:

chrome example

Để tâm trí của tôi, kết quả của những lát nên ( Here. Đó là, một khung và sau đó ba không gian. Không phải là một khung và sau đó một không gian, đó là những gì nó hiện đang cung cấp cho tôi.

Tôi đã kiểm tra các lệnh tương tự chính xác trong Firefox, mà mang lại kết quả tôi đã mong đợi:

firefox example

Can bất kỳ một suy nghĩ của một lời giải thích cho sự khác biệt về sản lượng? Tôi có bị dày đặc không?

Cập nhật

Liên quan đến này là một bản sao của this, tôi tin rằng câu hỏi này không có hai điều khác nhau:

  • Đó là rõ ràng hơn nhiều trong truy vấn của nó
  • Nó hỏi tại sao hiện tượng xảy ra, thay vì cách giải quyết vấn đề
+0

Tôi nghĩ rằng đó có thể là lỗi. Cách đơn giản nhất để tái sản xuất là nhập ''" (Đây là giao diện điều khiển sẽ trả lời: '" "(Ở đây" '(đoạn đầu tiên của tôi có 3 dấu cách, nhưng nó chỉ hiển thị một) – GolfWolf

+1

nếu bạn sao chép kết quả từ giao diện điều khiển chrome js và dán bạn sẽ thấy không gian đó sẽ ở đó. X) –

+0

Bạn đang đúng @JoelRamosMichaliszen, bạn có thể giải thích lý do tại sao không? Làm cho việc gỡ lỗi trở nên khó khăn .. – shennan

Trả lời

0

Không có vấn đề gì ctually. Ngay cả khi tôi đã thử với Chrome v46, các khoảng trắng được hợp nhất trong các devtools, có nghĩa là đầu ra/xem trông giống như chỉ có một không gian, nhưng thực tế có 3 ký tự dấu cách. Kiểm tra hình chụp dưới đây.

enter image description here

-1

Đừng đánh lừa bản thân: Hành vi của Chrome là chính xác. Nó chỉ là phông chữ được sử dụng trong giao diện điều khiển gỡ lỗi mà làm cho khoảng trống tiếp giáp dường như mỏng hơn. Bạn có thể chứng minh bằng cách kiểm tra string.slice(1).length.

3

Đây chỉ là một vấn đề DevTools, mà có lẽ hầu hết đã được giải quyết với các bản vá sau http://src.chromium.org/viewvc/blink?view=revision&revision=201091

Đó là về sụp đổ nhiều ký tự trắng, như render HTML được thực hiện theo mặc định. Các lực lượng vá được đề cập hiển thị bằng cách sử dụng white-space: pre.

+0

Tôi thích câu trả lời này (+1) bởi vì nó cung cấp một lời giải thích.Nhưng tôi vẫn không thấy lý do tại sao đầu ra giao diện điều khiển đang áp dụng các khoảng trống thu gọn từ hiển thị HTML nội dòng. Sau khi tất cả, nếu tôi gõ '"

"' vào bảng điều khiển, nó không cung cấp cho tôi một hình vuông màu xanh lá cây. – shennan

+0

Vâng, tôi không kiểm tra mã nguồn của DevTools, nhưng tôi giả sử rằng văn bản được cung cấp được chuyển đổi thành nút văn bản, vì vậy < > và các ký tự đặc biệt HTML khác được coi là văn bản thuần túy và được chèn vào cấu trúc tài liệu của DevTools. Do đó, hiển thị HTML vẫn được áp dụng, chỉ các ký tự đặc biệt mới được "thoát". – Rafael

+0

Ví dụ này nên giải thích hành vi: http://jsfiddle.net/udhd9pmt/ – Rafael

Các vấn đề liên quan