2012-04-06 34 views
8

Từ khóa dành riêng char được sử dụng cho trong JavaScript (như khai báo kiểu là không cần thiết), và đặc biệt, cú pháp chính xác để sử dụng nó (ai đó có thể cho tôi một ví dụ đầy đủ thích hợp)?Từ khoá 'char' được sử dụng để làm gì?

Vì viết char c; ném lỗi giải thích nói missing ; before statement, ngay trước c?

+0

Lỗi bạn nhận được khi thực hiện 'char c' không phải là bất ngờ. Hãy thử 'blah c' và bạn sẽ nhận được một lỗi tương tự. Trong khi câu hỏi của bạn thực sự có một bối cảnh lịch sử trong trường hợp này (đó là những gì làm cho nó thú vị), tôi không nghĩ rằng đó là nguyên nhân của lỗi bạn nhận được. – Reid

Trả lời

15

Có rất nhiều từ khóa được đặt trước trong JavaScript được dành riêng cho việc sử dụng "trong tương lai". Họ không nhất thiết phải sử dụng hiện tại và mô tả.

MDN không liệt kê một số trong số họ có đặc biệt "trong tương lai sử dụng" tình trạng này ở đây: https://developer.mozilla.org/en/JavaScript/Reference/Reserved_Words (nhờ DCoder) và bạn cũng có thể đọc từ bài viết rằng:

Sau đây đều được bảo vệ như những từ khóa tương lai bằng đặc tả ECMAScript. Hiện tại, họ không có chức năng đặc biệt, nhưng chúng có thể ở một số thời điểm trong tương lai, vì vậy chúng không thể được sử dụng làm định danh. Các từ khóa này có thể không được sử dụng ở chế độ nghiêm ngặt hoặc không nghiêm ngặt.

Để mở rộng thêm một chút về lý do tại sao nó coi từ khóa được đặt ở một số nơi và ở một số nơi thì không. Đặc tả ECMAScript v3 đã bao gồm char làm từ khóa dành riêng, nhưng đặc tả ECMAScript v5 (bắt đầu là thông số phổ biến nhất) không bao gồm nó.

+2

Một liên kết đến danh sách các từ dành riêng đã nói không thể bị tổn thương. https://developer.mozilla.org/en/JavaScript/Reference/Reserved_Words – DCoder

+0

Tôi cảm thấy cần phải lưu ý rằng không phải tất cả các công cụ đều thực sự quan tâm đến việc sử dụng char. Offhand, tôi thấy v8, JägerMonkey, và Carakan không phàn nàn gì cả khi bạn chạy cái gì đó như 'var char = 5; ', nên họ không thực sự coi nó như một từ dành riêng.Danh sách khổng lồ của "tương lai dành riêng-từ" từ Java đã được ném ra trong ECMAScript 5, vì vậy tôi có một cảm giác IE (đặc biệt là IE6/IE7) có thể khiếu nại về 'var char = 5', mặc dù tôi không có một bản sao của nó trên máy tính này để kiểm tra nó. – Reid

+0

Ok, theo như tôi hiểu, trình soạn thảo notepad ++ của tôi đã nhận ra từ khóa char, nhưng firefox 11 và HTML 5 thì không, vì vậy chúng hoạt động như thể chúng không biết từ, như Reid nói. Vì vậy, nếu nó sẽ không được sử dụng bất kỳ, tôi sẽ cho đi của vấn đề đó sau đó, và tiếp tục tìm hiểu những gì làm việc ... – MrBrody

4

Cập nhật:

Cũng như @HoLyVieR chỉ ra và hiển thị trong ý kiến ​​dưới đây, char từ khóa được dành riêng để sử dụng trong tương lai. See this link for more information (Cảm ơn @djmadscribbler).


There is no reserved keyword char in JavaScript, bạn phải nhầm lẫn nó với reserved keyword char of Java instead.

+0

ECMAScript 3 dành tất cả các từ dành riêng cho Java và không phải mọi trình duyệt đều đã triển khai tiêu chuẩn ECMAScript 5 dưới dạng JavaScript. –

+0

Trên thực tế có http://en.wikibooks.org/wiki/JavaScript/Reserved_Words HoLyVieR có quyền - nó hiện không được sử dụng nhưng nó được dành riêng để sử dụng trong tương lai – djmadscribbler

+0

@djmadscribbler: Cảm ơn liên kết đó. Cập nhật câu trả lời với chi tiết :) – Sarfraz

2

Theo tài liệu ECMAscript (http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf phần 7.6.1) char không phải là từ dành riêng.

Tôi đoán nếu bạn thấy đó là một từ dành riêng ở đâu đó thì đó là một triển khai cụ thể.

http://jsfiddle.net/BCruP/

Chỉnh sửa: Trên tài liệu tham khảo là EMCAscript 5.

EMCAScript 3 (http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262,%203rd%20edition,%20December%201999.pdf) danh sách tài liệu char như một tương lai từ dành riêng, tuy nhiên, EMCAScript 5 dường như đã rớt khỏi danh sách.

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