Arvanttt

تند و سریع

Arvant

تند و سریع












javascript در 10 دقیقه

شنبه, ۲۸ دی ۱۳۹۲، ۰۷:۵۷ ب.ظ

جاوا اسکریپت جزو زبان های اسکریپتی است که در وب کاربرد فراوانی دارد و از دیرباز مورد استفاده قرار گرفته است .البته این زبان در تعدادی از انجین های بازی سازی هم امکان اسکریپت نویسی را به انجین اضافه می کند که از جمله این انجین ها می توان به unity 3d ، cocos2d ، cocos2d-x اشاره کرد .از این رو خواستم تا یه بررسی کلی از زبان داشته باشیم .

انواع داده:

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

var intValue = 1;
var floatValue = 3.0;
var stringValue = "This is a string\n";
var sqString = 'This is also a string';

که از انواع اصلی موجود در زبان می توان به نوع داده int ,float , string اشاره کرد.

آرایه ها :

جاوا اسکریپت ساختار داخلی برای ارایه در نظر گرفته است که به صورت داینامیک مدیریت می شود .برای تعریف یک آرایه می توان از [] و یا تعریف به صورت (new Array(5 استفاده کرد 

var emptyList = [];
var homogenousList = [1, 2, 3];
var heterogenousList = ["one", 2, 3.0];

Maps:

Map را می توان نوعی ارایه در نظر گرفت که اندیس آن یک عدد صحیح نیست بلکه اندیس آن یک رشته تعریف شده توسط کاربر است .

همگی مثال های زیر یک نوع Map را تعریف می کنند

var emptyMap = {};
var homogenousMap = {"one": 1, "two": 2, "three": 3};
var heterogenousMap = {"one": 1,
                       "two": "two",
                       "three": 3.0};

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

window.alert("Homogenous map property \"one\" "+ homogenousMap.one);

window.alert("Homogenous map property \"two\" " + homogenousMap["two"]);

به همین ترتیب هم می توان برای مقدار دهی استفاده کرد .

homogenousMap["one"] = 10;
homogenousMap.two = 20;

با استفاده از delete هم می توان یک عنصر خاص را حذف نمود .

delete homogenousMap["one"];
delete homogenousMap.two;

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

for (var key in heterogenousMap) {
    window.alert("Heterogenous map property \""
                 + key
                 + "\" = "
                 + heterogenousMap[key]);
}

توابع :

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

var callable = function (message) { // <-- notice assignment
    window.alert("Callable called with message = "
                 + message);
}


function createClosure(initial) {
    var res = function () {
        initial = initial + 1;
        window.alert("Closure with modified state "
                     + initial);
    }
    return res;
}

function callCallable(f, x) {
    f(x);
}

function composeCallables(f, g, x) {
    f(g(x));
}

اشیاء :

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

function MyObject(name, value) {
    this.name = name;
    this.value = value;
}

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

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

متد ها :

داده های عضو یک شی نمی تواند همه نیاز ما را در برنامه سازی شی گرا تامین کند لذا ما نیازمند مفهومی به نام متد ها هستیم که عبارت اند از توابعی عضو یک شی که عملیات خاصی را در ارتباط با شی مورد نظر برای ما انجام می دهند  .

function Message(message) {
    this.message = message;
}

Message.prototype.show = function() {
    window.alert("Message.show() with message = "
                 + this.message);
}

خاصیت prototype خاصیتی است که به صورت اتوماتیک برای شی مورد نظر ایجاد شده و از طریق آن می توان به تمامی اعضای کلاس و متد های آن دسترسی داشته باشیم .

پایان :

در پایان قابل ذکر است که موارد موجود در زبان javascript به مراتب بیشتر از مورادی است که در اینجا به صورت مختصر بیان گردیده است .بخش های مربوط به توابع و اشیا و سایر مسائل مربوط به شی گرایی هرکدام خود نیازمند توضیح مفصلی در حد یک فصل خواهد بود نه یک پارگراف .لذا این توضیحات فقط می تواند یک دید کلی از این زبان برنامه نویسی ارائه دهد .

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

  • موافقین ۰ مخالفین ۰
  • شنبه, ۲۸ دی ۱۳۹۲، ۰۷:۵۷ ب.ظ
به اشتراک می گذارم : به اشتراک بگذاریم به اشتراک بگذاریم به اشتراک بگذاریم به اشتراک بگذاریم

نظرات  (۵)

این 10 دقیقه ای که گفتید،منظورتون برای مهندسان برنامه نویسی دیگه درسته؟! برای صفر کیلوتر ها چند سال طول میکشه؟

پاسخ:
برای اونای که تا حالا برنامه نویسی نکردن آموزش برنامه نویسی جاواسکریپت در 24 ساعت :)
بازم خوبه...
سلام اقای باغبانی
میخواستم بدونم cocostudio چیه و کاربردش چیه و ایا میشه با codeIDE از زبان سی پلاس پلاس استفاده کرد؟ ایا در codeIDE میشه از cocos2d-x استفاده کرد یا فقط برای جاوا اسکریپت طراحی شده
ممنون
پاسخ:
کلا از فامیلی من گرفته تا بقیه موارد قاطی گفتید :)
ربیعی هستم
cocos studio  برای مدیریت رابط کاربری،انیمیشن های بر پایه اسکلت٬و مراحل استفاده میشه
cocos ide  محیط توسعه رسمی انجین cocos 2d-x برای زبان های جاواسکریپت و Lua است.
برای سی پلاس محیط های توسعه فوق العاده ای چونxcode,visual studio,eclipse,Qt creator وجود داره که از همه اونها می توان استفاده کرد
اخ شرمنده ببخشید اقای ربیعی
راستی بازیتونو دانلود کردم قشنگه دستتون درد نکنه
اقای ربیعی بازی هایی مثل کندی کراش رو میشه با جاوا اسکریپت و cocos2d-js نوشت یا باید از زبان سی پلاس  و coco2d-x استفاده کرد؟ جاوا اسکریپت برای نوشتن ایجور بازی ها امکان پذیره؟ کم نمیاره؟
ممنون
پاسخ:
بازی استراتژیک دو زمینه سرور و کلاینت داره
معمولا در این بازی ها بار پردازشی بر روی سرور قرار میگیره
برنامه سمت کلاینت رو به راحتی می توان باjs  و cocos  نوشت و حتی سمت سرور رو هم می توان با  جاواسکریپت و node.js  که تکنولوژی برنامه نویسی تحت سرور به وسیله جاواسکریپت است نوشت.
تو لینک زیر یه خبر در مورد یه بازی شبیه فروت کرافت و خروس جنگی خودمونه که کلی هم طرفدار پیدا کرده و با جاواسکریپت و cocos2d-x نوشته شده.
http://cocos2d-x.org/news/348
:)   ممنون بابت حمایت
خواهش میکنم
اقای ربیعی منظورم بازی مبایلی بودا  نه تحت وب منظورم این بود که میشه برا مبایل با جاوا اسکریپت یه بازی مسه کندی کراش نوشت؟
پاسخ:
منم منظورم بازی های موبایلی هست.ولی بازی که مد نظر شماست رو با بازی کلاش آف کلنز که الان رو بورسه بازی های استراتژیک هست اشتباه گرفتم :(
بازی با سبکی که اعلام کردیدهم هیچ محدودیتی برای اجرا توسط جاواسکریپت ندارند
اصلا یکی از مثال ها که در نسخه های قبلی انجین جهت نمونه ارایه می شد بازی با همین شکل بود.