JavaScript:ثابت‌ها در جاوااسکریپت

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

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

JavaScript Const

ECMAScript 2015

ES2015 introduced two important new JavaScript keywords: let and const.

ورژن ES2015  جاوااسکریپت ، شامل دو کلمه کلیدی جدید بود : let و const .

Variables defined with const behave like let variables, except they cannot be reassigned:

متغیرهایی که با کلمه کلیدی const تعریف می شوند همانند متغیرهایی که با کلمه کلیدی let تعریف می شوند ، رفتار می کند به جز اینکه آنها را نمی توان از نو مقداردهی کرد :

مثال

const PI = 3.141592653589793;

PI = 3.14;      // This will give an error

PI = PI + 10;   // This will also give an error

Block Scope

ناحیه کد بلاک یا block scope

Declaring a variable with const is similar to let when it comes to Block Scope.

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

The x declared in the block, in this مثال, is not the same as the x declared outside the block:

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

مثال

var x = 10;

// Here x is 10

{

 const x = 2;

  // Here x is 2

}

// Here x is 10

You can learn more about Block Scope in the previous chapter: JavaScript Let.

شما می توانید مطالب بیشتری را در مورد ناحیه کد بلاک یا Block scope رادر فصل قبلی یعنی فصل کلمه کلیدی let در جاوااسکریپت بیابید .

Assigned when Declared

مقدار دهی در زمان تعریف

JavaScript const variables must be assigned a value when they are declared:

متغیرهایی که با کلمه کلیدی const تعریف می شوند می بایست در همان هنگام تعریفشان مقدار دهی شوند :

Incorrect

روش نادرست

const PI;

PI = 3.14159265359;

Correct

روش صحیح

const PI = 3.14159265359;

The keyword const is a little misleading.

کلمه کلیدی const کمی گمراه کننده است .

It does NOT define a constant value. It defines a constant reference to a value.

این کلمه یک مقدار ثابت را تعریف نمی کند . این کلمه موجب تعریف یک مرجع ثابت به یک مقدار می شود.

Because of this, we cannot change constant primitive values, but we can change the properties of constant objects.

به خاطر این امر ، ما نمی توانیم مقادیر primitive ثابت را تغییر دهیم ، اما می توانیم ویژگی های شی ثابت را تغییر دهیم .

Primitive Values

داده ها یا مقادیر primitive یا اولیه

If we assign a primitive value to a constant, we cannot change the primitive value: 

اگر ما یک ثابت را مقدار دهی اولیه کنیم ، ما نمی توانیم مقدار آن را تغییر دهیم :

مثال

const PI = 3.141592653589793;

PI = 3.14;      // This will give an error

PI = PI + 10;   // This will also give an error

Constant Objects can Change

شی های ثابت می توانند تغییر کنند.

You can change the properties of a constant object:

شما می توانید ویژگی های یک شی ثابت را تغییر دهید :

مثال

// You can create a const object:

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


// You can change a property:

car.color = "red";


// You can add a property:

car.owner = "Johnson";

But you can NOT reassign a constant object:

اما شما نمی توانید یک شی ثابت را از دوباره مقداردهی کنید :

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

car = {type:"Volvo", model:"EX60", color:"red"};    // ERROR

Constant Arrays can Change

ثابت های آرایه ای می توانند تغییر کنند

You can change the elements of a constant array:

شما می توانید عناصر یک ثابت آرایه ای را تغییر دهید :

مثال

// You can create a constant array:

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


// You can change an element:

cars[0] = "Toyota";


// You can add an element:

cars.push("Audi");

But you can NOT reassign a constant array:

اما شما نمی توانید یک ثابت آرایه ای را از نو مقدار دهی کنید :

مثال

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

cars = ["Toyota", "Volvo", "Audi"];    // ERROR

Browser Support

سازگاری با مرورگرها

The const keyword is not supported in Internet Explorer 10 or earlier.

کلمه کلیدی const در مرورگر اینترنت اکسپلور ورژن 10 و یا قدیمی تر پشتیبانی نمی شود.

The following table defines the first browser versions with full support for the const keyword:

جدول زیر اولین ورژنی از مرورگرها را به طور کامل از کلمه کلیدی Const پشتیبانی می کند را نمایش می دهد :

کروم Edge فایرفاکس سافاری اپرا
Chrome 49 IE / Edge 11 Firefox 36 Safari 10 Opera 36
مارس 2016 اکتبر 2013 فوریه 2015 سپتامبر 2016 مارس 2016


Redeclaring

از دوباره تعریف کردن

Redeclaring a JavaScript var variable is allowed anywhere in a program:

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

مثال

var x = 2;    //  Allowed

var x = 3;    //  Allowed

x = 4;        //  Allowed

Redeclaring or reassigning an existing var or let variable to const, in the same scope, or in the same block, is not allowed:

از دوباره تعریف کردن و یا از دوباره مقدار دهی کردن یک متغیر موجود که با کلمه کلیدی Var یا let تعریف شده است با یک ثابت یا const در ناحیه کد یا Scope مشترک و یا درون بلاک مشترک ، مجازنیست :

مثال

var x = 2;         // Allowed

const x = 2;       // Not allowed

{

  let x = 2;    // Allowed

  const x = 2;   // Not allowed

}

Redeclaring or reassigning an existing const variable, in the same scope, or in the same block, is not allowed:

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

مثال

const x = 2;       // Allowed

const x = 3;       // Not allowed

x = 3;            // Not allowed

var x = 3;         // Not allowed

let x = 3;         // Not allowed


{

  const x = 2;  // Allowed

  const x = 3;   // Not allowed

  x = 3;         // Not allowed

  var x = 3;     // Not allowed

  let x = 3;     // Not allowed

}

Redeclaring a variable with const, in another scope, or in another block, is allowed:

از دوباره تعریف کردن یک متغیر با کلمه کلیدی const در یک ناحیه یا Scope دیگر و یا درون بلاک دیگر نیز مجاز است :

مثال

const x = 2;       // Allowed


{

  const x = 3;  // Allowed

}


{

 const x = 4;   // Allowed

}

Hoisting

بالا بردن

Variables defined with var are hoisted to the top (if you don't know what Hoisting is, read our Hoisting Chapter).

متغیرهایی که با کلمه var تعریف می شوند به بالای اسکریپت hosite و یا منتقل می شوند . ( اگر شما نمی دانید که hositing چیست ، فصل Hositing یا جابه جایی را بخوانید .)

You can use a var variable before it is declared:

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

مثال

carName = "Volvo";    // You CAN use carName here

var carName;

Variables defined with const are not hoisted to the top.

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

A const variable cannot be used before it is declared:

یک متغیرثابت را نمی توان قبل از تعریف آن استفاده کرد :

مثال

carName = "Volvo";    // You can NOT use carName here

const carName = "Volvo";