জাভাস্ক্রিপ্টে স্ট্রিংসের মধ্যে সমতা রক্ষার সঠিক উপায় কী?
{} == "[object Object]"
সত্য হিসাবে মূল্যায়ন করে।
String().equals()
জাভাস্ক্রিপ্টে স্ট্রিংসের মধ্যে সমতা রক্ষার সঠিক উপায় কী?
{} == "[object Object]"
সত্য হিসাবে মূল্যায়ন করে।
String().equals()
উত্তর:
সর্বদা যতক্ষণ না আপনিঅপারেটরগুলি==
এবং===
অপারেটরগুলিব্যবহারের প্রভাবগুলি পুরোপুরি বুঝতে পারছেন ততক্ষণঅপারেটরটি ব্যবহার করুন===
কারণ এটি আপনাকে অস্পষ্ট (স্পষ্টত নয়) বাগ এবং ডাব্লুটিএফ থেকে রক্ষা করবে। ==
অভ্যন্তরীণভাবে টাইপ-জোরের কারণে"নিয়মিত"অপারেটরের খুব অপ্রত্যাশিত ফলাফল হতে পারে, তাই ব্যবহার===
করা সর্বদা প্রস্তাবিত পদ্ধতির হয়।
এটিকে অন্তর্দৃষ্টি দেওয়ার জন্য এবং জাভাস্ক্রিপ্টের অন্যান্য "ভাল বনাম খারাপ" অংশগুলি মিঃ ডগলাস ক্রকফোর্ড এবং তাঁর কাজ সম্পর্কে পড়েছেন। একটি দুর্দান্ত গুগল টেক টক রয়েছে যেখানে তিনি প্রচুর ভাল তথ্যের সংক্ষিপ্তসার করেছেন: http://www.youtube.com/watch?v=hQVTIJBZook
হালনাগাদ:
আপনাকে যা করতে জানেন জাতীয় কাইলি সিম্পসন দ্বারা সিরিজ চমৎকার (এবং অনলাইন পড়তে বিনামূল্যে) হয়। সিরিজটি ভাষার সাধারণভাবে ভুল বোঝাবুঝি অঞ্চলে যায় এবং ক্রকফোর্ড আপনাকে "এড়ানো" বাজে বিষয়গুলি ব্যাখ্যা করে you তাদের বোঝার মাধ্যমে আপনি এগুলির যথাযথ ব্যবহার করতে পারবেন এবং সমস্যাগুলি এড়াতে পারেন।
" আপ & Going " বই একটি অধ্যায় অন্তর্ভুক্ত সমতা যখন আলগা ব্যবহার করবেন (এই নির্দিষ্ট সারসংক্ষেপ সঙ্গে ==
বনাম কঠোর) ( ===
) অপারেটরদের:
কয়েকটি সাধারণ টেকওয়েতে পুরো বিশদটি সিদ্ধ করতে এবং ব্যবহার করতে হবে
==
বা===
বিভিন্ন পরিস্থিতিতে আপনাকে তা জানাতে সহায়তা করার জন্য , এখানে আমার সাধারণ নিয়ম রয়েছে:
- যদি একটি তুলনাতে মান (ওরফে পাশ) হয় তবে মান
true
বাfalse
মান হতে পারে , এড়িয়ে চলুন==
এবং ব্যবহার করুন===
।- একটি তুলনা হয় মান এই নির্দিষ্ট মান (হতে পারে তা যদি
0
,""
অথবা[]
, এড়ানোর - খালি অ্যারে)==
এবং ব্যবহার===
।- ইন সব অন্যান্য ক্ষেত্রে, তুমি নিরাপদ ব্যবহার করতে
==
। এটি কেবল নিরাপদই নয়, অনেক ক্ষেত্রে এটি আপনার কোডকে এমনভাবে সহজতর করে যাতে পাঠযোগ্যতার উন্নতি হয়।
আমি এখনও জাভাস্ক্রিপ্ট বুঝতে সত্যিই সময় বিনিয়োগ করতে চাই না এমন বিকাশকারীদের জন্য ক্রকফোর্ডের আলাপের পরামর্শ দিচ্ছি a এটি এমন বিকাশকারীদের জন্য ভাল পরামর্শ যারা কেবলমাত্র জাভাস্ক্রিপ্টে মাঝে মধ্যে কাজ করেন।
if (typeof foo == "string")
===
অপারেটরটি ব্যবহার করা আরও ভাল এবং "আমি কি সত্যই, পুরোপুরি, 100% নিশ্চিত যে ==
এটি কীভাবে আমার মনে হবে তা আচরণ করবে?"
++
/ --
) ব্যবহার না করার পরামর্শ তাঁর ।
++
বা --
বা একক লাইন if/else
বিবৃতি বা continue
বা new
অপারেটর বা পুরোপুরি বৈধ কোড চর্চা অন্য কোন সংখ্যা Crockford বলিয়া গণ্য করেছে "ক্ষতিকর"। এবং অবশ্যই কখনো কখনো এমনকি ব্যবহার সম্পর্কে চিন্তা বিবেচনা eval
বা with
তাদের ফাঁদ সঠিকভাবে বোঝা যায় করা থাকলেও সেগুলিকে খুঁজতে। এবং আপনি জেএস এর পরবর্তী সংস্করণ দেখেছেন? কঠোর বাক্য গঠন এবং কয়েকটি সহায়ক সহায়ক ফাংশন, কিছু কিছু যা বছরের পর বছর ধরে ভেসে আসছে, আমরা এই সময়ের পরে যা পাই তা প্রায় তা is বাক্য গঠনটি মোটেই বিকশিত হয়নি। যদি ক্রকফোর্ড এর পিছনে থাকে তবে এটি খারাপ কাজ হয়ে গেছে।
যদি আপনি জানেন যে তারা স্ট্রিংগুলি রয়েছে, তবে প্রকারের জন্য পরীক্ষা করার দরকার নেই।
"a" == "b"
তবে নোট করুন যে স্ট্রিং অবজেক্ট সমান হবে না।
new String("a") == new String("a")
মিথ্যা ফিরে আসবে।
এটিকে স্ট্রিং অবজেক্টের জন্য আদিম রূপান্তর করতে মান ওফ () পদ্ধতিটি কল করুন,
new String("a").valueOf() == new String("a").valueOf()
সত্য ফিরে আসবে
new String("a") == "a"
এটি সত্য (তবে তা হবে না ===
), কারণ বাম দিকটি আদিম স্ট্রিংয়ের মানে রূপান্তরিত হবে।
new String("a") == new String("a")
, new String("a") === new String("b")
, new String("a") === new String("a")
ফিরে যেতে হবে false
, যেহেতু তোমাদের বস্তু রেফারেন্স সঙ্গে লেনদেন করছেন String
বর্গ, না ধরনের প্রিমিটিভের string
।
new String(foo)
একটি স্ট্রিং অবজেক্ট তৈরি করে এবং foo কে একটি স্ট্রিং আদিমে String(foo)
রূপান্তর করে ।
উত্তরের কেবলমাত্র একটি সংযোজন: যদি এই সমস্ত পদ্ধতিগুলি মিথ্যা প্রত্যাবর্তন করে তবে স্ট্রিংগুলি সমান বলে মনে হয়, এটি সম্ভব যে একটি স্ট্রিংয়ের বাম এবং ডানদিকে একটি শ্বেত স্থান রয়েছে। সুতরাং, .trim()
তুলনার আগে কেবল স্ট্রিংয়ের শেষে একটি রাখুন :
if(s1.trim() === s2.trim())
{
// your code
}
আমি কী ভুল তা জানার চেষ্টা করে ঘন্টা হারিয়েছি। আশা করি এটি কারও সাহায্য করবে!
fetch
) থেকে ভেরিয়েবল লোড করার সময় একটি সাধারণ সমস্যা । অনেক ধন্যবাদ.
আমাকে এই প্রশ্নের দিকে নিয়ে যাওয়ার কারণটি হ'ল padding
এবংwhite-spaces
আমার কেসটি পরীক্ষা করে দেখুন
if (title === "LastName")
doSomething();
এবং শিরোনাম ছিল " LastName"
সুতরাং সম্ভবত আপনি
trim
এই মত ফাংশন ব্যবহার করতে হবে
var title = $(this).text().trim();
.toString().trim()
টাইপস্ক্রিপ্টটিতে ব্যবহার করেছি
জবরদস্তি কীভাবে কাজ করে তা আপনি যদি না জানেন তবে তার পরিবর্তে আপনাকে ==
পরিচয় অপারেটরটি এড়ানো এবং ব্যবহার করা উচিত ===
। তবে এটি কীভাবে কাজ করে তা বুঝতে আপনার এটি পড়া উচিত ।
আপনি যদি ব্যবহার করেন ==
তবে ভাষাটি আপনার জন্য কিছু প্রকার জবরদস্তি করতে দিন, উদাহরণস্বরূপ:
"1" == 1 // true
"0" == false // true
[] == false // true
যেমন ডগলাস ক্রকফোর্ড তাঁর বইয়ে বলেছেন:
এটি পরিচয় অপারেটরটি সর্বদা ভাল ব্যবহার করা।
{}==" "
আমাকে Unexpected token ==
এটি করার সঠিক উপায়টি কী দিয়েছিল ?
জাভাস্ক্রিপ্টে স্ট্রিংগুলি তৈরি করা যেতে পারে এমন দুটি উপায় রয়েছে।
var str = 'Javascript';
এটি একটি আদিম স্ট্রিংয়ের মান তৈরি করে।
var obj = new String('Javascript');
এটি টাইপের একটি মোড়ক বস্তু তৈরি করে String
।
typeof str // string
typeof obj // object
সুতরাং সাম্যতার জন্য যাচাই করার সর্বোত্তম উপায় হ'ল ===
অপারেটরটি ব্যবহার করা কারণ এটি মূল্য এবং পাশাপাশি উভয় অপারেটের প্রকার পরীক্ষা করে।
আপনি যদি দুটি বস্তুর মধ্যে সাম্যের জন্য পরীক্ষা করতে চান String.prototype.valueOf
তবে সঠিক উপায়টি ব্যবহার করা using
new String('javascript').valueOf() == new String('javascript').valueOf()
কৌশলটি Objects
ব্যবহার করে স্ট্রিং পরীক্ষা করা যায় JSON.stringyfy()
।
var me = new String("me");
var you = new String("me");
var isEquel = JSON.stringify(me) === JSON.stringify(you);
console.log(isEquel);
এটি করার সহজতম উপায় হ'ল এরকম কোনও টার্নারি অপারেটর ব্যবহার করা:
"was" == "was" ? true : false
তবে আপনি যে স্ট্রিংটি তুলনা করতে চান তা যদি একটি অ্যারেতে থাকে তবে আপনি es6 ফিল্টারটি ব্যবহার করবেন
let stringArray = ["men", "boys", "girls", "sit", "can", "gotten"]
stringArray.filter(I=> I === boys ?
stringArray.pop(indexOf(I)) : null)
উপরেরটি আপনার স্ট্রিংআরে এবং যে স্ট্রিং এর সাথে এটি মেলে তার সাথে অ্যারে থেকে মিলবে যা আমাদের ক্ষেত্রে আমরা "ছেলেরা" পছন্দ করেছি
আমি পরীক্ষার সময় বিকল্প সমাধান নিয়ে এসেছি। আপনি স্ট্রিং প্রোটোটাইপে ফাংশন ব্যবহার করতে পারেন।
String.prototype.betwenStr = function(one){
return JSON.stringify(new String(this)) === JSON.stringify(new String(one));
}
//call it
"hello world".betweenStr("hello world"); //returns boolean
//value
ক্রোম ব্রাউজারগুলিতে সূক্ষ্মভাবে কাজ করে
==
।