একটি জেএস বুলিয়ান কাস্টম বৈশিষ্ট্যযুক্ত একটি খারাপ অভ্যাস?


41

জেএসে আপনি কাস্টম বৈশিষ্ট্যযুক্ত একটি বুলিয়ান ফিরিয়ে দিতে পারেন। যেমন। যখন ভিডিওর সমর্থনের জন্য মডার্নজার পরীক্ষা করে এটি ফিরে আসে trueবা falseফেরত বুলিয়ান (বুলে জেএসে প্রথম শ্রেণীর অবজেক্ট হয়) বৈশিষ্ট্যগুলি নির্দিষ্ট করে যা কোন ফর্ম্যাটগুলি সমর্থন করে। প্রথমে এটি আমাকে কিছুটা অবাক করেছিল তবে তারপরে আমি ধারণাটি পছন্দ করতে শুরু করেছিলাম এবং ভাবতে শুরু করেছিলাম কেন এটি অল্প ব্যবহার হয়?

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

এর বিরুদ্ধে 3 টি যুক্তি রয়েছে যা আমি কল্পনা করতে পারি:

  1. এটি কোনও অস্বাভাবিক / অপ্রত্যাশিত যখন কোনও ইন্টারফেসের জন্য পরিষ্কার এবং কৌশলযুক্ত না হওয়ার জন্য সম্ভবত এটি ভাল।
  2. এটি স্ট্রো ম্যান আর্গুমেন্ট হতে পারে তবে এটি কিছুটা প্রান্তের কেস হওয়ার সাথে সাথে আমি কিছু জেএস অপ্টিমাইজার, ইউগ্লিফায়ার, ভিএম বা একটি ছোটখাটো ক্লিন-আপ ল্যাঙ্গুয়েজ স্পেসিফিকেশন পরিবর্তন ইত্যাদিতে চুপচাপ ব্যাকফায়ারগুলি কল্পনা করতে পারি
  3. সংক্ষিপ্ত, স্পষ্ট এবং সাধারণ - ঠিক একই কাজ করার উপায় রয়েছে।

সুতরাং আমার প্রশ্নটি কি অতিরিক্ত সম্পত্তি সহ বুলিয়ান ব্যবহার না করার কোনও শক্ত কারণ আছে? তারা কৌশল বা চিকিত্সা?


প্লট মোচড়ের সতর্কতা।

উপরের পুরো গৌরবে মূল প্রশ্ন is যেমন ম্যাথু ক্রামলে এবং সেনভলডসেন উভয়ই ইঙ্গিত করেছেন যে এটি মিথ্যা (মিথ্যা?) ভিত্তির উপর ভিত্তি করে। সূক্ষ্ম জেএস traditionতিহ্যে মডার্নিজার যা করেন তা হ'ল ভাষা কৌশল এবং নোংরা। এটি জেএসের কাছে একটি আদিম বুলের রয়েছে যা প্রসেস যুক্ত করার চেষ্টা করার পরেও মিথ্যা হিসাবে সেট থাকলেও এটি মিথ্যা থাকবে (যা নিঃশব্দে ব্যর্থ হয়) এবং বুলিয়ান অবজেক্টে কাস্টম প্রপস থাকতে পারে তবে একটি বস্তু হওয়া সর্বদা সত্য y মডার্নিজার হয় বুলিয়ান মিথ্যা বা সত্যবাদী বুলিয়ান অবজেক্টটি দেয়।

আমার আসল প্রশ্নটি ধরে নিয়েছে ট্রিকটি ভিন্নভাবে কাজ করে এবং তাই সর্বাধিক জনপ্রিয় উত্তরগুলি কোডিং মানগুলির দিকটি (পুরোপুরি বৈধ) দেয়। তবে আমি উত্তরগুলি পুরো কৌশলটিকে সবচেয়ে সহায়ক বলে মনে করি (এবং পদ্ধতিটি ব্যবহারের বিরুদ্ধে চূড়ান্ত যুক্তিও) তাই আমি তাদের একটি গ্রহণ করছি। সমস্ত অংশগ্রহণকারীদের ধন্যবাদ!


35
বুলিয়ান টাইপ তে প্রসারিত হচ্ছে একটি শাস্ত্রীয় হয় Wtf
hlovdal

7
নোট করুন যে জেএসে, তারা nullসমর্থিত না হলে স্রেফ ফিরে আসতে পারত এবং যদি তা থাকে তবে বিন্যাসগুলির একটি অ্যারে। জেএসে একটি তালিকা সত্যবাদী বলে বিবেচিত nullহয় এবং এটি মিথ্যা বলে।
jpmc26


3
আপনি এই প্রশ্নের উত্তর দেওয়ার আগে: জাভাস্ক্রিপ্টে "বুলিয়ান" এবং "বুলিয়ান" এর মধ্যে একটি বড় পার্থক্য রয়েছে। এগুলি একই জিনিস নয় এবং কোনও উত্তর যা বুলিয়ানকে মূলধন করে না তা অবৈধ।
পিটার বি

2
আপনারা যারা বুনোতে
ক্রিস নিলসেন

উত্তর:


38

সাধারণ নকশা নীতির ছাড়াও, একক দায়িত্ব এবং অন্তত বিস্ময় মত, একটি জাভাস্ক্রিপ্ট-নির্দিষ্ট কারণে যে এটা একটা ভাল ধারণা না আছে: একটা মধ্যে একটি বিশাল পার্থক্য booleanএবং Booleanজাভাস্ক্রিপ্ট মধ্যে এটি সাধারণ ক্ষেত্রে কাজ করতে বাধা দেয়।

booleanএকটি আদিম ধরণের, কোনও বস্তু নয় এবং কাস্টম বৈশিষ্ট্য থাকতে পারে না। true.toString()কাজের মত প্রকাশ কারণ পর্দার পিছনে, এটি পরিণত হয় (new Boolean(true)).toString()

Boolean(ক রাজধানী বি সহ) হয় একটি বস্তু, কিন্তু খুব কয়েক ভাল ব্যবহার করা হয়, এবং একটি ব্যবহৃত হচ্ছে booleanস্পষ্টভাবে তাদের মধ্যে একজন নয়। তার কারণ হ'ল, প্রতিটি Booleanতার মান নির্বিশেষে "সত্য" , কারণ সমস্ত বস্তু trueবুলিয়ান প্রসঙ্গে রূপান্তরিত হয় । উদাহরণস্বরূপ, এটি চেষ্টা করুন:

var answer = new Boolean(false);
if (answer) {
  console.log("That was unexpected.");
}

সুতরাং, সাধারণভাবে, জাভাস্ক্রিপ্টে কোনও বুলিয়ানতে সম্পত্তি যুক্ত করার কোনও উপায় নেই যা এখনও এটিকে যৌক্তিক উপায়ে আচরণ করতে দেয়। মডার্নিজার এটির সাথে দূরে সরে যেতে পারে কারণ "সত্য" মানগুলিতে একমাত্র বৈশিষ্ট্য যুক্ত করা হয়, আপনি কীভাবে কাজ আশা করবেন (যেমন তারা বিবৃতি দিলে তারা এতে কাজ করে)। ভিডিওটি যদি একেবারেই সমর্থিত না হয় Modernizr.videoতবে এটি একটি আসল boolean(মান সহ false) হবে এবং এতে বৈশিষ্ট্য যুক্ত করা যাবে না।


18
আমি মডার্নিজারের পদ্ধতির পরিবর্তে অদ্ভুত বলে মনে করি, সম্পত্তি সহ কেবল একটি বস্তু থাকা ইতিমধ্যে trueশর্তযুক্তকে মূল্যায়ন করে । স্পষ্টভাবে একটি ব্যবহার কেন Boolean?
আর্টুরো টরেস সানচেজ

একটি শব্দ প্রযুক্তিগত যুক্তি জন্য অনেক ধন্যবাদ। দেখে মনে হচ্ছে আমার দ্রুত পরীক্ষাটি ত্রুটিযুক্ত ছিল: jsbin.com/hurebi/3/edit?js,console । এমনকি falseএটি কাস্টম প্রপস যোগ করার পরেও উভয় কঠোরভাবে 'মিথ্যা' এবং মিথ্যা ( ===এবং ==হিসাবে কাজ) তবে আপনি প্রকৃতপক্ষে আদিম বুলে প্রকৃতপক্ষে যুক্ত করতে পারবেন না। বুল এবং বুলের মধ্যে পার্থক্য স্পষ্টতই আমাকে ছড়িয়ে দিয়েছে।
কনরাড

@ আরতুরো টরেস সানচেজ কারণ তারা যেভাবে এটি ফেরত মূল্য দেয় তা নামমাত্র একই ধরণের।
জ্যারেড স্মিথ

1
@ আরতুরো টরেস সানচেজ সে কারণেই আমি বাছাইকারীকে "নামমাত্র" যুক্ত করেছি: পি
জারেড স্মিথ

1
@ কনরাড রেফারেন্সের জন্য, ডিফল্টভাবে জাভাস্ক্রিপ্ট ভান করবে এটি যখন আপনি এটি করার চেষ্টা করবেন তখন অভিযোগ না করে আদিমদের মধ্যে বৈশিষ্ট্য যুক্ত করতে দিচ্ছেন। কঠোর মোড ব্যবহার করে এটি ঠিক হয়ে যায় এবং TypeErrorআপনি কোনও সম্পত্তি যুক্ত করার চেষ্টা করলে একটি নিক্ষেপ করুন ( jsbin.com/yovasafibo/edit?js,console দেখুন )।
ম্যাথু ক্রামলে

59

অভিনন্দন, আপনি বস্তু আবিষ্কার করেছেন। এটি না করার কারণটিকে বলা হয় সর্বনিম্ন বিস্ময়ের মূলনীতি । কোনও নকশা দেখে অবাক হওয়া ভাল জিনিস নয়।

এই তথ্য একসাথে বান্ডিল করার কোন ভুল নেই তবে আপনি কেন এটি একটি বুলে লুকিয়ে রাখতে চান? এমন কিছুতে রাখুন যা আপনি এই সমস্ত তথ্য পেয়েছেন বলে আশা করছেন। বুল অন্তর্ভুক্ত।


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

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

1
"অপ্রচলিত" আমার কাছে দৃ strong় যুক্তির মতো মনে হয় না।
রবার্ট হার্ভে

আমি প্রশ্নটি সম্পাদনা করেছি। এখানে অন্তত বিস্ময়ের নীতিটি দেওয়া আছে। :-)
কনরাড

16

আমি তার বিরুদ্ধে প্রধান যুক্তিটি হ'ল, একক দায়িত্বের নীতি , একটি বুলিয়ান কেবল তখনই বলতে হবে যদি কিছু হয় trueবা হয় falseকেন বা কীভাবে বা অন্য কোনও জিনিস। এটি আমার দৃ belief় বিশ্বাস এবং অনুশীলন যে অন্যান্য অবজেক্টগুলি সেই বা অন্য কোনও তথ্য যোগাযোগ করতে ব্যবহার করা উচিত।


জাভাস্ক্রিপ্টে আপনি বুলিয়ান বা বুলিয়ান (মূলধন বি সহ) বোঝাতে চান কি তারতম্য আছে?
পিটার বি

তবে আপনার যদি এই বিষয়টিকে সংজ্ঞায়িত করার মতো কিছু বিষয় এবং অন্য কিছু জিনিস যুক্তিযুক্তভাবে একই নীতিগুলি লঙ্ঘন করে না?
কেসি

1
@ ক্যাসি না যেহেতু সেই বস্তুর উদ্দেশ্য আসল বুলিয়ান থেকে আলাদা হবে। এবং উদাহরণস্বরূপ, লেনদেনের রাষ্ট্র এবং কারণ সম্পর্কে যোগাযোগ করা তার একমাত্র দায়িত্ব থাকবে।
জে পিচার্ডো

1
@ ক্যাসি সমস্যাটি নয় যে এই তথ্যটি নিজের দ্বারা ধারণ করা এসআরপি লঙ্ঘন। সত্য বা মিথ্যা উপস্থাপনের জন্য - কোনও বুলিয়ান ইতিমধ্যে যে দায়বদ্ধতার সাথে মিলিত হয়েছে কেবল তখনই এটি সমস্যা হয়ে দাঁড়ায়। জাভাস্ক্রিপ্ট এর Booleanশেনানিগানস সত্ত্বেও।
জ্যাকব রায়হলে

10

যেহেতু একে একে বুলিয়ান মান বলা হয় তার পুরো কারণটি সত্য বা মিথ্যা, তাই ধারণাটি আমি অপছন্দ করি, কারণ আপনি উইকিপিডিয়া থেকে পুরো উদ্দেশ্যটিকে হ্রাস করেছেন pretty

কম্পিউটার সায়েন্সে, বুলিয়ান ডেটা টাইপ একটি ডেটা টাইপ, যার দুটি মান থাকে (সাধারণত সত্য এবং মিথ্যা চিহ্নিত করা হয়), এর উদ্দেশ্যটি যুক্তি এবং বুলিয়ান বীজগণিতের সত্য মানগুলি উপস্থাপন করে

(আমার সাহসী)


1
সঠিক, তবে প্রয়োজনীয়তা অন্যথায় নির্দেশ দিতে পারে
svarog

8
@ এসবারোগ কেবলমাত্র প্রয়োজনীয়তাটি আমি দেখতে পাচ্ছি এটি হ'ল কোডটির দক্ষতাযুক্ত designer আপনার যদি বুল এবং অন্য কিছু ফিরিয়ে দিতে হয় তবে এটিকে একটি শ্রেণি, বা টুপল, বা তালিকা বা অন্য কোনও কোড যা কিছু নির্দিষ্ট কোড অনুসারে ফিট করে make
ম্যাথিউরক

যদি আপনি হ্যাঁ ফিরছেন
স্বরোগ

আমি মনে করি যে প্রশ্নটি বুলিয়ান বস্তুর বিষয়ে, বুলিয়ান আদিম নয়। অবজেক্টটি কোনও মান নয়।
পিটার বি

1
এটা সত্য বা মিথ্যা ভিন্ন অন্য কোনো মান গ্রহণ করতে পারেন, তাহলে এটি আরো একটি বুলিয়ান নয়। নাম, যা দেওয়া, নিরীহ।
বেহুদা

2

কেবল আপনার অর্থ এই নয় যে আপনার উচিত হওয়া উচিত, জেএসে আপনি কোনও বস্তুর সাথে সম্পত্তি যুক্ত করতে পারেন (বুলিয়ানরা অন্তর্ভুক্ত)

কিভাবে একটি খারাপ জিনিস হল?

একদিকে আপনি বুলিয়ান (আপনার উদাহরণ অনুসারে) আরও অপ্রাসঙ্গিক ডেটা সংযুক্ত করতে পারেন, এমন কিছু যা অন্য বিকাশকারী আশা করবেন না কারণ এটি কেন হওয়া উচিত ?! boos ঠিক এবং মিথ্যা জন্য।

এর জন্য একটি পাল্টা পয়েন্ট হ'ল কিছু প্রাসঙ্গিক দরকারী বৈশিষ্ট্য সংযুক্ত করা যা আপনাকে বুলিয়ান মানকে মোকাবেলা করতে সহায়তা করতে পারে ( জাভা এটি করে )।

উদাহরণস্বরূপ, আপনি এমন একটি ফাংশন সংযুক্ত করতে পারেন যা বুলিয়ান মানকে একটি স্ট্রিংয়ে রূপান্তর করে, একটি dirtyপতাকা যা সত্য হয়ে যায় যদি মানটি পরিবর্তিত হয়, পর্যবেক্ষক এবং ইভেন্ট কলব্যাকগুলি যা মান পরিবর্তন হওয়ার পরে গুলি চালাতে পারে ইত্যাদি ইত্যাদি ..

তবে ফিরে আসা বুলিয়ান (বুলে জেএসে প্রথম শ্রেণীর অবজেক্ট) বৈশিষ্ট্য রয়েছে যা নির্দিষ্ট করে কোন বিন্যাসগুলি সমর্থন করে

এটি এমন কিছু শোনাচ্ছে যা বুলিয়ানগুলিতে সংরক্ষণ করা উচিত নয়, বরং বুলিয়ানগুলির একটি সেট ব্যবহার করা উচিত, বা তাদের ভিতরে বুলিয়ান সহ বৈশিষ্ট্যের একটি সেট ব্যবহার করা উচিত। আমি মনে করি যে সমস্ত ফর্ম্যাট এবং সমর্থন বিশদ সহ কোনও বস্তু ফেরত দেওয়া আরও ভাল পদ্ধতির।

{
    isSomethingSupported: true,
    isSomethingElseSupported: false,
    ....
}

1
আপনি কি বুলিয়ান বা বুলিয়ান (মূলধন বি সহ) বোঝাতে চান?
পিটার বি

1

আপনি জাভাস্ক্রিপ্টে কাস্টম বৈশিষ্ট্য সহ বুলেটিন তৈরি করতে পারবেন না। নিম্নলিখিত ব্যর্থ (কমপক্ষে এফএফ):

    var x = false;
    x.foo = "bar";
    console.log(x.foo);

আপনি বুলিয়ান থেকে ব্যবহার করতে পারেন বা উত্তরাধিকারী হতে পারেন, তবে ম্যাথু ক্রামলে যেমন বলেছেন এটি বিভিন্ন ফলাফল দেয়। Booleanহল টাইপ Object । যখন জেএসকে কোনও অভিব্যক্তিটির বুলিয়ান মান প্রয়োজন হয় তবে এটি স্পেসিফিকেশন ফাংশনটি ব্যবহার করে রূপান্তর করে ToBoolean, যা আদেশ দেয় যে Objectফলাফল সর্বদা থাকে true। এইভাবে মূল্য new Boolean(false)মূল্যায়ন true! আপনি এই উদাহরণে এটি যাচাই করতে পারেন: https://jsfiddle.net/md7abx5z/3/

এটি মডার্নিজারের পক্ষে কাজ করার একমাত্র কারণ ঘটনাবলি। Booleanশর্তটি সত্য হলে তারা কেবল কোনও বস্তু তৈরি করে । যখন তারা মিথ্যা মূল্যায়ন করে তারা কেবল সাধারণ ফিরে আসে false। সুতরাং এটি কাজ করে কারণ ফলাফলটি যখনই যাইহোক সত্য হয় কেবল তখনই তারা প্রত্যাবর্তন Boolean করে এবং কখনই এটি মিথ্যা হয়।


1

আমি বুঝতে পারি যে প্রসঙ্গটি পরিবর্তিত হয়েছে, তবে আমি উদাহরণ হিসাবে জেএস ব্যবহার করে যা পড়েছি তার মূল প্রশ্নের উত্তর দিতে চাই, তবে কেবল জেএসের মধ্যে সীমাবদ্ধ নয়।

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


0

আমি যদি কোডটি দেখি তবে এটি আসলেই বুলিয়ান কাস্টম বৈশিষ্ট্য দেওয়ার বিষয়ে নয় তবে বিভিন্ন স্বাক্ষরযুক্ত রিটার্ন পদ্ধতি থাকার পদ্ধতি সম্পর্কে।

যদি এটি মিথ্যা হয় তবে আপনি একটি আদিম মিথ্যা পাবেন এবং যদি এটি সত্য হয় তবে এটি এমন কোনও জিনিস ফেরত দেয় যা সংজ্ঞায় জাভাস্ক্রিপ্টে সত্য হিসাবে ব্যাখ্যা করা হয়।

সুতরাং, আমার মতে আপনার প্রশ্নটি হওয়া উচিত নয় যে বুলিয়ান কাস্টম বৈশিষ্ট্য দেওয়া ভাল ধারণা কিনা তবে একাধিক ফেরত স্বাক্ষর সহ পদ্ধতি থাকা ভাল ধারণা কিনা।


0

প্রদত্ত উদাহরণে, আপনি কেবলমাত্র সমস্ত সমর্থিত ভিডিও ফর্ম্যাটগুলির একটি অ্যারে ফিরিয়ে দিতে পারবেন না ?

  • একটি খালি অ্যারের অর্থ "কোনও ভিডিও ফর্ম্যাট সমর্থিত নয়", যার ক্রমটির অর্থ "কোনও ভিডিও সমর্থিত নয়"।
  • অন্যথায়, কোনও ভিডিও ফর্ম্যাট যদি সমর্থিত হয় তবে স্পষ্টতই ভিডিওটি সমর্থিত।

আমি কমপক্ষে বলতে পারি যে অ্যারে ব্যবহার করা "কাস্টম বুলেটিন" থাকার চেয়ে কিছুটা অবাক হওয়ার মতো নয়।

জাভাস্ক্রিপ্টে, একটি খালি অ্যারে এমনকি জালিয়াতি হিসাবে বিবেচিত হয় , যখন একটি খালি শূন্য বিন্যাস সত্য হয় , তাই কিছু ভাগ্যের সাহায্যে আপনি কেবল অ্যারেগুলিতে স্যুইচ করতে পারেন এবং নোপ সম্পাদনা করার আগে সবকিছু ঠিক তেমন কাজ করবে , এই ভেবে আমাকে বোকা বানাও আমি সত্যতা স্মরণ করতে পারি জাভাস্ক্রিপ্ট অবজেক্টের: পি


একটি খালি অ্যারে যদি বিবৃতিতে মিথ্যা হিসাবে মূল্যায়ন করে না। যদি ([]] কনসোল.লগ ('মিথ্যা নয়'); উদাহরণস্বরূপ Chrome এ 'মিথ্যা নয়' প্রিন্ট করে। টাইপফ [] === 'অবজেক্ট' সুতরাং কোনও খালি অ্যারে মিথ্যা নয়। রেফারেন্সের জন্য বিকাশকারী.মোজিলা.আর.ইন- ইউএস / ডকস / গ্লোসারি / ট্রুথি দেখুন ।
জোশপ

@ জোশপ উফ, আপনি ঠিক বলেছেন, আমার খারাপ। স্থির
দানিরো

যদিও, আমি নিশ্চিত নই যে টাইপফুল জিনিসটি কোনওটি প্রমাণ করে; টাইপ ""আছে "string"তবে এটি আসলেই মিথ্যা
ড্যানিয়েরো

1
অন্যদিকে, [].lengthমিথ্যা যদি দৈর্ঘ্য হয় তবে 0বেশি টাইপিং হয় না, এবং আমার মতে অভিপ্রায়টির আরও ভাল ইঙ্গিতটি ঠিক if([])এটি কাজ করলেও হবে।
IllusiveBrian

@ ডানিরো টাইপফ [] === 'অবজেক্ট' সম্পর্কিত বিষয়টি হ'ল যে কোনও বস্তু সত্য, এমনকি নতুন বুলিয়ানও (মিথ্যা)। কিছু আদিম ধরণের (উদাহরণস্বরূপ স্ট্রিং "" এবং সংখ্যা 0) মিথ্যা, তবে টাইপফের ক্ষেত্রে এগুলি অবজেক্ট নয়। এটি মনে রাখার আরও একটি উপায়। এটি কিছু প্রমাণ করার কথা নয়। প্রমাণটি নির্দিষ্টকরণে বা পরীক্ষাগুলিতে রয়েছে, আপনি যেগুলি পছন্দ করেন।
জোশপ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.