জেএস শিখার সময়, আপনার আহা-মুহুর্তটি কী ছিল? [বন্ধ]


16

আপনি যখন জাভাস্ক্রিপ্ট শিখছিলেন মনে আছে? আপনি হঠাৎ "এটি পেয়েছেন" এমন মুহুর্তটি কী ছিল? (উদাহরণস্বরূপ, আমার সিএসএস আহ-মুহূর্তটি যখন আমি বাক্স মডেল সম্পর্কে জানলাম ...)

আইআইএম জিজ্ঞাসা করার কারণটি হ'ল আইএএম 6 সপ্তাহের জন্য জেএস শিখছে, তবে এখনও আমি এটি বেশ বিভ্রান্তিকর বলে মনে করি। এখানে এসওতে আমি সম্প্রতি পড়েছি এমন কিছু থেকে উদ্ধৃতি:

"..ফানশানগুলি মানগুলির সাথে একইরূপে কাজ করে, কারণ পদ্ধতি কোনও বস্তুর একটি বৈশিষ্ট্য যা একটি ফাংশনের মান (যা একটি বস্তুও হয়)" "

আমি আগ্রহী যদি আপনি শুরুতেও বিভ্রান্ত হন এবং এটি কী ছিল যা আপনাকে এটি বুঝতে পেরেছিল।

(আইটিএম সিটপয়েন্টস "সিম্পলি জাভাস্ক্রিপ্ট", "এল্লোভেন্ট জাভাস্ক্রিপ্ট" বইটি পড়ছে এবং লিন্ডার এসেনশিয়াল জাভাস্ক্রিপ্ট টিউটোরিয়ালটি অনুসরণ করছে I আমার কোনও প্রোগ্রামিং এক্সপায়ারেন্স নেই এবং এটি গণিতে ভয়ানক ছিল;)

ধন্যবাদ!


1
আমি উদ্ধৃতটিকে বিভ্রান্তিকর এবং অস্পষ্ট বলে মনে করি এবং আমি বেশ কয়েক বছর ধরে ক্রোধে জাভাস্ক্রিপ্ট ব্যবহার করে যাচ্ছি, তাই যদি ভাষায় নতুন কারও জন্য বিভ্রান্তি হয় তবে আমি অবাক হই না :)
রুশ ক্যাম

উদ্ধৃতি এবং বিভ্রান্তি আসছে কারণ সেই উদ্ধৃতিটি বলতে চেষ্টা করছে যে ফাংশনগুলি জাভাস্ক্রিপ্টে প্রথম শ্রেণীর অবজেক্ট। জোরে জোরে রাখুন, এবং আপনি নিজেকে 'এ-হা' মুহুর্তের উত্স সরবরাহ করবেন: রেফারেন্সের অতিরিক্ত ফ্রেম।
চিগসি

উত্তর:


15

আমি মনে করি আমার জন্য সবচেয়ে বড় "এএএচএ" মুহুর্তটি যখন আমি নিম্নলিখিতটি পুরোপুরি আঁকড়েছিলাম:

পরিবর্তনশীল মানগুলি ফাংশন সহ কিছু হতে পারে

var person = {
    name: 'Sean',
    getName: function() { return this.name; },
    numbers: [7, 11, 41]
}

var myvar = person.name;
alert(myvar); //prints name
alert(myvar()); //"myvar" is not a function error
alert(myvar.length); //undefined

myvar = person.getName;
alert(myvar); //prints the contents of the function as a string
alert(myvar()); //calls the function
alert(myvar.length); //undefined

myvar = person.numbers;
alert(myvar); //prints contents of array
alert(myvar()); //"myvar" is not a function error
alert(myvar.length); //prints 3

10

আমার কাছে যখন আমি বুঝতে পেরেছিলাম যে thisকোনও ক্রিয়াকলাপের প্রসঙ্গ (কী নির্দেশ করে) যথেচ্ছভাবে পরিবর্তন করা যেতে পারে

http://www.digital-web.com/articles/scope_in_javascript/


ভাল এক, নিবন্ধটি অবশ্যই পড়বেন।

10

অন্যান্য উত্তরগুলির মধ্যে যেটি স্পর্শ করেছে তার সাথে আমি একমত; আমার জন্য এ-হা মুহূর্তটি যখন আমি বুঝতে পেরেছিলাম যে বন্ধ কী

আমি প্রশ্নের উত্তর পোস্ট করে একটি বন্ধ কী? এটি ব্যাখ্যা করতে সাহায্য করার জন্য।

ক্লোজারগুলি না বুঝে জাভাস্ক্রিপ্ট একটি দুর্দান্ত সীমিত ভাষা, কয়েকটি দুর্দান্ত শর্টহ্যান্ড সিনট্যাক্স বৈশিষ্ট্য যেমন []অ্যারে এবং জেএসএন ( {}বস্তুর জন্য) এর জন্য এবং ব্রাউজারের প্রসঙ্গে, ডিওএম ( window/ document)।

তবে একবার আপনি ক্লোজারগুলি বুঝতে পারলে প্রচুর বোঝাপড়া স্থির হয় :

  • আসলে কি প্রোটোটাইপ হয় ( দেখুন এখানে )
  • প্রোটোটাইপগুলি জাভাস্ক্রিপ্টে ওওপির মূল কী ( এখানে দেখুন )
  • কিভাবে সবচেয়ে ইভেন্ট হ্যান্ডলার জাভাস্ক্রিপ্ট মধ্যে সত্যিই কাজ (এটা যাদুর মত বন্ধ না বুঝে বলে মনে করতে পারেন)
  • কীভাবে কলব্যাক সহ প্রচুর কোড (এবং / অথবা সময়) সংরক্ষণ করবেন

সম্পদ

  • আমি এই পুরো সাইটের মধ্য দিয়ে যাইনি তবে এই বিষয়গুলিকে স্পর্শ করে এটি দুর্দান্ত উত্স হিসাবে দেখায়: http://eloquentjavascript.net/contents.html
  • জাভাস্ক্রিপ্টের দুর্দান্ত টিউটোরিয়ালটির জন্য http://ejohn.org/apps/learn/ দেখুন

4

আমি মনে করি জাভাস্ক্রিপ্টে আমার জন্য সবচেয়ে প্রয়োজনীয় ভাষা 'আহা' ছিল

  • বস্তু হিসাবে ফাংশন
  • বন্ধ
  • প্রোটোটাইপ-ভিত্তিক অবজেক্ট-ওরিয়েন্টেশন
  • জাভাস্ক্রিপ্টে স্কোপিং

এই সমস্ত বিষয়ের জন্য, আপনার ওয়েবে প্রচুর সংস্থান খুঁজে পাওয়া উচিত।

(এবং সবকিছু মনে করি না সম্পূর্ণই যৌক্তিক হয়ে যাবে: জাভাস্ক্রিপ্ট হয় বিভ্রান্তিকর)


সত্যি? জাভাস্ক্রিপ্ট হয় বিভ্রান্তিকর? আমার কাছে এটাকে বেশ স্বাভাবিক মনে হয়। তবে এটি কেবল আমার :- পি।
এইচটিবিএ

3

জাভাস্ক্রিপ্ট আমার পক্ষে বেশ কঠিন হয়েছিল যখন আমি প্রথম কয়েক বছর আগে এটি শিখতে শুরু করেছি কারণ আমি প্রথমবারের সার্ভার-সাইড এন্ড (পিএইচপি এবং পার্ল) থেকে ওয়েব বিকাশ শুরু করি।

এটি সিনট্যাক্স বা ওওপি বা জাভাস্ক্রিপ্টের লাইভ এবং ইভেন্ট-চালিত নেস-এর চেয়ে বেশি কিছু ছিল না - "এই এবং এই এবং এটি করুন এবং এটি পরিবেশন করুন এবং আপনি এটি করতে" হয়ে গেছেন এবং এটি এবং এটি এবং তারপরে আমরা ব্যবহারকারীরা পৃষ্ঠাটি না ছেড়ে দেওয়া পর্যন্ত কিছু হওয়ার এবং প্রতিক্রিয়া জানার জন্য অবিচ্ছিন্ন অবস্থায় রয়েছি। এটি সত্যিই আমাকে লুপের জন্য ছুঁড়ে ফেলেছে।

আমি মনে করি না যে আমি বিশেষভাবে এমন কোনও নাম রাখতে পারি যা সত্যই এটি ডুবে গেছে (কোনও নির্দিষ্ট "আহা!" মুহুর্তে - যদি আমাকে একটি নির্দিষ্ট মুহুর্তের নাম দিতে হয়, আমি যখন সন্ধানের পরামর্শের স্ক্রিপ্টের জন্য এজেএক্স শিখছিলাম তখন আমি বলতাম, তবে আইএমও এটি কেবল নির্বিচারে) তবে যখন আমি শেষ পর্যন্ত এই পার্থক্যটি উপলব্ধি করলাম তখন সেখান থেকে সবকিছু অনেক সহজ হয়ে গেল :)


ইতিমধ্যে এখানে কিছু সত্যিই ভাল দিক, সবাইকে ধন্যবাদ!

1

আমি যখন অবশেষে এই ধারণাটি উপলব্ধি করেছিলাম যে ভাষার যে কোনও অংশ আমি চাই না কেন তার কাছে আমি যেকোন অংশের নতুন সংজ্ঞা দিতে পারি। এই ক্ষেত্রে, এটি সি এর চেয়েও বেশি শক্তিশালী উদাহরণস্বরূপ, যদি আমি মানক toString()ফাংশনটি পছন্দ না করি তবে আমি আমার নিজস্বটি প্রয়োগ করব:

x.toString = function () {
    return "this is MY toString function biatch!";
}

ওভাররাইডিং থেকে এটি কীভাবে আলাদা?
নিকোল

1

যখন আমি বুঝতে পারি যে আপনি কোনও ফাংশন অবজেক্টে একটি সম্পত্তি সেট করতে পারেন।

প্রোটোটাইপটি কী ছিল তা অবশেষে যখন বুঝতে পারলাম।

function Alpha(){
    return 'aplha';
}
Alpha.Beta = function(){
    return 'beta';
}
Alpha.prototype.Delta = function(){
    return 'delta';
}

Alpha(); // 'alpha'
Alpha.Beta(); // 'beta'
new Alpha().Delta(); // 'delta'

0
function Obj() {
    this.x = 42;
    this.value = function() {
        return this.x;
    };
}

var o = new Obj();
o.value();        // 42
var f = o.value;
f();              // undefined??

এবং এ -হ- মুহুর্তটি যখন আপনি শেষ পর্যন্ত এই ফলাফলগুলিতে পান।


0

আহা মুহুর্ত # 1, আমার জন্য: জাভাস্ক্রিপ্ট বুঝতে যে ভাষাটি এর প্রাথমিক ব্যবহারের থেকে পৃথক: গতিশীল এইচটিএমএল এবং ক্লায়েন্ট-সাইড ওয়েব প্রোগ্রামিং। আমি জাভাস্ক্রিপ্ট নিয়ে হতাশ হব, যখন আমি সত্যিই আমি ডিওএম এবং ব্রাউজারের অসম্পূর্ণতাগুলি নিয়ে হতাশ হয়ে পড়েছিলাম।

আহা মুহূর্ত # 2: উত্তরাধিকার বিভিন্নভাবে সম্পাদন করা যেতে পারে তা বোঝা can সাধারণ শ্রেণিভিত্তিক উত্তরাধিকার কেবল একটি। প্রোটোটাইপ-ভিত্তিক (জাভাস্ক্রিপ্টে ব্যবহৃত শৈলী) এমন আরও কিছু রয়েছে।

# 1 এর সাথে সম্মতিতে, আমি জাভাস্ক্রিপ্ট সুপারিশ করতে বাধা দিতে পারি না : গুড পার্টস । এটি জাভাস্ক্রিপ্টকে নিজের মতো করে একটি সূক্ষ্ম ভাষা হিসাবে বিবেচনা করে।


0

কোনও ব্লক স্কোপিং এবং উত্তোলন নেই।

foo(); // function executes, no error

if (...) {
  function foo(){
    ...
  }
}


-1

jQuery মূলত আমার জন্য 'এ-হা' মুহুর্ত ছিল। সি # তে লিনকুই / ল্যাম্বদা সিনট্যাক্সের সাথে প্রচুর অভিজ্ঞতা থাকার পরে সিনট্যাক্সটি পরিচিত অনুভব করেছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.