Người ta có thể nghĩ về document.write () (và .innerHTML) khi đánh giá chuỗi mã nguồn. Điều này có thể rất tiện dụng cho nhiều ứng dụng. Ví dụ: nếu bạn lấy mã HTML dưới dạng một chuỗi từ một số nguồn, sẽ rất hữu ích khi chỉ "đánh giá" nó.
Trong ngữ cảnh của Lisp, thao tác DOM sẽ giống như thao tác cấu trúc danh sách, ví dụ: tạo danh sách (màu cam) bằng cách thực hiện:
(cons 'orange '())
Và document.write () sẽ giống như đánh giá một chuỗi, ví dụ: tạo danh sách bằng cách đánh giá chuỗi mã nguồn như thế này:
(eval-string "(cons 'orange '())")
Lisp cũng có khả năng rất hữu ích để tạo mã bằng cách sử dụng thao tác danh sách (như sử dụng "kiểu DOM" để tạo cây phân tích cú pháp JS). Điều này có nghĩa là bạn có thể xây dựng cấu trúc danh sách bằng cách sử dụng "kiểu DOM", thay vì "kiểu chuỗi", rồi chạy mã đó, ví dụ như thế này:
(eval '(cons 'orange '()))
Nếu bạn triển khai các công cụ mã hóa, như các trình soạn thảo trực tiếp đơn giản, sẽ rất thuận tiện để có khả năng đánh giá nhanh một chuỗi, ví dụ như sử dụng document.write () hoặc .innerHTML. Lisp là lý tưởng theo nghĩa này, nhưng bạn cũng có thể làm những thứ rất tuyệt vời trong JS và nhiều người đang làm điều đó, như http://jsbin.com/