JavaScript for BASIC Programmers: Difference between revisions

From NSB App Studio
Jump to navigation Jump to search
No edit summary
No edit summary
Line 34: Line 34:
|-
|-
|<syntaxhighlight lang="vbnet">
|<syntaxhighlight lang="vbnet">
Dim a
Dim a(100)
</syntaxhighlight>||
<syntaxhighlight lang="javascript">
var a = [];
</syntaxhighlight>
|-
|<syntaxhighlight lang="vbnet">
a(1) = 1
</syntaxhighlight>||
</syntaxhighlight>||
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript">
var a;
a[1] = 1;
var b,c;
var d = 100;
</syntaxhighlight>
</syntaxhighlight>
|}
|}


Arrays use square brackets, not round.
Arrays use square brackets, not round.
Line 53: Line 57:
|-
|-
|<syntaxhighlight lang="vbnet">
|<syntaxhighlight lang="vbnet">
Dim a(100)
a = 100;
</syntaxhighlight>||
</syntaxhighlight>||
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript">
var a = [];
a = 100;
</syntaxhighlight>
</syntaxhighlight>
|-
|-
|<syntaxhighlight lang="vbnet">
|<syntaxhighlight lang="vbnet">
a(1) = 1
s = "Zaphod"
</syntaxhighlight>||
</syntaxhighlight>||
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript">
a[1] = 1;
s = "Zaphod";
s = 'Zaphod';
</syntaxhighlight>
</syntaxhighlight>
|}
|}

Revision as of 20:59, 26 July 2017

AppStudio's BASIC is modelled on Microsoft's Visual BASIC. It runs on other operating system by translating the BASIC to JavaScript, a language which is supported on all platforms.

JavaScript is a powerful and flexible programming language. It's the standard programming language of the web. It's also the subject of Atwood's Law: "Any application that can be written in JavaScript, will eventually be written in JavaScript."

When we designed our Translator, we were pleased to discover that almost everything in BASIC had a direct equivalent in JavaScript. Each BASIC statement could be turned into a JavaScript statement which did the same thing. (The reverse is not true: there are many features in JavaScript which do not have an equivalent in BASIC.)

This document isn't intended to teach you everything about JavaScript. It should give you enough of an introduction to get started and learn the basic forms of JavaScript.

Variable Types

JavaScript variables are not explicitly typed: they get their types from whatever is assigned to them. It's very similar to BASIC's Variant type.

Variables are declared with the VAR statement:

BASIC JavaScript
Dim a
var a;
var b,c;
var d = 100;

In JavaScript, you can declare multiple variables in one statement. You can also assign an initial value.

Arrays

BASIC JavaScript
Dim a(100)
var a = [];
a(1) = 1
a[1] = 1;

Arrays use square brackets, not round.

Assignment

BASIC JavaScript
a = 100;
a = 100;
s = "Zaphod"
s = "Zaphod";
s = 'Zaphod';

There is no real difference between the languages. Note that JavaScript statements end with a semicolon (";"), rather than the end of the line. You are therefore allowed to break up statements into multiple lines.

Strings can be surrounded by matched single or double quotes. This make is much easier to have embedded quotes in strings.

IF statements

BASIC JavaScript
If a = 1 Then b = 2
if (a == 1) b = 2;
If a = 1 Then
     b = 2
 End If
if (a == 1) {
    b = 2;
}
If a = 1 Then
    b = 2
Else
   c = 3
End If
if (a == 1) {
    b = 2;
} else {
    c = 3;
}

JavaScript uses curly braces to group the statements in the THEN and ELSE code. We'll see those curly braces used to group code in other places.

JavaScript uses different operators for assignment and to test equality. Assignment is a single =, while testing equality is ==.

Operators

Here is a list of BASIC operators and their JavaScript equivalents:

BASIC JavaScript Notes
= = Assignment
= == Are the two args equal?
<> != Are the two args unequal?
<, >, <=, >= <, >, <=, >= No difference
& + Concatenate two strings
Or || Logical Or
And && Logical Or
Not ! Logical not

For loops

BASIC JavaScript
For i = 1 to 10
    a(i) = i
Next
for (i=1; i<=10; i++){
    a[i] = i
}

JavaScript uses curly braces to group the statements in the THEN and ELSE code. We'll see those curly braces used to group code in other places.

JavaScript uses different operators for assignment and to test equality. Assignment is a single =, while testing equality is ==.

Statement Endings