JavaScript (sometimes
abbreviated JS) is a prototype-based
scripting language that is dynamic,
weakly typed
and has first-class functions. It is a multi-paradigm
language, supporting object-oriented, imperative, and functional programming styles.
JavaScript was formalized in the ECMAScript
language standard and is primarily used in the form of client-side JavaScript, implemented as
part of a Web browser
in order to create enhanced user
interfaces and dynamic websites. This enables programmatic access to computational
objects within a host environment.
Features
Imperative and structured
JavaScript supports much of the structured programming syntax from C (e.g.,if
statements, while loops, switch
statements, etc.). One partial exception is scoping: C-style block-level scoping is
not supported (instead, JavaScript has function-level scoping). JavaScript 1.7,
however, supports block-level scoping with the let
keyword. Like C, JavaScript makes a distinction between expressions and statements. One syntactic difference from
C is automatic semicolon insertion, in which the
semicolons that terminate statements can be omitted.Dynamic
dynamic typing
As in most scripting languages, types
are associated with values, not with variables. For example, a variable
x
could be bound to a number, then later rebound to a string. JavaScript supports various ways
to test the type of an object, including duck typing.
object based
JavaScript is almost entirely object-based.
JavaScript objects are associative
arrays, augmented with prototypes (see below). Object property names
are string keys:
obj.x = 10 and obj['x'] = 10
are equivalent, the dot notation being syntactic
sugar. Properties and their values can be added, changed, or deleted
at run-time. Most properties of an object (and those on its prototype
inheritance chain) can be enumerated using a for...in
loop. JavaScript has a small number of built-in objects such as Function
and Date.
run-time evaluation
JavaScript includes an
eval
function that can execute statements provided as strings at run-time.Functional
first-class functions
Functions
are first-class; they are objects themselves.
As such, they have properties and methods, such as
length
and call(); and they can be
assigned to variables, passed as arguments, returned by other functions, and
manipulated like any other object. Any reference to a function allows it to be
invoked using the () operator.
nested functions and closures
"Inner" or "nested"
functions are functions defined within another function. They are created each
time the outer function is invoked. In addition to that, each created function
forms a lexical closure: the lexical scope of the outer function, including
any constants, local variables and argument values, become part of the internal
state of each inner function object, even after execution of the outer function
concludes.
Prototype-based
prototypes
JavaScript uses prototypes instead of classes for inheritance. It is
possible to simulate many class-based features with prototypes in JavaScript.
functions as object constructors
Functions double as object constructors
along with their typical role. Prefixing a function call with
new
creates a new object and calls that function with its local this
keyword bound to that object for that invocation. The constructor's prototype
property determines the object used for the new object's internal prototype.
JavaScript's built-in constructors, such as Array,
also have prototypes that can be modified.
functions as methods
Unlike many object-oriented languages,
there is no distinction between a function definition and a method definition. Rather, the distinction
occurs during function calling; a function can be called as a method. When a
function is called as a method of an object, the function's local
this
keyword is bound to that object for that invocation.Miscellaneous
run-time environment
JavaScript typically relies on a
run-time environment (e.g. in a web browser)
to provide objects and methods by which scripts can interact with "the
outside world". In fact, it relies on the environment to provide the
ability to include/import scripts (e.g. HTML
<script>
elements). (This is not a language feature per se, but it is common in most
JavaScript implementations.)
variadic functions
An indefinite number of parameters can
be passed to a function. The function can access them through formal
parameters and also through the local
arguments
object.
array and object literals
Like many scripting languages, arrays
and objects (associative arrays in other languages) can each be created with a
succinct shortcut syntax. In fact, these literals
form the basis of the JSON
data format.
regular expressions
JavaScript also supports regular expressions in a manner similar to Perl, which provide a
concise and powerful syntax for text manipulation that is more sophisticated
than the built-in string functions.
Examples
Hello world! Javascript program
<!DOCTYPE html>
<html>
<body>
<h1>My First Web Page</h1>
<script>
document.write("<p>My First
JavaScript</p>");
</script>
</body>
</html>
Prompt box
<!DOCTYPE html>
<html>
<body>
<p>Click the button to demonstrate
the prompt box.</p>
<button
onclick="myFunction()">Try it</button>
<p id="demo"></p>
<script>
function myFunction()
{
var x;
var name=prompt("Please enter your
name","Line Focus");
if (name!=null)
{
x="Hello " + name + "! How are you today?";
document.getElementById("demo").innerHTML=x;
}
}
</script>
</body>
</html>
No comments:
Post a Comment