':' (কোলন) জাভাস্ক্রিপ্টে কী করে?


178

আমি জাভাস্ক্রিপ্ট শিখছি এবং jQuery লাইব্রেরি ব্রাউজ করার সময় আমি দেখতে পাচ্ছি :(কোলন) প্রচুর ব্যবহৃত হচ্ছে। জাভাস্ক্রিপ্ট এ কি জন্য ব্যবহার করা হয়?

// Return an array of filtered elements (r)
// and the modified expression string (t)
   return { r: r, t: t };

উত্তর:


247
var o = {
    r: 'some value',
    t: 'some other value'
};

কার্যত সমতুল্য

var o = new Object();
o.r = 'some value';
o.t = 'some other value';

14
সি # অবজেক্ট ইনিশিয়ালাইজার সিনট্যাক্সের অনুরূপ। ধন্যবাদ!
মিকাহ

যদি কোনও ঘেরযুক্ত বস্তু না থাকে?
theonlygusti

@ ফ্রান্সিসকআই.বি যদি আমার অনুমান করতে হয় তবে আমার মনে হয় এটি টাইপস্ক্রিপ্ট যা জাভাস্ক্রিপ্টের সুপারসেট। এটি xMin নামের একটি ভের সহ একটি শ্রেণীর ঘোষণা করছে, যার প্রকারের ভাসা। সুন্দর সুর যে এর অর্থ কি।
সাল_ব্যাডার_808

96

এবং এছাড়াও, একটি বিবৃতি লেবেল করতে একটি কোলন ব্যবহার করা যেতে পারে। উদাহরণ স্বরূপ

var i = 100, j = 100;
outerloop:
while(i>0) {
  while(j>0) {
   j++

   if(j>50) {
     break outerloop;
   }
  }
i++

}

1
লেবেল এ ((পরিসংখ্যান))
মুহাম্মদ উমার

4
স্পেজেটি কোডে আপনাকে স্বাগতম :)
লিও দ্য ফোর

একটি গোটো ছদ্মবেশ ধারণ করা যায় না: আপনি কেবল গোটো ভাঙ্গেন; এবং আপনি এটি খুঁজে পেয়েছেন! ;)
অ্যান্ড্রু 16

1
জেএস লেবেলের জন্য এমডিএন রেফারেন্স পৃষ্ঠা: developer.mozilla.org/en-US/docs/Web/JavaScript/References/…
পিটার

হ্যাঁ, এ কারণেই a => {b: 2 throw ছুঁড়ে ফেলবে না এবং অপরিবর্তিত থাকবে না
পাভলো ডি

70

আপনি ছেলেরা ভুলে যাচ্ছেন যে কোলনটি টের্নারি অপারেটরটিতেও ব্যবহৃত হয় (যদিও আমি জানি না যে jquery এ উদ্দেশ্যে এটি ব্যবহার করে)।

টেরিনারি অপারেটর একটি if / then স্টেটমেন্টের একটি এক্সপ্রেশন ফর্ম (এক্সপ্রেশনগুলি একটি মান ফেরত দেয়)। এটি এভাবে ব্যবহার করা হয়:

var result = (condition) ? (value1) : (value2) ;

কোনও টার্নারি অপারেটর যদি পার্শ্ব প্রতিক্রিয়া তৈরি করতে ব্যবহৃত হয় তবে / তবে এটির পক্ষে অত্যন্ত খারাপ অভ্যাস।


2
একেএ "টার্নারি অপারেটর"। নোট করুন যে ওপি কঠোরভাবে অবজেক্ট আক্ষরিক ক্ষেত্রে সম্পর্কে জিজ্ঞাসা করছে। যদি আমরা ওপি যা জিজ্ঞাসা করে তার থেকেও অতিক্রম করতে পারি তবে কোলন লেবেলে ব্যবহৃত হয়।
এটস গোলাল

14
হ্যাঁ আমি এটা বোঝাতে চেয়েছিলাম আমার ঠিক ইন্টারনেট থেকে দূরে থাকা উচিত, সত্যই, যদি আমি এর মতো প্রোগ্রামিং ধারণাটিকে ভুলভাবে চিহ্নিত করতে যাচ্ছি।
ব্রেটন

এটি লেবেলগুলির জন্য ব্যবহার করা এবং অন্য যে কোনও কিছু ব্যবহারের ফলে @ অ্যাটসগোরাল কখনই বিভ্রান্ত হয় না তা দেখতে অবাক লাগবে কারণ আমি এখনই সেগুলি এখনই গুগল করছি।
শেন

জাভাস্ক্রিপ্টে যে জিনিসগুলি ব্যবহার করা হয় না সেগুলি তালিকাভুক্ত করা আরও সহজ হতে পারে।
কিংফ্রিটো_5005

45

মূলত মূল মানগুলির জন্য ':' হ'ল একটি সীমানা। আপনার উদাহরণে এটি একটি জাভাস্ক্রিপ্ট অবজেক্ট লিটারাল স্বরলিপি।

জাভাস্ক্রিপ্টে, অবজেক্টগুলি কোলনের সাথে সম্পত্তির জন্য সনাক্তকারীকে সীমানা নির্ধারণ করে এবং এর মানটি দিয়ে সংজ্ঞায়িত করা হয় যাতে আপনার নিম্নলিখিতটি থাকতে পারে:

return { 
    Property1 : 125,
    Property2 : "something",
    Method1 : function() { /* do nothing */ },
    array: [5, 3, 6, 7]
};

এবং তারপরে এটি ব্যবহার করুন:

var o =  { 
    property1 : 125,
    property2 : "something",
    method1 : function() { /* do nothing */ },
    array: [5, 3, 6, 7]
};

alert(o.property1); // Will display "125"

এর সাবসেটটি জেএসএন (জাভাস্ক্রিপ্ট অবজেক্ট নোটেশন) নামেও পরিচিত যা এজেএক্স কলগুলিতে দরকারী কারণ এটি সার্ভার-সাইড ভাষাগুলিতে সংক্ষিপ্ত এবং তড়িঘড়ি এবং জাভাস্ক্রিপ্ট সহজেই কোনও জেএসএন স্ট্রিংটিকে কোনও বস্তুর ডি-সিরিয়ালাইজ করতে পারে।

// The parenthesis '(' & ')' around the object are important here
var o = eval('(' + "{key: \"value\"}" + ')');

আপনি যদি কিছু বিশেষ চরিত্র বা স্পেস রাখেন তবে কীগুলির উদ্ধৃতিগুলির ভিতরে রাখতে পারেন, তবে আমি সুপারিশ করব না কারণ এটি কাজ করে কাজগুলিকে আরও শক্ত করে তোলে।

মনে রাখবেন যে জাভাস্ক্রিপ্ট ভাষায় জাভাস্ক্রিপ্ট অবজেক্ট লিটারাল নোটেশন বার্তা পাস করার জন্য JSON মান থেকে আলাদা। 2 এর মধ্যে প্রধান পার্থক্য হ'ল ফাংশন এবং কনস্ট্রাক্টররা জেএসওএন স্ট্যান্ডার্ডের অংশ নয় , তবে জেএস অবজেক্ট লিটারালগুলিতে অনুমোদিত।


2
আপনার প্রতিক্রিয়াটি পড়ার সাথে সাথে আমি ভেবেছিলাম আমি এটিকে ভোট দিয়ে দেব তবে আপনি বলেছিলেন যে "এটি জেএসওএন নামেও পরিচিত is অবজেক্ট লিটারেল এবং JSON স্পষ্টভাবে হয় না একই জিনিস প্রকৃতপক্ষে আপনার উদাহরণ আগে আপনি উল্লেখ তাদেরকে JSON বৈধ JSON নয়।
nnnnnn

@nnnnnn 2 এর মধ্যে পার্থক্যটি খুব সূক্ষ্ম তবে তবুও গুরুত্বপূর্ণ। আমি আমার উত্তরটি এর সাথে আরও সুনির্দিষ্ট হওয়ার জন্য আপডেট করেছি।
ড্যান হার্বার্ট

1
আমি আপডেট দেখতে পাচ্ছি। খুশী হলাম। নোট করুন যে JSON- র প্রয়োজনীয় নামগুলি উদ্ধৃতিতে থাকা দরকার।
nnnnnn

কেন আপনি দুটি বার সব উল্লেখ করতে হবে? আপনি যখন বলেছিলেন "এবং তারপরে এটি ব্যবহার করুন"
হর্ষ 18

17

এটি বস্তুর আক্ষরিক সিনট্যাক্সের অংশ। মূল বিন্যাসটি হ'ল:

var obj = { field_name: "field value", other_field: 42 };

তারপরে আপনি এই মানগুলি এর সাথে অ্যাক্সেস করতে পারবেন:

obj.field_name; // -> "field value"
obj["field_name"]; // -> "field value"

আপনি মান হিসাবে ফাংশন করতে পারেন, মূলত আপনাকে বস্তুর পদ্ধতি প্রদান করে:

obj['func'] = function(a) { return 5 + a;};
obj.func(4);  // -> 9

1
দুর্দান্ত কারণ এটি আমাকে আরও তথ্য অনুসন্ধান এবং অনুসন্ধান করার জন্য শব্দটি দিয়েছে।
জননি

13

এটি একটি ভেরিয়েবলের মধ্যে অবজেক্ট তালিকা করতে ব্যবহৃত হতে পারে। এছাড়াও, এটি যদি একটি বাক্যটির শর্টহ্যান্ডে কিছুটা ব্যবহৃত হয়:

var something = {face: 'hello',man: 'hey',go: 'sup'};

এবং এটিকে ডাকছে

alert(something.man);

এছাড়াও যদি বাক্য:

function something() {  
  (some) ? doathing() : dostuff(); // if some = true doathing();, else dostuff();
}

10

আসুন স্যুইচ বিবৃতিটি ভুলে যাবেন না, যেখানে প্রতিটি "কেস" পরে কোলন ব্যবহৃত হয়।


10

এগুলি সাধারণত সেই দৃশ্যগুলি যেখানে জাভাস্ক্রিপ্টে কোলন ':' ব্যবহৃত হয়

1- একটি বিষয় ঘোষণা এবং সূচনা

var Car = {model:"2015", color:"blue"}; //car object with model and color properties

2- একটি লেবেল স্থাপন (এটি জটিল নিয়ন্ত্রণ কাঠামো এবং স্প্যাগেটি কোডের ফলে ফলাফল তৈরি হওয়ার পরে প্রস্তাবিত নয়)

List: 
while(counter < 50)
{
     userInput += userInput;
     counter++;
     if(userInput > 10000)
     {
          break List;
     }
}

3- স্যুইচ স্টেটমেন্ট ইন

switch (new Date().getDay()) {
    case 6:
        text = "Today is Saturday";
        break; 
    case 0:
        text = "Today is Sunday";
        break; 
    default: 
        text = "Looking forward to the Weekend";
}

4- টার্নারি অপারেটরে

document.getElementById("demo").innerHTML = age>18? "True" : "False";

1
এর পরিবর্তে একটি একক কোলন শর্ট সার্কিট মূল্যায়নের জন্যও ব্যবহার করা যেতে পারে ||। উদাহরণ: var a = false, b = a || 'Default value';এর সমতুল্যvar a = false, b = a : 'Default value';
শান ককারিল

7

এটি JSON, বা জাভাস্ক্রিপ্ট অবজেক্ট নোটেশন। এটি কোনও অবজেক্ট বা হ্যাশ ম্যাপের বর্ণনা দেওয়ার দ্রুত উপায়। কোলনের আগের জিনিসটি সম্পত্তির নাম এবং কোলনের পরে জিনিসটি এর মান। সুতরাং এই উদাহরণে, একটি সম্পত্তি আছে "আর", যার মান ভেরিয়েবল আর এর মধ্যে যাই হোক না কেন। টি জন্য একই।


3
জেএসএন হ'ল জাভাস্ক্রিপ্ট অবজেক্ট ইনিশিয়ালাইজেশন সিনট্যাক্সের কেবল একটি উপসেট। '{a: k ()}' যেখানে k একটি ফাংশন জেএসএন নয়, তবে এটি পুরোপুরি ঠিক আছে জাভাস্ক্রিপ্ট অবজেক্ট ইনিশিয়ালাইজেশন সিনট্যাক্স।
yfeldblum

12
পেডেন্টিক হতে, না, এটি "জেএসওএন" নয়। এটি দেখতে JSON এর মতো দেখাচ্ছে । এটি অবজেক্ট আক্ষরিক বাক্য গঠন যা জাভাস্ক্রিপ্টের নেটিভ এবং এটি সরাসরি কোডের অভ্যন্তরে উপস্থিত হতে পারে। অন্যদিকে JSON একটি ডেটা সিরিয়ালাইজেশন / ইন্টারচেঞ্জ ফর্ম্যাট। JSON তখনই JSON হয় যখন এটি "বায়ুবাহিত" হয়, অর্থাত্ ট্রানজিটে বা যখন এটি এখনও একটি সত্য বস্তুতে পার্স করা হয় না।
এটস গোলাল

3
Ates Goral জন্য +1 কিন্তু মনে রাখবেন যে দৃষ্টান্ত স্থাপন এমনকি নেই চেহারা তাদেরকে JSON মত: নাম এটা বৈধ JSON সিনট্যাক্স হতে পেতে ডাবল উদ্ধৃতি চিহ্ন থাকবে হবে।
নিকফিটজ

3

একটি বোকা ভুল আমি কিছুক্ষণ আগে করেছি যা কিছু লোককে সহায়তা করতে পারে।

মনে রাখবেন যে আপনি যদি এই জাতীয় ইভেন্টে ":" ব্যবহার করেন তবে মানটি পরিবর্তন হবে না

var ondrag = (function(event, ui) {
            ...

            nub0x: event.target.offsetLeft + event.target.clientWidth/2;
            nub0y = event.target.offsetTop + event.target.clientHeight/2;

            ...
        });

সুতরাং "nub0x" প্রথম ঘটনাটি ঘটে যা ঘটবে এবং এর মানটি কখনই পরিবর্তন করবে না। তবে "nub0y" পরবর্তী ইভেন্টগুলির সময় পরিবর্তন হবে।


আমি এটি নিয়ে এসেছি, এবং এফআইআই এখানে যা ঘটছে তা হ'ল আপনি আপনার বক্তব্যের আগে একটি লেবেল ব্যবহার করছেন। কোনও অ্যাসাইনমেন্ট তৈরি করা হয় নি, তবে event.target.offsetLeft + event.target.clientWidth/2;প্রতিবার আপনার অনড্র্যাগ পদ্ধতিটি বলা হলেও বিবৃতিটি চালিত হয় তবে কখনও মানটি বরাদ্দ করবেন নাnub0x
kketch

প্রকৃতপক্ষে এটি একটি মূল্যায়ন হিসাবে ব্যবহৃত হচ্ছে, এবং এটি :যেমন ছিল তেমন আচরণ করা হচ্ছে ||। অতএব, event.target.offsetLeft + event.target.clientWidth/2;প্রতিবার প্রদত্ত nub0xসমানকে মিথ্যা হিসাবে ট্রিগার করবে ।
শান ককরিল

1

জাভাস্ক্রিপ্টে কোলনের আরও একটি ব্যবহার একটি ভেরিয়েবলের নাম পরিবর্তন করা, এটি হল:

const person = { 
    nickNameThatIUseOnStackOverflow: "schlingel",
    age: 30,
    firstName: "John"
};
const { nickNameThatIUseOnStackOverflow: nick } = person; // I take nickNameThatIUseOnStackOverflow but want to refer it as "nick" from now on.
nick = "schling";

যদি আপনি কোনও তৃতীয় পক্ষের লাইব্রেরি ব্যবহার করেন যা আপনার কোডটিতে নাম পরিবর্তন করতে চান এমন বিশ্রী / দীর্ঘ পরিবর্তনশীল নামগুলির মানগুলি ফেরত দেয় useful

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