[Previous] [Next] [First] [Last]


JavaScript Language Specification

Prelminary Draft

Brendan Eich
C. Rand Mckinney

JavaScript 1.1
11/18/96

 Introduction

1.1 Implementation Versions
1.2 Grammar Notation
1.3 Example Programs
1.4 References

 Lexical Structure

2.1 Character Set
2.2 Lexical Translations
2.3 Line Terminators
2.4 Input Elements and Tokens
2.4.1 White Space
2.4.2 Comments
2.5 Keywords
2.6 Identifiers
2.7 Literals
2.7.1 Integer Literals
2.7.2 Floating-Point Literals
2.7.3 Boolean Literals
2.7.4 String Literals
2.7.5 Escape Sequences for String Literals
2.7.6 The Null Literal
2.8 Separators
2.9 Operators

 Types, Values, and Variables

3.1 Types
3.1.1 Type Names
3.1.2 Type Conversion
3.1.3 The toString method
3.1.4 The valueOf Method
3.2 Primitive Types and Values
3.2.1 Boolean Types and Values
3.2.2 Boolean Operations
3.2.3 Numeric Types and Values
3.2.4 Numeric Operations
3.2.4.1 Bitwise integer operations
3.2.5 The Undefined Type
3.3 Reference Types and Values
3.3.1 String Types and Operations
3.3.2 Object Types and Operations
3.3.2.1 The Null Object
3.3.3 Function Types
3.4 Variables
3.4.1 Variable Lifetime
3.4.2 Initial Values of Variables
3.5 Names
3.5.1 Scope Resolution
3.5.2 Declaration and Visibility
3.5.3 Hiding Names

 Expressions

4.1 Evaluation, Denotation and Result
4.2 Evaluation Order
4.3 Primary Expressions
4.3.1 Literals
4.3.2 this
4.4 Member Expressions
4.4.1 Property Expression Evaluation
4.4.2 Function Call Evaluation
4.4.2.1 Compute Target Reference
4.4.2.2 Evaluate Arguments
4.4.2.3 Locate Function to Call
4.5 Unary Expressions
4.5.1 Logical Complement Operator !
4.5.2 Bitwise Complement Operator ~
4.5.3 Unary Minus Operator -
4.5.4 Prefix Increment Operator ++
4.5.5 Prefix Decrement Operator --
4.5.6 Postfix Increment Operator ++
4.5.7 Postfix Decrement Operator --
4.5.8 The new operator
4.5.9 The delete operator
4.5.10 The typeof operator
4.5.11 The void operator
4.6 Multiplicative Operators
4.6.1 Multiplication Operator *
4.6.2 Division Operator /
4.6.3 Remainder Operator %
4.7 Additive Operators
4.7.1 String Concatenation Operator +
4.7.1.1 String Conversion
4.7.1.2 Examples of String Concatenation
4.7.2 Additive Operators (+ and -) for Numeric Types
4.8 Shift Operators
4.9 Relational Operators
4.9.1 String Comparison Operators
4.9.2 Numerical Comparison Operators
4.10 Equality Operators
4.10.1 Reference Equality Operators == and !=
4.10.2 String Equality Operators == and !=
4.10.3 Numerical Equality Operators == and !=
4.11 Bitwise Logical Operators
4.12 Conditional-And Operator
4.13 Conditional-Or Operator
4.14 Conditional Operator ? :
4.15 Assignment Operators
4.15.1 Simple Assignment Operator =
4.15.2 Compound Assignment Operators
4.16 Comma Operator

 Object Model

5.1 Functions
5.1.1 Definition
5.1.2 Call
5.1.3 The caller property
5.1.4 The arguments array
5.2 This
5.3 Constructor Functions
5.3.1 Object prototypes
5.3.2 Defining methods
5.4 Object Creation

 Statements

6.1 Normal and Abrupt Completion of Statements
6.2 Blocks
6.3 Variable Declaration Statements
6.4 Statements
6.4.1 The Empty Statement
6.4.2 The if Statement
6.4.3 The while Statement
6.4.3.1 Abrupt Completion
6.4.4 The for Statement
6.4.4.1 Initialization
6.4.4.2 Iteration
6.4.4.3 Abrupt Completion
6.4.5 The break Statement
6.4.6 The continue Statement
6.4.7 The return Statement
6.4.8 The with Statement
6.4.9 The for/in Statement
6.4.10 Function Definition Statement

 Built-in Functions and Objects

7.1 Built-in functions
7.1.1 eval
7.1.2 parseInt
7.1.3 parseFloat
7.1.4 escape
7.1.5 unescape
7.2 Array Object
7.2.1 Constructors
7.2.2 Properties
7.2.2.1 length
7.2.3 Methods
7.2.3.1 join
7.2.3.2 reverse
7.2.3.3 sort
7.3 Boolean Object
7.3.1 Constructors
7.3.2 Properties
7.3.3 Methods
7.4 Date Object
7.4.1 Constructors
7.4.2 Properties
7.4.3 Methods
7.4.3.1 parse
7.4.3.2 setDate
7.4.3.3 setHours
7.4.3.4 setMinutes
7.4.3.5 setMonth
7.4.3.6 setSeconds
7.4.3.7 setTime
7.4.3.8 setYear
7.4.3.9 toGMTString
7.4.3.10 toLocaleString
7.4.3.11 UTC
7.5 Math Object
7.5.1 Constructors
7.5.2 Properties
7.5.2.1 E
7.5.2.2 LN2
7.5.2.3 LN10
7.5.2.4 LOG2E
7.5.2.5 LOG10E
7.5.2.6 PI
7.5.2.7 SQRT1_2
7.5.2.8 SQRT2
7.5.3 Methods
7.5.3.1 abs
7.5.3.2 acos
7.5.3.3 asin
7.5.3.4 atan
7.5.3.5 atan2
7.5.3.6 ceil
7.5.3.7 cos
7.5.3.8 exp
7.5.3.9 log
7.5.3.10 max
7.5.3.11 min
7.5.3.12 pow
7.5.3.13 random
7.5.3.14 round
7.5.3.15 sin
7.5.3.16 sqrt
7.5.3.17 tan
7.6 Number Object
7.6.1 Constructors
7.6.2 Properties
7.6.2.1 MAX_VALUE
7.6.2.2 MIN_VALUE
7.6.2.3 NaN
7.6.3 Methods
7.7 String Object
7.7.1 Constructors
7.7.2 Properties
7.7.2.1 length
7.7.3 Methods
7.7.3.1 indexOf
7.7.3.2 lastIndexOf
7.7.3.3 substring
7.7.3.4 charAt
7.7.3.5 toLowerCase
7.7.3.6 toUpperCase
7.7.3.7 split

JavaScript LL(1) Grammar


[Previous] [Next] [First] [Last]