保留關鍵字

保留關鍵字(reserved word)指在高級語言中已經定義過的字,使用者不能再將這些字作為變數名或過程名使用。每種程式設計語言都規定了自己的一套保留關鍵字。

基本介紹

  • 中文名:保留關鍵字
  • 外文名:reserved word
  • 套用領域:資料庫,程式語言等
  • 特點:不能作為變數名或過程名
  • 涉及語言:C語言、JavaScript等
  • 語言間的區別:數量,定義規則均有區別
介紹,C語言,JavaScript,Windows,HTML,SQL Server,ODBC,將來的關鍵字,

介紹

每種程式設計語言都規定了自己的一套保留關鍵字。
例如:BASIC語言規定不能使用LIST作為變數名或過程名,因為LIST是一個BASIC語言專用於顯示記憶體程式的命令。
C語言有22+10 = 32個關鍵字。
C++ 有22+10+11+20 = 63 個關鍵字。
Java有22+ 9+ 17 = 48 個關鍵字。
下面將進一步舉例說明保留關鍵字在不同語言中的區別。

C語言

C89中(C語言標準)中,
  • 類型說明保留字:int,long,short,float,double,char,unsigned,signed,const,void,volatile,enum,struct,union
  • 語句定義保留字:if,else,goto,switch,case,do,while,for,continue,break,return,default,typedef
  • 存儲類說明保留字:auto,register,extern,static
  • 長度運算符保留字:sizeof
具體含義如下:
auto
指定變數的存儲類型,是默認值
break
跳出循環或switch語句
case
定義switch中的case子句
char
定義字元型變數或指針
const
定義常量或參數
continue
在循環語句中,回到循環體的開始處重新執行循環
default
定義switch中的default子句
do
定義do-while語句
double
定義雙精度浮點數變數
else
定義枚舉類型
enum
聲明外部變數或函式
extern
聲明外部變數或函式
float
定義浮點型變數或指針
for
定義for語句
goto
定義goto語句
if
定義if語句或if-else語句
int
定義整型變數或指針
long
定義長整型變數或指針
register
指定變數的存儲類型是暫存器變數,Turbo c中用自動變數代替
return
從函式返回
short
定義短整型變數或指針
signed
定義有符號的整型變數或指針
sizeof
獲取某種類型的變數或數據所占記憶體的大小,是運算符
static
指定變數的存儲類型是靜態變數,或指定函式是靜態函式
struct
定義結構體類型
switch
定義switch語句
typedef
為數據類型定義別名
union
定義無符號的整型或字元型變數或指針
unsigned
定義無符號的整型變數或數據
void
定義空類型變數或空類型指針,或指定函式沒有返回值
volatile
變數的值可能在程式的外部被改變
while
定義while或do-while語句

JavaScript

在 JavaScript 中,也有一些標識符是保留關鍵字,不能用作變數名或函式名。
JavaScript 標準
所有的現代瀏覽器完全支持 ECMAScript 3(ES3,JavaScript 的第三版,從 1999 年開始)。
ECMAScript 4(ES4)未通過。
ECMAScript 5(ES5,2009 年發布),是 JavaScript 最新的官方版本。
隨著時間的推移,我們開始看到,所有的現代瀏覽器已經完全支持 ES5。
JavaScript 保留關鍵字
Javascript 的保留關鍵字不可以用作變數、標籤或者函式名。有些保留關鍵字是作為 Javascript 以後擴展使用。(如下表)
abstract
arguments
boolean
break
byte
case
catch
char
class*
const
continue
debugger
default
delete
do
double
else
enum*
eval
export*
extends*
false
final
finally
float
for
function
goto
if
implements
import*
in
instanceof
int
interface
let
long
native
new
null
package
private
protected
public
return
short
static
super*
switch
synchronized
this
throw
throws
transient
true
try
typeof
var
void
volatile
while
with
yield
* 標記的關鍵字是 ECMAScript5 中新添加的。
JavaScript 對象、屬性和方法
應該避免使用 JavaScript 內置的對象、屬性和方法的名稱作為 Javascript 的變數或函式名:
Array
Date
eval
function
hasOwnProperty
Infinity
isFinite
isNaN
isPrototypeOf
length
Math
NaN
name
Number
Object
prototype
String
toString
undefined
valueOf
Java 保留關鍵字
JavaScript 經常與 Java 一起使用。應該避免使用一些 Java 對象和屬性作為 JavaScript 標識符:
getClass
java
JavaArray
javaClass
JavaObject
JavaPackage

Windows

JavaScript 可以在 HTML 外部使用。它可在許多其他應用程式中作為程式語言使用。
在 HTML 中,必須避免使用 HTML 和 Windows 對象和屬性的名稱作為 Javascript 的變數及函式名:
alert
all
anchor
anchors
area
assign
blur
button
checkbox
clearInterval
clearTimeout
clientInformation
close
closed
confirm
constructor
crypto
decodeURI
decodeURIComponent
defaultStatus
document
element
elements
embed
embeds
encodeURI
encodeURIComponent
escape
event
fileUpload
focus
form
forms
frame
innerHeight
innerWidth
layer
layers
link
location
mimeTypes
navigate
navigator
frames
frameRate
hidden
history
image
images
offscreenBuffering
open
opener
option
outerHeight
outerWidth
packages
pageXOffset
pageYOffset
parent
parseFloat
parseInt
password
pkcs11
plugin
prompt
propertyIsEnum
radio
reset
screenX
screenY
scroll
secure
select
self
setInterval
setTimeout
status
submit
taint
text
textarea
top
unescape
untaint
window

HTML

除此之外,應該避免使用 HTML 事件句柄的名稱作為 Javascript 的變數及函式名。
實例:
onblur
onclick
onerror
onfocus
onkeydown
onkeypress
onkeyup
onmouseover
onload
onmouseup
onmousedown
onsubmit

SQL Server

ADD
EXCEPT
PERCENT
ALL
EXEC
PLAN
ALTER
EXECUTE
PRECISION
AND
EXISTS
PRIMARY
ANY
EXIT
PRINT
AS
FETCH
PROC
ASC
FILE
PROCEDURE
AUTHORIZATION
FILLFACTOR
PUBLIC
BACKUP
FOR
RAISERROR
BEGIN
FOREIGN
READ
BETWEEN
FREETEXT
READTEXT
BREAK
FREETEXTTABLE
RECONFIGURE
BROWSE
FROM
REFERENCES
BULK
FULL
REPLICATION
BY
FUNCTION
RESTORE
CASCADE
GOTO
RESTRICT
CASE
GRANT
RETURN
CHECK
GROUP
REVOKE
CHECKPOINT
HAVING
RIGHT
CLOSE
HOLDLOCK
ROLLBACK
CLUSTERED
IDENTITY
ROWCOUNT
COALESCE
IDENTITY_INSERT
ROWGUIDCOL
COLLATE
IDENTITYCOL
RULE
COLUMN
IF
SAVE
COMMIT
IN
SCHEMA
COMPUTE
INDEX
SELECT
CONSTRAINT
INNER
SESSION_USER
CONTAINS
INSERT
SET
CONTAINSTABLE
INTERSECT
SETUSER
CONTINUE
INTO
SHUTDOWN
CONVERT
IS
SOME
CREATE
JOIN
STATISTICS
CROSS
KEY
SYSTEM_USER
CURRENT
KILL
TABLE
CURRENT_DATE
LEFT
TEXTSIZE
CURRENT_TIME
LIKE
THEN
CURRENT_TIMESTAMP
LINENO
TO
CURRENT_USER
LOAD
TOP
CURSOR
NATIONAL
TRAN
DATABASE
NOCHECK
TRANSACTION
DBCC
NONCLUSTERED
TRIGGER
DEALLOCATE
NOT
TRUNCATE
DECLARE
NULL
TSEQUAL
DEFAULT
NULLIF
UNION
DELETE
OF
UNIQUE
DENY
OFF
UPDATE
DESC
OFFSETS
UPDATETEXT
DISK
ON
USE
DISTINCT
OPEN
USER
DISTRIBUTED
OPENDATASOURCE
VALUES
DOUBLE
OPENQUERY
VARYING
DROP
OPENROWSET
VIEW
DUMMY
OPENXML
WAITFOR
DUMP
OPTION
WHEN
ELSE
OR
WHERE
END
ORDER
WHILE
ERRLVL
OUTER
WITH
ESCAPE
OVER
WRITETEXT
另外,SQL-92 標準還定義了保留關鍵字列表。不要使用 SQL-92 保留關鍵字作為對象名和標識符ODBC保留關鍵字列表(如下所示)與 SQL-92 保留關鍵字列表相同。
說明SQL-92 保留關鍵字列表有時可能比 SQL Server 限制更多,有時則限制更少。例如,SQL-92 保留關鍵字列表包含 INT,而 SQL Server 不需要將其區分為保留關鍵字。
Transact-SQL 保留關鍵字可用作資料庫或資料庫對象(如表、列、視圖等)的標識符或名稱。使用被引用的標識符或分隔標識符。對將保留關鍵字用作變數和存儲過程參數的名稱沒有限制。

ODBC

以下保留關鍵字用於 ODBC 函式調用。這些關鍵字根本不約束SQL 語法;然而,為確保與支持核心 SQL 語法的驅動程式兼容,應用程式應避免使用這些關鍵字。
下面是當前的 ODBC 保留關鍵字列表。有關更多信息,請參見《MicrosoftODBC 3.0 程式設計師參考》,第 2 卷,附錄 C。
ABSOLUTE
EXEC
OVERLAPS
ACTION
EXECUTE
PAD
ADA
EXISTS
PARTIAL
ADD
EXTERNAL
PASCAL
ALL
EXTRACT
POSITION
ALLOCATE
FALSE
PRECISION
ALTER
FETCH
PREPARE
AND
FIRST
PRESERVE
ANY
FLOAT
PRIMARY
ARE
FOR
PRIOR
AS
FOREIGN
PRIVILEGES
ASC
FORTRAN
PROCEDURE
ASSERTION
FOUND
PUBLIC
AT
FROM
READ
AUTHORIZATION
FULL
REAL
AVG
GET
REFERENCES
BEGIN
GLOBAL
RELATIVE
BETWEEN
GO
RESTRICT
BIT
GOTO
REVOKE
BIT_LENGTH
GRANT
RIGHT
BOTH
GROUP
ROLLBACK
BY
HAVING
ROWS
CASCADE
HOUR
SCHEMA
CASCADED
IDENTITY
SCROLL
CASE
IMMEDIATE
SECOND
CAST
IN
SECTION
CATALOG
INCLUDE
SELECT
CHAR
INDEX
SESSION
CHAR_LENGTH
INDICATOR
SESSION_USER
CHARACTER
INITIALLY
SET
CHARACTER_LENGTH
INNER
SIZE
CHECK
INPUT
SMALLINT
CLOSE
INSENSITIVE
SOME
COALESCE
INSERT
SPACE
COLLATE
INT
SQL
COLLATION
INTEGER
SQLCA
COLUMN
INTERSECT
SQLCODE
COMMIT
INTERVAL
SQLERROR
CONNECT
INTO
SQLSTATE
CONNECTION
IS
SQLWARNING
CONSTRAINT
ISOLATION
SUBSTRING
CONSTRAINTS
JOIN
SUM
CONTINUE
KEY
SYSTEM_USER
CONVERT
LANGUAGE
TABLE
CORRESPONDING
LAST
TEMPORARY
COUNT
LEADING
THEN
CREATE
LEFT
TIME
CROSS
LEVEL
TIMESTAMP
CURRENT
LIKE
TIMEZONE_HOUR
CURRENT_DATE
LOCAL
TIMEZONE_MINUTE
CURRENT_TIME
LOWER
TO
CURRENT_TIMESTAMP
MATCH
TRAILING
CURRENT_USER
MAX
TRANSACTION
CURSOR
MIN
TRANSLATE
DATE
MINUTE
TRANSLATION
DAY
MODULE
TRIM
DEALLOCATE
MONTH
TRUE
DEC
NAMES
UNION
DECIMAL
NATIONAL
UNIQUE
DECLARE
NATURAL
UNKNOWN
DEFAULT
NCHAR
UPDATE
DEFERRABLE
NEXT
UPPER
DEFERRED
NO
USAGE
DELETE
NONE
USER
DESC
NOT
USING
DESCRIBE
NULL
VALUE
DESCRIPTOR
NULLIF
VALUES
DIAGNOSTICS
NUMERIC
VARCHAR
DISCONNECT
OCTET_LENGTH
VARYING
DISTINCT
OF
VIEW
DOMAIN
ON
WHEN
DOUBLE
ONLY
WHENEVER
DROP
OPEN
WHERE
ELSE
OPTION
WITH
END
OR
WORK
END-EXEC
ORDER
WRITE
ESCAPE
OUTER
YEAR
EXCEPT
OUTPUT
ZONE
EXCEPTION

將來的關鍵字

以下關鍵字可能會保留在將來的版本中,作為將來要實現的新特性。注意,不要使用這些關鍵字作為標識符。
ABSOLUTE
FOUND
PRESERVE
ACTION
FREE
PRIOR
ADMIN
GENERAL
PRIVILEGES
AFTER
GET
READS
AGGREGATE
GLOBAL
REAL
ALIAS
GO
RECURSIVE
ALLOCATE
GROUPING
REF
ARE
HOST
REFERENCING
ARRAY
HOUR
RELATIVE
ASSERTION
IGNORE
RESULT
AT
IMMEDIATE
RETURNS
BEFORE
INDICATOR
ROLE
BINARY
INITIALIZE
ROLLUP
BIT
INITIALLY
ROUTINE
BLOB
INOUT
ROW
BOOLEAN
INPUT
ROWS
BOTH
INT
SAVEPOINT
BREADTH
INTEGER
SCROLL
CALL
INTERVAL
SCOPE
CASCADED
ISOLATION
SEARCH
CAST
ITERATE
SECOND
CATALOG
LANGUAGE
SECTION
CHAR
LARGE
SEQUENCE
CHARACTER
LAST
SESSION
CLASS
LATERAL
SETS
CLOB
LEADING
SIZE
COLLATION
LESS
SMALLINT
COMPLETION
LEVEL
SPACE
CONNECT
LIMIT
SPECIFIC
CONNECTION
LOCAL
SPECIFICTYPE
CONSTRAINTS
LOCALTIME
SQL
CONSTRUCTOR
LOCALTIMESTAMP
SQLEXCEPTION
CORRESPONDING
LOCATOR
SQLSTATE
CUBE
MAP
SQLWARNING
CURRENT_PATH
MATCH
START
CURRENT_ROLE
MINUTE
STATE
CYCLE
MODIFIES
STATEMENT
DATA
MODIFY
STATIC
DATE
MODULE
STRUCTURE
DAY
MONTH
TEMPORARY
DEC
NAMES
TERMINATE
DECIMAL
NATURAL
THAN
DEFERRABLE
NCHAR
TIME
DEFERRED
NCLOB
TIMESTAMP
DEPTH
NEW
TIMEZONE_HOUR
DEREF
NEXT
TIMEZONE_MINUTE
DESCRIBE
NO
TRAILING
DESCRIPTOR
NONE
TRANSLATION
DESTROY
NUMERIC
TREAT
DESTRUCTOR
OBJECT
TRUE
DETERMINISTIC
OLD
UNDER
DICTIONARY
ONLY
UNKNOWN
DIAGNOSTICS
OPERATION
UNNEST
DISCONNECT
ORDINALITY
USAGE
DOMAIN
OUT
USING
DYNAMIC
OUTPUT
VALUE
EACH
PAD
VARCHAR
END-EXEC
PARAMETER
VARIABLE
EQUALS
PARAMETERS
WHENEVER
EVERY
PARTIAL
WITHOUT
EXCEPTION
PATH
WORK
EXTERNAL
POSTFIX
WRITE
FLASE
PREFIX
YEAR
FIRST
PREORDER
ZONE
FLOAT
PREPARE

相關詞條

熱門詞條

聯絡我們