انواع داده‌ها در جاوااسکریپت

از ویکی کد
(تفاوت) → نسخهٔ قدیمی‌تر | نمایش نسخهٔ فعلی (تفاوت) | نسخهٔ جدیدتر ← (تفاوت)
پرش به ناوبری پرش به جستجو

https://www.w3schools.com/js/js_datatypes.asp


JavaScript variables can hold many data types: numbers, strings, objects and more:

متغیرها در جاوا اسکریپت می توانند داده های مختلفی را ذخیره کنند مانند اعداد ، متنها یا رشته ها (string) ، اشیا یا object و بسیاری دیگر :

var length = 16;                              // Number

var lastName = "Johnson";                     // String

var x = {firstName:"John", lastName:"Doe"};    // Object

محتویات

The Concept of Data Types

مفهوم انواع داده در زبان های برنامه نویسی

In programming, data types is an important concept.

در برنامه نویسی ، انواع داده ها مفهوم مهمی هستند .

To be able to operate on variables, it is important to know something about the type.

برای اینکه ما بتوانیم روی یک متغیر عملی را انجام دهیم ، امری مهم است که در مورد نوع آن متغیر اطلاعاتی داشته باشیم.

Without data types, a computer cannot safely solve this:

بدون انواع داده ها، یک کامپیوتر نمی تواند یک خط کد زیر را درک کند :

var x = 16 + "Volvo";

Does it make any sense to add "Volvo" to sixteen? Will it produce an error or will it produce a result?

آیا اینکه  کلمه "volvo"  با عدد 16 جمع شود ، مفهوم و معنی ای دارد ؟ آیا این عمل موجب بروز خطا می شود و یا این عمل نتیجه ای خواهد داشت ؟

JavaScript will treat the example above as:

زبان جاوا اسکریپت یک خط کد بالا را به صورت زیر در نظر میگیرد :

var x = "16" + "Volvo";

When adding a number and a string, JavaScript will treat the number as a string.

زمانی که شما یک عدد را با یک متن یا String جمع می کنید ، جاوا اسکریپت عدد را نیز به عنوان یک متن یا String در نظر می گیرد .

Example

var x = 16 + "Volvo";

Example

var x = "Volvo" + 16;

JavaScript evaluates expressions from left to right. Different sequences can produce different results:

جاوا اسکریپت کدها را از سمت چپ به راست اجرا می کند . نوشتن کد ها به صورت های متفاوت می تواند موجب نتایج متفاوتی شود :

JavaScript:

var x = 16 + 4 + "Volvo";

Result:

نتیجه :

20Volvo

JavaScript:

var x = "Volvo" + 16 + 4;

Result:

نتیجه :

Volvo164

In the first example, JavaScript treats 16 and 4 as numbers, until it reaches "Volvo".

در مثال اول ، جاوا اسکریپت عدد 16 و 4 را به عنوان یک نوع داده عددی در نظر می گیرد تا زمانی که به کلمه "Volvo" می رسد .

In the second example, since the first operand is a string, all operands are treated as strings.

در مثال دوم ، از آنجایی که عملوند اول عبارت یک رشته متنی یا String است تمامی سایر عملوند ها نیز از نوع متنی یا string در نظر گرفته می شوند .

JavaScript Types are Dynamic

انواع داده در جاوا اسکریپت ، پویا یا dynamic هستند .

JavaScript has dynamic types. This means that the same variable can be used to hold different data types:

جاوا اسکریپت انواع داده پویا Dynamic دارد . این بدان معناست که یک متغیر میتواند برای ذخیره انواع مختلفی از داده مورد استفاده قرار بگیرد :

Example

var x;           // Now x is undefined

x = 5;           // Now x is a Number

x = "John";      // Now x is a String

JavaScript Strings

داده های متنی یا String در جاوا اسکریپت

A string (or a text string) is a series of characters like "John Doe".

یک رشته (یا یک رشته متنی ) مجموعه از کاراکتر هاست که در کنار یک دیگر قرار گرفته اند همانند "John Doe"  .

Strings are written with quotes. You can use single or double quotes:

داده های متنی یا string با علامت تک کوتیشن ′ و یا دابل کوتیشن ″ نوشته می شوند . شما می توانید هم از تک کوتیشن ′ و هم از دابل کوتیشن ″ استفاده کنید :

Example

var carName1 = "Volvo XC60";   // Using double quotes

var carName2 = 'Volvo XC60';   // Using single quotes

You can use quotes inside a string, as long as they don't match the quotes surrounding the string:

شما می توانید از کوتیشن ها در درون یک رشته متنی یا String استفاده کنید البته فقط تا زمانی که کوتیشنی که استفاده می کنید با کوتیشنی که متن رشته ای شما در آن قرار گرفته ، یکسان نباشد :

Example

var answer1 = "It's alright";            // Single quote inside double quotes

var answer2 = "He is called 'Johnny'";    // Single quotes inside double quotes

var answer3 = 'He is called "Johnny"';    // Double quotes inside single quotes

You will learn more about strings later in this tutorial.

شما در مورد رشته های متنی یا String در فصول آینده در این آموزش مطالب بیشتری را خواهید آموخت .

JavaScript Numbers

اعداد در جاوا اسکریپت

JavaScript has only one type of numbers.

جاوا اسکریپت فقط یک نوع عدد را میشناسد .

Numbers can be written with, or without decimals:

اعداد می توانند به صورت اعشاری و یا بدون اعشار نوشته شوند :

Example

var x1 = 34.00;    // Written with decimals

var x2 = 34;       // Written without decimals

Extra large or extra small numbers can be written with scientific (exponential) notation:

اعداد بسیار بزرگ و یا اعداد بسیار کوچک را می تواند به صورت عدد علمی نوشت :

Example

var y = 123e5;      // 12300000

var z = 123e-5;     // 0.00123

You will learn more about numbers later in this tutorial.

شما در مورد نوع داده عددی در زبان جاوا اسکریپت در فصول آینده از این آموزش مطالب بیشتری را خواهید آموخت .

JavaScript Booleans

نوع داده ای Boolean یا بولین

Booleans can only have two values: true or false.

نوع داده ای بولین تنها می تواند دو مقدار داشته باشد : True یا false .

var x = 5;

var y = 5;

var z = 6;

(x == y)       // Returns true

(x == z)       // Returns false

Booleans are often used in conditional testing.

نوع داده ای بولین معمولا در شرط ها استفاده می شوند .

You will learn more about conditional testing later in this tutorial.

شما مطالب بیشتری را در مورد شرط ها در فصل های آینده از این آموزش خواهید آموخت .

JavaScript Arrays

آرایه ها در جاوا اسکریپت

JavaScript arrays are written with square brackets.

آرایه ها در جاوا اسکریپت درون براکت ها یا [] نوشته می شوند .

Array items are separated by commas.

عناصر یک آرایه توسط علامت ویرگول یا Comma از یک دیگر جدا می شوند .

The following code declares (creates) an array called cars, containing three items (car names):

تیکه کد زیر ، یک آرایه تعریف (میسازد) می کند که cars نام دارد و سه عضو ( نام اتومبیل ها ) دارد :

Example

var cars = ["Saab", "Volvo", "BMW"];

Array indexes are zero-based, which means the first item is [0], second is [1], and so on.

اندیس آرایه ها در جاوا اسکریپت از صفر شروع می شود ، این بدان معناست که آندیس اولین عضو صفر ، دومین عضو یک و بدین ترتیب تا آخرین عنصر آرایه ادامه دارد .

You will learn more about arrays later in this tutorial.

شما مطالب بیشتری را در مورد آرایه ها در فصول آینده از این آموزش خواهید آموخت.

JavaScript Objects

اشیا یا object ها در جاوا اسکریپت

JavaScript objects are written with curly braces {}.

اشیا یا object ها در جاوا اسکریپت درون علامت آکولاد {} نوشته می شوند .

Object properties are written as name:value pairs, separated by commas.

مقدار ویژگی های شی به صورت نام : مقدار یا name:value درون آکولاد نوشته می شوند و ویژگی های یک شی نیز به وسیله علامت ویرگول یا comma از یک دیگر جدا می شوند .

Example

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};

The object (person) in the example above has 4 properties: firstName, lastName, age, and eyeColor.

شی (فرد یا person) در مثال بالا ، دارای چهار ویژگی است : نام ، نام خانوادگی ، سن و رنگ چشم .

You will learn more about objects later in this tutorial.

شما مطالب بیشتری را در فصل های آینده در این مورد خواهید آموخت .

The typeof Operator

عملگر Typeof در جاوا اسکریپت

You can use the JavaScript typeof operator to find the type of a JavaScript variable.

شما می توانید از عملگر typeof جاوا اسکریپت برای پیدا نوع یک متغیر استفاده کنید .

The typeof operator returns the type of a variable or an expression:

عملگر typeof نوع یک متغیر و یا یک عبارت را به عنوان نتیجه برمیگرداند :

Example

typeof ""            // Returns "string"

typeof "John"         // Returns "string"

typeof "John Doe"     // Returns "string"

Example

typeof 0             // Returns "number"

typeof 314           // Returns "number"

typeof 3.14           // Returns "number"

typeof (3)           // Returns "number"

typeof (3 + 4)        // Returns "number"

Undefined

مقدار تعریف نشده یا undefined

In JavaScript, a variable without a value, has the value undefined. The type is also undefined.

در جاوا اسکریپت ، یک متغیر بدون مقدار ، مقدار undefined را به همراه دارد همچنین نوع این متغیر نیز undefined یا تعریف نشده ، در نظر گرفته می شود .

Example

var car;    // Value is undefined, type is undefine

Any variable can be emptied, by setting the value to undefined. The type will also be undefined.

هر متغیری می تواند با مقدار دهی به مقدار undefined یک متغیر خالی باشد . نوع این متغیر نیز در این صورت undefined خواهد بود .

Example

car = undefined;    // Value is undefined, type is undefined

Empty Values

مقادیرخالی

An empty value has nothing to do with undefined.

یک مقدار خالی با  مقدار undefined یا تعریف نشده برابر نیست .

An empty string has both a legal value and a type.

یک مقدار خالی از نوع رشته متنی یا String هر دو (هم متغیر و هم داده درون آن ) یک نوع داده صحیح دارند .

Example

var car = "";    // The value is "", the typeof is "string"

Null

مقدار هیچ یا null

In JavaScript null is "nothing". It is supposed to be something that doesn't exist.

در جاوا اسکریپت مقدار null ، به معنی "هیچی" است . از این مقدار زمانی استفاده می شود که چیزی وجود نداشته باشد .

Unfortunately, in JavaScript, the data type of null is an object.

متاسفانه در جاوا اسکریپت ، نوع داده ای مقدار null یک شی یا object است .

You can consider it a bug in JavaScript that typeof null is an object. It should be null.

شما می توانید این امر را که زمانی که دستور typeof null را می نویسید ، این عملگر مقدار object را به شما برمی گرداند را به عنوان یک باگ یا مشکل (bug) در نظر بگیرید . این عملگر می بایست مقدار null را به جای object به خروجی برگرداند .

Example

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};

person = null;   // Now value is null, but type is still an object

You can also empty an object by setting it to undefined:

همچنین ، شما میتوانید با مقداردهی یک شی یا object به مقدار undefined آن متغیر را خالی کنید .

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};

person = undefined;   // Now both value and type is undefined

Difference Between Undefined and Null

تفاوت بین undefined و null در جاوا اسکریپت

undefined and null are equal in value but different in type:

مقادیر undefined و null از نظر مقدار با یک دیگر برابرند ولی از نظر نوع داده با یک دیگر متفاوت اند :

typeof undefined           // undefined

typeof null               // object


null === undefined         // false

null == undefined          // true

Primitive Data

نوع داده primitive

A primitive data value is a single simple data value with no additional properties and methods.

یک داده از نوع primitive یک مقدار داده ساده  بدون هیچ گونه ویژگی یا متد اضافی است .

The typeof operator can return one of these primitive types:

عملگر typeof می تواند یکی از این نوع داده های primitive را به عنوان خروجی باز گرداند :

  • string
  • number
  • boolean
  • undefined

Example

typeof "John"              // Returns "string"

typeof 3.14                // Returns "number"

typeof true               // Returns "boolean"

typeof false               // Returns "boolean"

typeof x                  // Returns "undefined" (if x has no value)

Complex Data

مجموعه ای از داده ها در جاوا اسکریپت

The typeof operator can return one of two complex types:

عملگر typeof می تواند یکی از دو مجموعه داده را نیز به عنوان خروجی برگرداند :

  • function
  • object

The typeof operator returns "object" for objects, arrays, and null.

عملگر typeof برای object ها ، آرایه ها و مقدار null ، مقدار “object” را به عنوان خروجی باز میگرداند .

The typeof operator does not return "object" for functions.

عملوند typeof مقدار “object” را برای توابع به عنوان خروجی باز نمی گرداند .

Example

typeof {name:'John', age:34} // Returns "object"

typeof [1,2,3,4]             // Returns "object" (not "array", see note below)

typeof null                 // Returns "object"

typeof function myFunc(){}   // Returns "function"

The typeof operator returns "object" for arrays because in JavaScript arrays are objects.

عملگر typeof مقدار "object" را برای آرایه ها به عنوان خروجی باز میگرداند زیرا که در جاوا اسکریپت آرایه ها نوعی شی یا object هستند .

https://www.w3schools.com/js/js_functions.asp

JavaScript Functions

توابع در جاوا اسکریپت

A JavaScript function is a block of code designed to perform a particular task.

یک تابع جاوا اسکریپت بلاکی از کدهاست که برای انجام یک کار به خصوص ، طراحی شده اند .

A JavaScript function is executed when "something" invokes it (calls it).

یک تابع جاوا اسکریپت زمانی اجرا می شود که "چیزی" آن را اجرا کند ( فراخوانی کند ).

Example

function myFunction(p1, p2) {

  return p1 * p2;   // The function returns the product of p1 and p2

}

JavaScript Function Syntax

syntax یا شیوه تعریف توابع در جاوا اسکریپت

A JavaScript function is defined with the function keyword, followed by a name, followed by parentheses ().

یک تابع جاوا اسکریپت با کلمه کلیدی function شروع می شود که بعد از این کلمه کلیدی ، نام تابع قرار می گیرد و پس از نام نیز () قرار گرفته اند .

Function names can contain letters, digits, underscores, and dollar signs (same rules as variables).

نام توابع می تواند شامل حروف ، اعداد ، علامت زیر خط ( _ ) و علامت دلار باشد (همانند قوانینی که برای نام متغیرها وجود دارد . )

The parentheses may include parameter names separated by commas:

(parameter1, parameter2, ...)

پرانتز ها می توانند شامل نام پارامتر های تابع باشد که به وسیله علامت ویرگول یا Comma از یک دیگر جدا شده اند . (پارامتر 1 ، پارامتر دو )

The code to be executed, by the function, is placed inside curly brackets: {}

کدی که می بایست هنگام فراخوانی تابع اجرا شود ، درون آکولاد {} ها قرار میگیرد .

function name(parameter1, parameter2, parameter3) {

  // code to be executed

}

Function parameters are listed inside the parentheses () in the function definition.

لیست پارامتر های تابع هنگام تعریف تابع ،  درون پرانتز قرار می گیرند .

Function arguments are the values received by the function when it is invoked.

آرگومان های تابع ، مقادیری هستند که به هنگامی که تابع فراخوانی میشود به تابع پاس داده می شود .

Inside the function, the arguments (the parameters) behave as local variables.

درون یک تابع ، آرگومان ها (پارامترهای تابع) همانند متغیرهای محلی یا local رفتار می کنند .

A Function is much the same as a Procedure or a Subroutine, in other programming languages.

تابع ها در جاوا اسکریپت بسیار شبیه procedure ها و یا subroutine ها در سایر زبانهای برنامه نویسی هستند .

Function Invocation

اجرای تابع

The code inside the function will execute when "something" invokes (calls) the function:

کدی که درون یک تابع قرار دارد زمانی اجرا می شود که تابع اجرا (فراخوانی ) شود :

 When an event occurs (when a user clicks a button)

زمانی که یک رویداد رخ می دهد ( همانند زمانی که کاربر بر روی یک دکمه کلیک می کند )

 When it is invoked (called) from JavaScript code

زمانی که تابع توسط کد جاوا اسکریپت اجرا (فراخوانی) شود .

 Automatically (self invoked)

به صورت خودکار ( اجرای خودکار )

You will learn a lot more about function invocation later in this tutorial.

شما درمورد اجرای توابع در فصول آینده این آموزش مطالب بیشتری را خواهید آموخت .

If the function was invoked from a statement, JavaScript will "return" to execute the code after the invoking statement.

اگر تابع از یک عبارت فراخوانی شود ، جاوا اسکریپت پس از اجرای کامل عبارت ، باز میگردد تا تابع را اجرا کند .

Functions often compute a return value. The return value is "returned" back to the "caller":

توابع اغلب یک مقدار بازگشتی را محاسبه می کنند . مقدار بازگشتی به فراخوانی کننده باز میگرداند .

Example

Calculate the product of two numbers, and return the result:

var x = myFunction(4, 3);   // Function is called, return value will end up in x


function myFunction(a, b) {

  return a * b;             // Function returns the product of a and b

}

The result in x will be:

نتیجه یا همان مقدار X برابر خواهد بود با :

12

Why Functions?

چرا باید از توابع استفاده کنیم ؟

You can reuse code: Define the code once, and use it many times.

شما می توانید از کد خود چندین بار استفاده کنید : یک بار کد خود را بنویسید ، و چندین بار از آن استفاده کنید .

You can use the same code many times with different arguments, to produce different results.

شما می توانید از یک تکه کد چندین باربا آرگومانهای متفاوتی استفاده کنید تا نتایج متفاوتی را به دست آورید .

Example

Convert Fahrenheit to Celsius:

تبدیل فارنهایت به سلسیوس

function toCelsius(fahrenheit) {

  return (5/9) * (fahrenheit-32);

}

document.getElementById("demo").innerHTML = toCelsius(77);

The () Operator Invokes the Function

عملگر () موجب اجرای تابع می شود .

Using the example above, toCelsius refers to the function object, and toCelsius() refers to the function result.

درمثال بالا ، toCelsius به شی تابع اشاره می کند و toCelsius() به نتیجه تابع اشاره می کند .

Accessing a function without () will return the function definition instead of the function result:

فراخوانی یک تابع بدون () موجب می شود که کدهای درون تابع به جای نتیجه تابع به عنوان خروجی بازگردانده شود .

Example

function toCelsius(fahrenheit) {

  return (5/9) * (fahrenheit-32);

}

document.getElementById("demo").innerHTML = toCelsius;

Functions Used as Variable Values

استفاده از توابع همانند استفاده از مقادیر متغیرها است .

Functions can be used the same way as you use variables, in all types of formulas, assignments, and calculations.

توابع می توانند به همان روشی که شما از مقادیر متغیر ها استفاده می کنید در هر نوع از فرمولها ، مقداردهی ها و محاسبات استفاده شوند .

Example

Instead of using a variable to store the return value of a function:

به جای استفاده از یک متغیر برای ذخیره مقدار بازگشتی تابع همانند مثال زیر :

var x = toCelsius(77);

var text = "The temperature is " + x + " Celsius";

You can use the function directly, as a variable value:

شما می توانید فراخوانی تابع را به صورت مستقیم و همانند مقدار یک متغیر استفاده کنید :

var text = "The temperature is " + toCelsius(77) + " Celsius";

Local Variables

متغیر های محلی

Variables declared within a JavaScript function, become LOCAL to the function.

متغیرهایی که درون یک تابع در جاوا اسکریپت تعریف می شود ، به عنوان متغیر محلی یا local آن تابع شناخته می شوند .

Local variables can only be accessed from within the function.

از متغیرهای محلی ، در توابع مربوط به خودشان استفاده کرد .

Example

// code here can NOT use carName


function myFunction() {

 var carName = "Volvo";

 // code here CAN use carName

}


// code here can NOT use carName

Since local variables are only recognized inside their functions, variables with the same name can be used in different functions.

از آنجایی که متغیر های محلی تنها در توابع مربوط به خودشان قابل استفاده هستند ، شما می توانید از متغیرهای همنام در توابع متفاوت استفاده کنید .

Local variables are created when a function starts, and deleted when the function is completed.

متغیر های محلی زمانی ساخته می شوند که اجرای تابع شروع می شود ، و زمانی حذف می شوند که اجرای تابع به صورت کامل به اتمام رسیده باشد .

https://www.w3schools.com/js/js_objects.asp

JavaScript Objects

اشیا یا object در جاوا اسکریپت

Real Life Objects, Properties, and Methods

اشیای دنیای واقعی ، ویژگی ها و متدها

In real life, a car is an object.

در زندگی واقعی ، اتومبیل یک شیء است .

A car has properties like weight and color, and methods like start and stop:

یک اتومبیل ویژگی هایی مانند وزن و رنگ دارد ، و متدها یا رفتار هایی مانند روشن شدن و خاموش شدن دارد :

شیء ویژگی متد یا رفتار
car.name=fiat car.start()
car.model=500 car.drive()
car.weight=850kg car.brake()
car.color=white car.stop()

All cars have the same properties, but the property values differ from car to car.

اتومبیل ها ویژگی های یکسانی دارند ، اما مقادیر ویژگی ها در هر اتومبیل متفاوت از سایر اتومبیل هاست .

All cars have the same methods, but the methods are performed at different times.

تمامی اتومبیل ها رفتار ها یا متد های یکسانی دارند ، اما متدها در هر اتومبیل در زمانهای متفاوتی اجرا می شوند .

JavaScript Objects

اشیا در جاوا اسکریپت

You have already learned that JavaScript variables are containers for data values.

شما تا الان یاد گرفتید که متغیرها در جاوا اسکریپت محل هایی برای ذخیره انواع داده هستند .

This code assigns a simple value (Fiat) to a variable named car:

کد زیر ، یک متغیر با نام car را با مقدار ساده (fiat) مقدار دهی می کند :

var car = "Fiat";

Objects are variables too. But objects can contain many values.

شی ها هم متغیر هستند ، اما شی ها می توانند چندین مقدار داشته باشند .

This code assigns many values (Fiat, 500, white) to a variable named car:

کد زیر یک متغیر با نام car را با  چندین مقدار (fiat ، 500 ، سفید یا White ) مقدار دهی می کند .

var car = {type:"Fiat", model:"500", color:"white"};

The values are written as name:value pairs (name and value separated by a colon).

این مقادیر به صورت نام : مقدار یا name:value نوشته می شوند ( نام و مقدار به وسیله یک : از یک دیگر جدا می شوند . )

JavaScript objects are containers for named values called properties or methods.

شی ها در جاوا اسکریپت محلی برای ذخیره ی مقادیر نام دار که ویژگی یا properties یا متد یا رفتار نامیده می شوند ، استفاده می شود .

Object Definition

تعریف شی در جاوا اسکریپت

You define (and create) a JavaScript object with an object literal:

شما می توانید یک شی را همانند مثال زیر  تعریف کنید . ( و یا بسازید )

Example

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};

Spaces and line breaks are not important. An object definition can span multiple lines:

فاصله های خالی و فاصله بین خطوط در هنگام تعریف شی در جاوا اسکریپت اهمیتی ندارند . تعریف شی می تواند در چندین خط صورت بپذیرد :

Example

var person = {

  firstName: "John",

  lastName: "Doe",

 age: 50,

 eyeColor: "blue"

};

Object Properties

ویژگی های اشیاء

The name:values pairs in JavaScript objects are called properties:

در جاوا اسکریپت به ترکیب مقادیر به صورت نام : مقدار یا name:value ، ویژگی گفته می شود :

ویژگی مقدار ویژگی
Firstname یا نام John
Lastname یا نام خانوادگی Doe
Age یا سن 50
Eyecolor یا رنگ چشم آبی

Accessing Object Properties

دسترسی به ویژگی های یک شی

A method is a function stored as a property.

یک متد یک تابع است که به صورت یک ویژگی ذخیره شده است .

Example

var person = {

  firstName: "John",

  lastName : "Doe",

  id       : 5566,

  fullName : function() {

   return this.firstName + " " + this.lastName;

 }

};

The this Keyword

کلمه کلیدی this

In a function definition, this refers to the "owner" of the function.

در یک تابع ، کلمه کلیدی this به "صاحب" تابع اشاره دارد .

In the example above, this is the person object that "owns" the fullName function.

در مثال بالا ، this به شی person اشاره دارد که صاحب تابع fullname است .

In other words, this.firstName means the firstName property of this object.

به معنای دیگر ، this.firstname به این معنی است که firstname ویژگی ای از این شی است .

Read more about the this keyword at JS this Keyword.

شما می توانید مطالب بیشتری را در مورد کلمه کلیدی this در فصل کلمه کلیدی this بخوانید .

Accessing Object Methods

دسترسی به متدها یا رفتار های یک شی

You access an object method with the following syntax:

شما می توانید به متد یک شی به شیوه یا Syntax زیر دسترسی پیدا کنید:

objectName.methodName()

Example

name = person.fullName();

If you access a method without the () parentheses, it will return the function definition:

اگرشما از یک متد بدون پرانتز () استفاده کنید ، این امرموجب خواهد شد تا کدهای تابع به عنوان خروجی به شما بازگردانده شود .

Example

name = person.fullName;

Do Not Declare Strings, Numbers, and Booleans as Objects!

رشته های متنی ، اعداد و یا بولین ها را به صورت شی تعریف نکنید . !

When a JavaScript variable is declared with the keyword "new", the variable is created as an object:

زمانی که شما یک متغیر در جاوا اسکریپت را با کلمه کلیدی "new" تعریف می کنید ، این متغیر به صورت یک شی یا object تعریف می شود :

var x = new String();        // Declares x as a String object

var y = new Number();        // Declares y as a Number object

var z = new Boolean();       // Declares z as a Boolean object

Avoid String, Number, and Boolean objects. They complicate your code and slow down execution speed.

بهتر است که از تعریف اشیای از نوع رشته ای یا متنی ، از نوع عددی و یا بولین جلوگیری کنید  . این امر موجب پیچیده تر شدن کد شما می شود و سرعت اجرای کد شما را نیز می کاهد .

You will learn more about objects later in this tutorial.

شما در فصول آینده مطالب بیشتری را در مورد اشیا در این آموزش خواهید آموخت .

https://www.w3schools.com/js/js_events.asp

JavaScript Events

رویداد ها در جاوا اسکریپت

HTML events are "things" that happen to HTML elements.

رویداد html "چیزهایی" است که برای عناصر html ای اتفاق می افتد.

When JavaScript is used in HTML pages, JavaScript can "react" on these events.

زمانی که شما از جاوا اسکریپت درون صفحات html استفاده می کنید ، جاوا اسکریپت می تواند این رویداد ها را "مدیریت" کند .

HTML Events

رویداد ها در html

An HTML event can be something the browser does, or something a user does.

یک رویداد در html می تواند کاری باشد که مرورگر انجام می دهد و یا کاری باشد که یک کاربر انجام می دهد .

Here are some examples of HTML events:

در زیر می توانید مثالهایی از رویداد ها در html را ببینید :

  An HTML web page has finished loading

زمانی که بارگذاری یک صفحه html به طور کامل به پایان می رسد .

  An HTML input field was changed

زمانی که یک فیلد ورود داده یا input field تغییر می کند .

  An HTML button was clicked

زمانی که بر روی یک دکمه html ای کلیک می شود .

Often, when events happen, you may want to do something.

اغلب ، زمانی که یک رویداد رخ می دهد ، شما می خواهید یک کاری را انجام دهید .

JavaScript lets you execute code when events are detected.

جاوا اسکریپت به شما این اجازه را می دهد که کد های خود را زمانی که رویدادهای مد نظر شما اتفاق افتاد ، اجرا کنید .

HTML allows event handler attributes, with JavaScript code, to be added to HTML elements.

Html اجازه می دهد که به وسیله ی کد های جاوا اسکریپت ، شما بتوانید رویداد هایی را که روی عناصر html اتفاق می افتد را مدیریت کنید .

With single quotes:

با علامت تک کوتیشن یا ′ :

<element event='some JavaScript'>

With double quotes:

با دو کوتیشن یا ″ :

<element event="some JavaScript">

In the following example, an onclick attribute (with code), is added to a <button> element:

در مثال زیر ، ویژگی onclick (با کد ) به یک عنصر <button> در html اضافه شده است :

Example

<button onclick="document.getElementById('demo').innerHTML = Date()">The time is?</button>

In the example above, the JavaScript code changes the content of the element with id="demo".

در مثال بالا، کد جوا اسکریپت محتوای عنصر را که شناسه یا id آن برابر است با کلمه "demo" را تغییر می دهد .

In the next example, the code changes the content of its own element (using this.innerHTML):

در مثال بعدی ، کد ما محتوای عنصر html مربوط به خود را با استفاده از دستور this.innerHTML را تغییر می دهد :

Example

<button onclick="this.innerHTML = Date()">The time is?</button>

JavaScript code is often several lines long. It is more common to see event attributes calling functions:

کد های جاوا اسکریپت معمولا طولانی و در چندین خط نوشته می شود . فراخوانی توابع در ویژگی event عنصر بسیار روش مناسبتری است :

Example

<button onclick="displayDate()">The time is?</button>

Common HTML Events

رویداد های پر استفاده html

Here is a list of some common HTML events:

در اینجا می توانید لیستی از رویداد های پر استفاده در html را ببینید:

رویداد توضیحات
Onchange زمانی که یک عنصر html تغییر می کند .
Onclick زمانی که کاربر بر روی یک عنصر html کلیک می کند .
Onmouseover زمانی که کاربر موس خود را روی یک عنصر html می برد .
Onmouseout زمانی که کاربر موس خود را از روی یک عنصرhtml خارج می کند .
Onkeydown زمانی که کاربر یک کلید از کیبرد را می فشارد .
Onload زمانی که بارگذاری صفحه به طور کامل پایان می پذیرد .

The list is much longer: W3Schools JavaScript Reference HTML DOM Events.

رویداد های بسیاری وجود دارند ،شما می توانید لیست کامل این رویداد ها را در لینک روبه رو ببینید :

What can JavaScript Do?

جاوا اسکریپت چه کاری می تواند انجام دهد ؟

Event handlers can be used to handle, and verify, user input, user actions, and browser actions:

رویداد ها می توانند برای مدیریت و بررسی صحت و سقم مواردی همچون ، داده ای که کاربر به عنوان ورودی وارد می کند ، کارهایی که کاربر و مرورگر انجام می دهند  استفاده شوند .

 Things that should be done every time a page loads

کارهایی که باید هر دفعه که صفحه بارگذاری شد ، انجام شوند .

 Things that should be done when the page is closed

کارهایی که می بایست زمانی که صفحه بسته شد ، انجام شوند .

 Action that should be performed when a user clicks a button

عملی که می بایست زمانی که کاربر روی یک دکمه کلیک می کند انجام شود .

 Content that should be verified when a user inputs data

محتوایی که می بایست زمانی که کاربر داده ورودی خود را وارد می کند ، بررسی شود.

 And more ...

و ...

Many different methods can be used to let JavaScript work with events:

روشهای گوناگونی می توانند استفاده شوند تا به جاوا اسکریپت این اجازه را بدهد که با رویداد ها کار کند :

 HTML event attributes can execute JavaScript code directly

ویژگی رویداد یا event در html می تواند کد های جاوا  اسکریپت را به صورت مستقیم اجرا کند.

 HTML event attributes can call JavaScript functions

ویژگی رویداد یا event در html می تواند توابع جاوا اسکریپت را فراخوانی کند .

 You can assign your own event handler functions to HTML elements

شما می توانید مدیریت  کننده رویداد یا event handler خود را به عناصر html اضافه کنید .

 You can prevent events from being sent or being handled

شما می توانید از رخ دادن رویداد ها و یا مدیریت آنها جلوگیری کنید .

You will learn a lot more about events and event handlers in the HTML DOM chapters.

شما مطالب بیشتری را در مورد رویداد ها و مدیریت کننده رویداد ها در فصل html doc خواهید آموخت .

https://www.w3schools.com/js/js_strings.asp

JavaScript Strings

رشته های متنی یا string در جاوا اسکریپت

JavaScript strings are used for storing and manipulating text.

رشته های متنی در جاوا اسکریپت برای ذخیره و ویرایش متن ها استفاده میشوند .

JavaScript Strings

رشته ها در جاوا اسکریپت

A JavaScript string is zero or more characters written inside quotes.

یک رشته متنی در جاوا اسکریپت صفر و یا کاراکتر های بیشتری را در زمانی که داخل کوتیشن نوشته می شود در بر میگیرد .

Example

var x = "John Doe";

You can use single or double quotes:

شما می توانید از تک کوتیشن ′ و یا دو کوتیشن ″ استفاده کنید :

Example

var carName1 = "Volvo XC60";  // Double quotes

var carName2 = 'Volvo XC60';  // Single quotes

You can use quotes inside a string, as long as they don't match the quotes surrounding the string:

شما می توانید از کوتیشن ها درون یک رشته متنی استفاده کنید البته به شرطی که کوتیشنی که درون رشته متنی استفاده می کنید با کوتیشنی که رشته متنی درون قرار گرفته همخوانی نداشته باشد :

Example

var answer1 = "It's alright";

var answer2 = "He is called 'Johnny'";

var answer3 = 'He is called "Johnny"';

String Length

طول یک رشته متنی یا String

To find the length of a string, use the built-in length property:

برای پیدا کردن طول یک رشته متنی ، از ویژگی length استفاده کنید :

Example

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

var sln = txt.length;

Escape Character

Escape کردن کاراکترها

Because strings must be written within quotes, JavaScript will misunderstand this string:

زیرا که رشته های متنی می بایست درون کوتیشن ها نوشته شوند ، جاوا اسکریپت رشته متنی زیر را درست درک نمی کند :

var x = "We are the so-called "Vikings" from the north.";

The string will be chopped to "We are the so-called ".

رشته متنی فوق به "We are the so-called " خلاصه خواهد شد .

The solution to avoid this problem, is to use the backslash escape character.

راه حل این مشکل استفاده از علامت بک اسلش یا \ قبل از کاراکتر است .

The backslash (\) escape character turns special characters into string characters:

کاراکتر بک اسلش یا \ موجب می شود که کاراکترهای به خصوص همانند کوتیشن به کاراکتر های متنی یا رشته ای تبدیل شوند :

کد نتیجه توضیحات
\′ تک کوتیشن
\’’ دو کوتیشن
\\ \ بک اسلش

The sequence \"  inserts a double quote in a string:

عبارت \″ موجب ایجاد دو کوتیشن یا ″ در یک رشته متنی می شود :

Example

var x = "We are the so-called \"Vikings\" from the north.";

The sequence \'  inserts a single quote in a string:

عبارت  \′ موجب ایجاد تک کوتیشن یا ′ در یک رشته متنی می شود :

Example

var x = 'It\'s alright.';

The sequence \\ inserts a backslash in a string:

عبارت \\ یک بک اسلش درون یک رشته متنی ایجاد می کند :

Example

var x = "The character \\ is called backslash.";

Six other escape sequences are valid in JavaScript:

شش عبارت معتبر دیگر برای تبدیل کاراکترها در جاوا اسکریپت :

کد نتیجه
\b ایجاد بک اسلش در رشته متنی
\f ایجاد formfeed
\n ایجاد خط جدید
\r حذف یک کاراکتر
\t ایجاد یک تب یا فاصله افقی
\v ایجاد یک فاصله عمودی

The 6 escape characters above were originally designed to control typewriters, teletypes, and fax machines. They do not make any sense in HTML.

شش کاراکتر بالا برای کنترل ماشین های تحریر ، ماشین های ترجمه و دستگاه فکس طراحی شده اند . آنها نقشی در html ندارند .

Breaking Long Code Lines

کوچکتر کردن کد های طولانی

For best readability, programmers often like to avoid code lines longer than 80 characters.

برای رسیدن به بیشترین خوانایی ، برنامه نویس ها اغلب دوست دارند که طول کد هایشان در هر خط بیشتر از 80 کاراکتر نباشد .

If a JavaScript statement does not fit on one line, the best place to break it is after an operator:

اگر یک خط کد جاوا اسکریپت درون یک خط کد جا نشود ، بهترین روش این است که آن را بعد از یک عملگر به دو خط تقسیم کنیم:

Example

document.getElementById("demo").innerHTML =

"Hello Dolly!";

You can also break up a code line within a text string with a single backslash:

شما همچنین می توانید درون یک رشته متنی به وسیله یک بک اسلش یک خط خالی ایجاد کنید:

Example

document.getElementById("demo").innerHTML = "Hello \

Dolly!";

The \ method is not the preferred method. It might not have universal support.

استفاده از بک اسلش یا \ دیگر روش مناسبی نیست . این روش دیگر پشتیبانی نمی شود .

Some browsers do not allow spaces behind the \ character.

برخی از مرورگر ها اجازه استفاده از فضای خالی پشت کاراکتر \ را نمی دهند .

A safer way to break up a string, is to use string addition:

راه بهتری که برای ایجاد فاصله در رشته متنی وجود دارد ، استفاده از جمع رشته ها است :

Example

document.getElementById("demo").innerHTML = "Hello " +

"Dolly!";

You cannot break up a code line with a backslash:

شما نمی توانید به وسیله ی \ بین کد ها فاصله ایجاد کنید :

Example

document.getElementById("demo").innerHTML = \

"Hello Dolly!";

Normally, JavaScript strings are primitive values, created from literals:

به صورت نرمال، رشته های متنی در جاوا اسکریپت از نوع primitive هستند که از عبارتهای ساده شاخته شده است :

var firstName = "John";

But strings can also be defined as objects with the keyword new:

اما رشته های متنی می توانند به صورت یک شی نیز به وسیله ی کلمه کلیدی new تعریف شوند :

var firstName = new String("John");

Example

var x = "John";

var y = new String("John");


// typeof x will return string

// typeof y will return object

Don't create strings as objects. It slows down execution speed.

The new keyword complicates the code. This can produce some unexpected results:

رشته های متنی را به صورت شی تعریف نکنید . این کار موجب کاهش سرعت اجرای کد شما می شود. کلمه کلیدی new نیز موجب پیچیده تر شدن کد شما می شود . این امر می تواند موجب بروز برخی از نتایج ناخواسته نیز شود:

When using the == operator, equal strings are equal:

زمانی که از عملگر ==استفاده می کنید ، رشته های برابر ، با یک دیگر برابرند :

Example

var x = "John";            

var y = new String("John");


// (x == y) is true because x and y have equal values

When using the === operator, equal strings are not equal, because the === operator expects equality in both type and value.

زمانی که از عملگر === استفاده می کنید ، رشته های برابر با یک دیگر برابر نیستند ، زیرا که عملگر === برابری عملوند های خود را در هم مقدار آنها و هم نوع آنها بررسی می کند .

Example

var x = "John";            

var y = new String("John");


// (x === y) is false because x and y have different types (string and object)

Or even worse. Objects cannot be compared:

و یا این کار می تواند نتایج بدتری نیز داشته باشد . شی ها در جاوا اسکریپت نمی توانند با یک دیگر مقایسه شوند :

Example

var x = new String("John");            

var y = new String("John");


// (x == y) is false because x and y are different objects

Example

var x = new String("John");            

var y = new String("John");


// (x === y) is false because x and y are different objects

Note the difference between (x==y) and (x===y).

به تفاوت بین (x==y) و (x===y) توجه کنید .

Comparing two JavaScript objects will always return false.

نتیجه مقایسه دو شی در جاوا اسکریپت همیشه False خواهد بود .