متخصصین علوم رایانه کشور

Learning MEAN Framework
متخصصین علوم رایانه کشور
۱۲
آبان

Functions are Objects

The typeof operator in JavaScript returns "function" for functions.

But, JavaScript functions can best be described as objects.

JavaScript functions have both properties and methods.

The arguments.length property returns the number of arguments received when the function was invoked:


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

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

در زبان جاوا اسکریپت، توابع می توانند Property و Method داشته باشند.

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


function myFunction(a, b) {
    return arguments.length;
}


The toString() method returns the function as a string:


در صورتی که در داخل سورس کد، بعد از نام تابع و یا متغیری که تابع را در داخل آن ذخیره کرده اید، از تابع toString استفاده نمایید، می توانید، کل قسمت مربوط به تعریف تابع را به صورت متنی بدست آورید.


function myFunction(a, b) {
    return a * b;
}

var txt = myFunction.toString();


A function defined as the property of an object, is called a method to the object.
A function designed to create new objects, is called an object constructor.


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

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


این مطلب هنوز در حال تکمیل می باشد!

مرجع: http://www.W3Schools.com

  • داریوش تصدیقی
۱۰
آبان

JavaScript Function Definitions

JavaScript functions are defined with the function keyword.


توابع جاوا اسکریپت با کلیدواژه function تعریف می شوند.


You can use a function declaration or a function expression.


شما می توانید یا از تکنیک Declaration و یا Expression برای تعاریف توابع استفاده نمایید.


Function Declarations


Functions are declared with the following syntax:

تعریف توابع به شکل ذیل را Function Declarations می گویند:

function functionName(parameters) {
  code to be executed
}

Declared functions are not executed immediately. They are "saved for later use", and will be executed later, when they are invoked (called upon).

زمانی که شما توابعی را تعریف می کنید، در همان لحظه اجرا نمی شوند. آنها صرفا برای استفاده های آتی ذخیره می گردند، زمانی اصطلاحا آنها را اجرا (Invoke) می کنید.

function myFunction(a, b) {
    return a * b;
}

Semicolons are used to separate executable JavaScript statements.
Since a function declaration is not an executable statement, it is not common to end it with a semicolon.

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

Function Expressions

A JavaScript function can also be defined using an expression.

A function expression can be stored in a variable:

توابع می توانند به شکل Expression تعریف شوند. در این حالت (به شکل ذیل)، ما متغیری را تعریف کرده و یک تابع را به آن Assign می کنیم:


var x = function (a, b) {return a * b};


After a function expression has been stored in a variable, the variable can be used as a function:


بعد از اینکه تابع به صورت Expression تعریف گردید و ما تابع را در داخل یک متغیر (x) ذخیره کردیم، می توان از متغیر x به صورت یک تابع استفاده کرد. بدین معنی که وقتی متغیر x را فرآخوانی می کنیم، مانند این است که تابع ذخیره شده در آن را فرآخوانی می کنیم.


var x = function (a, b) {return a * b};
var z = x(43);


The function above is actually an anonymous function (a function without a name).

Functions stored in variables do not need function names. They are always invoked (called) using the variable name.

The function above ends with a semicolon because it is a part of an executable statement.

به تابعی که بدون نام، و به شکل فوق تعریف می شود، اصطلاحا Anonymous Function می گویند.

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

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

The Function() Constructor


As you have seen in the previous examples, JavaScript functions are defined with the function keyword.

Functions can also be defined with a built-in JavaScript function constructor called Function().


همچنانکه در مثال های قبل ملاحظه کردید، توابع جاوا اسکریپت با کلید واژه function تعریف می شوند.

توابع همچنین می توانند توسط یک تابع سازنده از پیش تعریف شده به نام ()Function نیز تعریف شوند. بدین صورت که آخرین پارامتر آن کد تابع و پارامترهای قبلی آن به عنوان پارامترهای ورودی معرفی می شوند.

var myFunction = new Function("a""b""return a * b");

var x = myFunction(43);


در مثال فوق، ما یک تابع به صورت anonymous و expression و با استفاده از تابع Function تعریف کرده ایم.


You actually don't have to use the function constructor. The example above is the same as writing:


عملا شما مجبور به استفاده از Function Constructor نمی باشید. مثال فوق دقیقا با مثال ذیل معادل می باشد:


var myFunction = function (a, b) {return a * b};

var x = myFunction(43);


Most of the time, you can avoid using the new keyword in JavaScript.


در اکثر مواقع، شما می توانید از کلید واژه new، در جاوا اسکریپت، اجتناب نمایید.


Function Hoisting

JavaScript functions can be called before they are declared:


به طور خلاصه، مفهوم Hoisting آن است که، شما می توانید تابعی را تعریف کرده و بر خلاف اکثر زبان های برنامه نویسی! قبل از جایی که تابع مربوطه را تعریف کرده اید، از آن تابع استفاده کرده و آنرا اجرا نمایید.:


myFunction(5);

function myFunction(y) {
    return y * y;
}


Functions defined using an expression are not hoisted.


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


Self-Invoking Functions

Function expressions can be made "self-invoking".

A self-invoking expression is invoked (started) automatically, without being called.

Function expressions will execute automatically if the expression is followed by ().

You cannot self-invoke a function declaration.

You have to add parentheses around the function to indicate that it is a function expression:


در زبان جاوا اسکریپت، می توان به گونه ای تابعی را تعریف نمود که پس از تعریف آن، به طور خودکار اجرا شود. به این دسته از توابع Self-Invoking Functions می گویند.

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

اگر بعد از آکولاد بسته توابع، از دو پرانتز باز و بسته () استفاده شود، این توابع به صورت Self-Invoking Function عمل می کنند.

دقت داشته باشید که اگر صرفا پس از آکولاد بسته تابع، از () استفاده نمایید، با خطا مواجه خواهید شد! لذا باید ابتدا خود تابع را بین پرانتز باز و بسته قرار داده و پس از آن، از () استفاده نمایید.

(function () {
    var x = "Hello!!";      // I will invoke myself
})();


لازم به ذکر است که به توصیه Crockford، بهتر است بعد از آکولاد بسته تابع، () را نوشته و سپس تابع و () را با هم، درون یک () دیگر قرار دهید:


// Crockford Recommandation!
(function () {

    var x = "Hello!!";      // I will invoke myself
}());


The function above is actually an anonymous self-invoking function (function without name).


اصطلاحا به تابعی که به شکل فوق تعریف می شوند، Anonymous self-invoking function اطلاق می شود. دقت داشته باشید که معمولا در این حالت نام تابع نوشته نمی شود!

Functions Can Be Used as Values

JavaScript functions can be used as values:

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


function myFunction(a, b) {
    return a * b;
}

var x = myFunction(43);


JavaScript functions can be used in expressions:


و گاهی نیز، می توان در یک عبارت محاسباتی، از نتایج اجرای آنها استفاده نمود:


function myFunction(a, b) {
    return a * b;
}

var x = myFunction(43) * 2;

پایان قسمت اول... با ما باشید...

مرجع:‌ http://www.W3Schools.com

  • داریوش تصدیقی
۰۵
آبان

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

?> Node

حال دستورات ذیل را به ترتیب نوشته و نتایج آنرا مشاهده نمایید:

> 1 + 1

2


> console.log("Hello, World!");

Hello, World!

undefined


> for(i = 1; i <= 5; i++) console.log("Hello, World!");

Hello, World!

Hello, World!

Hello, World!

Hello, World!

Hello, World!

undefined

حال دو بار دکمه های ترکیبی CTRL+C را فشار دهید تا از محیط Node خارج شوید.
توجه: دقت داشته باشید که در زبان برنامه نویسی JavaScript نحوه تعریف تمامی دستورات به صورت Camel Case‌ می باشد، این بدان معنا است که کلمه اول تمام حروف آن کوچک و بقیه کلمات، حرف اول آنها بزرگ و بقیه حروف کوچک نوشته می شود. مانند console, log, doSomething,...
توجه: اگر دقت کرده باشید در انتهای بعضی از دستورات فوق، کلمه undefined نوشته شده است. لازم به ذکر است، در صورتی که دستور شما مقداری را Return نماید، کلمه undefined نوشته نخواهد شد، مانند دستور ۱ + ۱، ولی در صورتی که دستور شما مقداری را Return نکرده و صرفا عملیاتی را انجام داده و یا چاپ نماید، این کلمه ظاهر خواهد گردید.

  • داریوش تصدیقی
۰۵
آبان

برای نصب و راه اندازی Node.js ابتدا وارد پایگاه https://nodejs.org/en شده و با توجه به سیستم عامل خود و نیز، با توجه به ۳۲ بیتی و یا ۶۴ بیتی بودن سیستم عامل خود، نسخه مناسب را انتخاب، دانلود و نصب نمایید.

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

پس از عملیات نصب، سیستم عامل خود را یکبار Restart نمایید.

حال وارد محیط Command Prompt شده و دستور ذیل را نوشته، تا اطمینان حاصل نمایید که نصب با موفقیت صورت گرفته و امکان دسترسی به برنامه محیا می باشد:

?> Node --version

v4.2.1

اینجانب نیز دستور فوق را اجرا کردم و دستور بدون خطا اجرا گردید و نسخه جاری برنامه Node که ۴.۲.۱ می باشد، به اینجانب نمایش داده می شود.

توجه: دقت کنید که قبل از کلمه version‌باید دو بار از کاراکتر (-) استفاده نمایید.

توجه: دقت کنید که پارامترهای مربوط به برنامه Node، نسبت به حروف بزرگ و کوچک حساس می باشند (Case Sensetive)، لذا در صورتی که شما به جای version از پارامتر Version استفاده نمایید، با خطا مواجه خواهید شد. لازم به ذکر است که خود دستور Node، نسبت به حروف بزرگ و کوچک حساس نمی باشد!


  • داریوش تصدیقی
۰۵
آبان

برای نصب و راه اندازی GIT ابتدا وارد پایگاه http://www.git-scm.org شده و با توجه به سیستم عامل خود و نیز با توجه به ۳۲ بیتی و یا ۶۴ بیتی بودن آن،نسخه مناسب را انتخاب، دانلود و نصب نمایید.

توصیه می گردد که پس از عملیات نصب، سیستم عامل خود را یکبار Restart نمایید.

  • داریوش تصدیقی