2013-03-01 24 views
7

Điều tôi đang tìm kiếm là cách các chuỗi được xử lý vật lý trong Javascript. Ví dụ tốt nhất mà tôi có thể nghĩ cho những gì tôi có nghĩa là trong api Java nó mô tả việc lưu trữ các chuỗi như:Các chuỗi được lưu trữ trên thực tế như thế nào trong Javascript

String str = "abc";" is equivalent to: "char data[] = {'a', 'b', 'c'};

Đối với tôi này nói nó sử dụng một đối tượng mảng và các cửa hàng mỗi nhân vật như đối tượng riêng của mình để được sử dụng/truy cập sau (Tôi thường sai về những điều này!) ...

Javascript làm như thế nào?

+1

nó trở thành đối tượng Chuỗi, bạn cũng có thể lấy các ký tự dưới dạng một mảng: 'var str =" Hello "; console.log (str [0]); // hiển thị "H" ' – kennypu

+0

chúng được lưu trữ" vật lý ", chúng được lưu trữ kỹ thuật số rõ ràng. trong khi bạn có thể sử dụng truy cập mảng [] để lấy các ký tự riêng lẻ, các chuỗi không phải là mảng hoặc char trong javascript thì không có kiểu char và chuỗi nào không có các phương thức liên quan đến thao tác mảng. – mpm

Trả lời

3

Chuỗi là String objects bằng JavaScript. Đối tượng String có thể sử dụng ký hiệu [] để lấy ký tự từ một chuỗi ("abc"[0] trả về 'a'). Bạn cũng có thể sử dụng chức năng String.prototype.charAt để đạt được cùng một kết quả.

Side nút:var a = 'abc'var b = new String('abc') là không giống nhau. Trường hợp đầu tiên được gọi là chuỗi nguyên thủy và được chuyển đổi thành đối tượng String bằng trình phân tích cú pháp JavaScript. Điều này dẫn đến các loại dữ liệu khác, gọi số typeof(a) cung cấp cho bạn string nhưng typeof(b) cung cấp cho bạn object.

+0

Cảm ơn tất cả - một số câu trả lời hay - vì vậy mỗi ký tự trông giống như thế nào trong một chuỗi JavaScript - là một chuỗi vẫn là một mảng 'ký tự' trong JS như trong Java? – user1360809

+0

không, nó chỉ là một chuỗi. Nó có thể là chuỗi được lưu dưới dạng một mảng bên trong đối tượng String, làm cho việc lặp lại có thể, nhưng tôi không biết đó có đúng không (kiến thức của tôi về trình phân tích cú pháp JS không nhận được điều đó xa ..) –

+0

Cảm ơn - bất cứ ai khác có thể cung cấp bất kỳ thông tin? – user1360809

0

Chuỗi được lưu trữ ở định dạng giống như javascript khi các ngôn ngữ khác lưu trữ. Giả sử var word = "test" so với từ sẽ là một mảng các ký tự và 't' sẽ đến vị trí thứ 0 và cứ thế.

Lần lặp cuối cùng khi dùng 'word.length' sẽ trả về không xác định. Trong các ngôn ngữ khác, nó trả về là '\ 0'. Tuy nhiên,

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