Skip to content

Commit 876ba0c

Browse files
authored
Merge pull request #35 from javascript-tutorial/sync-47d18659
Sync with upstream @ 47d1865
2 parents bc5770a + a429134 commit 876ba0c

File tree

106 files changed

+329
-182
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

106 files changed

+329
-182
lines changed

1-js/01-getting-started/4-devtools/article.md

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,15 @@
2929
- এখানে এরর মেসেজটি লাল রঙে দেখতে পাচ্ছেন। এক্ষেত্রে স্ক্রিপ্টটিতে একটি অজানা "lalala" কমান্ড আছে।
3030
- ডানে `bug.html:12` সোর্সটির একটি ক্লিক-উপযোগী লিঙ্ক আছে, যে লাইনে ভুলটি হয়েছে সেই লাইন নাম্বার সহ।
3131

32-
এরর মেসেজটির নিচে নীল একটি `>` চিহ্ন আছে। এটি একটি "কমান্ড লাইন" নির্দেশ করে, যেখানে আপনি জাভাস্ক্রিপ্ট কমান্ড টাইপ করতে পারবেন। কমান্ডগুলো চালাতে `key:Enter` চাপুন। (মাল্টিলাইন কমান্ড দিতে `key:Shift+Enter` চাপতে হবে)
32+
এরর মেসেজটির নিচে নীল একটি `>` চিহ্ন আছে। এটি একটি "কমান্ড লাইন" নির্দেশ করে, যেখানে আপনি জাভাস্ক্রিপ্ট কমান্ড টাইপ করতে পারবেন। কমান্ডগুলো চালাতে `key:Enter` চাপুন।
3333

3434
এখন আমরা এরর দেখতে পাচ্ছি। আপাতত এইটুকুই চলবে। সামনে ডেভেলপার টুল আবার আসবে। <info:debugging-chrome> অধ্যায়ে ডিবাগিং নিয়ে গভীর আলোচনা হবে।
3535

36+
```smart header="Multi-line input"
37+
সাধারণভাবে যখন আপনি কনসোলে এক লাইন কোড দিয়ে `key:Enter` চাপেন, সেটা এক্সিকিউট হয়ে যায়।
38+
39+
একাধিক লাইন দিতে `key:Shift+Enter` চাপতে হয়। এভাবে বড় বড় জাভাস্ক্রিপ্ট কোড ইনপুট দেয়া যায়।
40+
```
3641

3742
## ফায়ারফক্স, এডজ্ ও অন্যান্য
3843

@@ -50,12 +55,6 @@ Preferences খুলে "Advanced" প্যানে যান. নিচে
5055

5156
এখন `key:Cmd+Opt+C` দিয়ে কনসোল টোগল করা যাব। আর খেয়াল করুন, "Develop" নামে টপ মেনুতে নতুন একটা আইটেম এসেছে। এটাতে অনেক কমান্ড ও অপশন আছে।
5257

53-
```smart header="Multi-line input"
54-
সাধারণভাবে যখন আপনি কনসোলে এক লাইন কোড দিয়ে `key:Enter` চাপেন, সেটা এক্সিকিউট হয়ে যায়।
55-
56-
একাধিক লাইন দিতে `key:Shift+Enter` চাপতে হয়। এভাবে বড় বড় জাভাস্ক্রিপ্ট কোড ইনপুট দেয়া যায়।
57-
```
58-
5958
## সারাংশ
6059

6160
- ডেভেলপার টুল আমাদের অনেককিছু করতে দেয়, যোমন কমান্ড চালানো, ভ্যারিয়েবল পরীক্ষা করা ইত্যাদি।

1-js/02-first-steps/05-types/article.md

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ message = 123456;
1010

1111
Programming languages that allow such things are called "dynamically typed", meaning that there are data types, but variables are not bound to any of them.
1212

13-
There are seven basic data types in JavaScript. Here, we'll cover them in general and in the next chapters we'll talk about each of them in detail.
13+
There are eight basic data types in JavaScript. Here, we'll cover them in general and in the next chapters we'll talk about each of them in detail.
1414

15-
## A number
15+
## Number
1616

1717
```js
1818
let n = 123;
@@ -62,14 +62,33 @@ Special numeric values formally belong to the "number" type. Of course they are
6262

6363
We'll see more about working with numbers in the chapter <info:number>.
6464

65-
## A string
65+
## BigInt
66+
67+
In JavaScript, the "number" type cannot represent integer values larger than <code>2<sup>53</sup></code> (or less than <code>-2<sup>53</sup></code> for negatives), that's a technical limitation caused by their internal representation. That's about 16 decimal digits, so for most purposes the limitation isn't a problem, but sometimes we need really big numbers, e.g. for cryptography or microsecond-precision timestamps.
68+
69+
`BigInt` type was recently added to the language to represent integers of arbitrary length.
70+
71+
A `BigInt` is created by appending `n` to the end of an integer literal:
72+
73+
```js
74+
// the "n" at the end means it's a BigInt
75+
const bigInt = 1234567890123456789012345678901234567890n;
76+
```
77+
78+
As `BigInt` numbers are rarely needed, we devoted them a separate chapter <info:bigint>.
79+
80+
```smart header="Compatability issues"
81+
Right now `BigInt` is supported in Firefox and Chrome, but not in Safari/IE/Edge.
82+
```
83+
84+
## String
6685

6786
A string in JavaScript must be surrounded by quotes.
6887

6988
```js
7089
let str = "Hello";
7190
let str2 = 'Single quotes are ok too';
72-
let phrase = `can embed ${str}`;
91+
let phrase = `can embed another ${str}`;
7392
```
7493

7594
In JavaScript, there are 3 types of quotes.
@@ -78,7 +97,7 @@ In JavaScript, there are 3 types of quotes.
7897
2. Single quotes: `'Hello'`.
7998
3. Backticks: <code>&#96;Hello&#96;</code>.
8099

81-
Double and single quotes are "simple" quotes. There's no difference between them in JavaScript.
100+
Double and single quotes are "simple" quotes. There's practically no difference between them in JavaScript.
82101

83102
Backticks are "extended functionality" quotes. They allow us to embed variables and expressions into a string by wrapping them in `${…}`, for example:
84103

@@ -102,12 +121,12 @@ alert( "the result is ${1 + 2}" ); // the result is ${1 + 2} (double quotes do n
102121
We'll cover strings more thoroughly in the chapter <info:string>.
103122

104123
```smart header="There is no *character* type."
105-
In some languages, there is a special "character" type for a single character. For example, in the C language and in Java it is `char`.
124+
In some languages, there is a special "character" type for a single character. For example, in the C language and in Java it is called "char".
106125
107126
In JavaScript, there is no such type. There's only one type: `string`. A string may consist of only one character or many of them.
108127
```
109128

110-
## A boolean (logical type)
129+
## Boolean (logical type)
111130

112131
The boolean type has only two values: `true` and `false`.
113132

@@ -198,6 +217,8 @@ typeof undefined // "undefined"
198217

199218
typeof 0 // "number"
200219

220+
typeof 10n // "bigint"
221+
201222
typeof true // "boolean"
202223

203224
typeof "foo" // "string"
@@ -223,12 +244,12 @@ The last three lines may need additional explanation:
223244
2. The result of `typeof null` is `"object"`. That's wrong. It is an officially recognized error in `typeof`, kept for compatibility. Of course, `null` is not an object. It is a special value with a separate type of its own. So, again, this is an error in the language.
224245
3. The result of `typeof alert` is `"function"`, because `alert` is a function. We'll study functions in the next chapters where we'll also see that there's no special "function" type in JavaScript. Functions belong to the object type. But `typeof` treats them differently, returning `"function"`. That's not quite correct, but very convenient in practice.
225246

226-
227247
## Summary
228248

229-
There are 7 basic data types in JavaScript.
249+
There are 8 basic data types in JavaScript.
230250

231-
- `number` for numbers of any kind: integer or floating-point.
251+
- `number` for numbers of any kind: integer or floating-point, integers are limited by ±2<sup>53</sup>.
252+
- `bigint` is for integer numbers of arbitrary length.
232253
- `string` for strings. A string may have one or more characters, there's no separate single-character type.
233254
- `boolean` for `true`/`false`.
234255
- `null` for unknown values -- a standalone type that has a single value `null`.
Lines changed: 1 addition & 1 deletion
Loading

1-js/03-code-quality/01-debugging-chrome/chrome-open-sources.svg

Lines changed: 1 addition & 1 deletion
Loading

1-js/03-code-quality/01-debugging-chrome/chrome-sources-breakpoint.svg

Lines changed: 1 addition & 1 deletion
Loading

1-js/03-code-quality/01-debugging-chrome/chrome-sources-debugger-trace-1.svg

Lines changed: 1 addition & 1 deletion
Loading

1-js/03-code-quality/02-coding-style/code-style.svg

Lines changed: 1 addition & 1 deletion
Loading

0 commit comments

Comments
 (0)