জাভাস্ক্রিপ্টে কখন ডাবল বা একক উদ্ধৃতি ব্যবহার করবেন?


1968

console.log("double"); বনাম console.log('single');

আমি স্ট্রিংগুলি পরিচালনা করার সময় একাধিক জাভাস্ক্রিপ্ট লাইব্রেরি দেখতে পেয়েছি single একে অপরকে ব্যবহার করার কারণগুলি কী কী? আমি ভেবেছিলাম তারা বেশ বদলযোগ্য।


125
কোনটি পড়া সহজ? সতর্কতা ("এটি খেলার সময়"); বা সতর্কতা ('এটি গেমের সময়');
রায়ান মিলার

591
এই রায়ানের অবস্থা কেমন? alert("It's \"game\" time.");বা alert('It\'s "game" time.');?
ফ্রান্সিস্ক

37
যদি একক উদ্ধৃতি সর্বদা ব্যবহৃত হয় এবং মাঝে মাঝে ডাবল উদ্ধৃতি যেখানে আক্ষরিক একক উদ্ধৃতি থাকে তবে আমাদের অনেক কম শিফট বোতাম টাইপ করতে হবে এবং আমাদের বাম ছোট্ট আঙুল আমাদের আশীর্বাদ জানাবে। তবে হ্যাঁ, @ আর্ন যেমন বলেছেন, জেএসএনের জন্য ডাবল উদ্ধৃতি ব্যবহার করা উচিত।
ইসমাইলস

9
আপনি যখন ইউরোপীয় কীবোর্ডে থাকবেন তখন একক উদ্ধৃতি দেওয়া সহজ (ডাবল উক্তিটি হ'ল শিফট +২ যা আপনার ডান গোলাপী দ্বারা স্বাচ্ছন্দ্যে কোনও একক কী চাপার মতো মিষ্টি নয়)।
আর্ন

38
@ আরন "ইউরোপীয় কীবোর্ড" এর মতো কোনও জিনিস নেই। উদাহরণস্বরূপ জার্মান কীবোর্ডের উভয় প্রকারের উদ্ধৃতিগুলির জন্য শিফট দরকার। (তবে একক উদ্ধৃতি আরও সহজ))
এভিনিস

উত্তর:


1221

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

আক্ষরিক হিসাবে অন্যান্য ধরণের উদ্ধৃতি ব্যবহার:

alert('Say "Hello"');
alert("Say 'Hello'");

এটি জটিল হতে পারে:

alert("It's \"game\" time.");
alert('It\'s "game" time.');

ES6- এ নতুন নতুন বিকল্প হ'ল টেমপ্লেট আক্ষরিক যা back-tickঅক্ষর ব্যবহার করে :

alert(`Use "double" and 'single' quotes in the same string`);
alert(`Escape the \` back-tick character and the \${ dollar-brace sequence in a string`);

টেম্পলেট লিটারালগুলি এর জন্য একটি পরিষ্কার সিনট্যাক্স সরবরাহ করে: ভেরিয়েবল ইন্টারপোলেশন, মাল্টি-লাইন স্ট্রিং এবং আরও অনেক কিছু।

নোট করুন যে JSON আনুষ্ঠানিকভাবে ডাবল উক্তি ব্যবহার করার জন্য নির্দিষ্ট করা হয়েছে, যা সিস্টেমের প্রয়োজনীয়তার উপর নির্ভর করে বিবেচনা করার উপযুক্ত হতে পারে।


84
সমস্ত কোড কনভেনশনগুলির সাথে লক্ষ্য রাখার জন্য একটি গুরুত্বপূর্ণ বিষয় - এটি একবার সংজ্ঞায়িত করুন এবং এর সাথে আটকে দিন। IOW, কোথাও কোথাও ডাবল কোট এবং একক উদ্ধৃতি ব্যবহার করবেন না।
সেরিবেরাস

170
@ সেরিব্রাস - আমি মনে করি এটির সাথে নমনীয়তা ঠিক আছে। অবশ্যই পছন্দসই স্টাইলটি বেছে নিন, তবে এক স্ট্রিংয়ে প্রচুর উদ্ধৃতি থেকে বাঁচতে আপনার যদি স্টাইল থেকে দূরে যেতে হয়। আমি এটা ঠিক আছে।
মার্টিন ক্লার্ক

5
আমি মনে করি না যে এটি সম্পর্কে সামঞ্জস্যপূর্ণ হওয়ার কোনও কারণ আছে।
কারওরও

2
@ অলি হিক্স, আকর্ষণীয় পরীক্ষা !! একক উদ্ধৃতিগুলি এখানে ক্রোম 13 (ওএসএক্স) এ ডাবল উদ্ধৃতিগুলির তুলনায় বেশ কয়েকগুণ দ্রুত। আকর্ষণীয় ...
রিকিট

12
সামান্য অফ-টপিক, তবে লোকেরা সঠিক টাইপোগ্রাফি ব্যবহার করলে, পালানোর বিষয়ে এই আলোচনার অনেকগুলি অপ্রচলিত হবে: alert('It’s “game” time')বনাম alert("It’s “game” time")- কোনও ব্যাপার নয়। আপনি শুধুমাত্র (বিরল) ক্ষেত্রে যেখানে একক বা ডবল প্রধানমন্ত্রী সাইন ইন অব্যাহতি হবে ', "আসলে উপযুক্ত।
jotaen

617

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


5
যখন এএসপি.এনইটি পরিষেবাতে (ওয়েব সার্ভিস, পৃষ্ঠা পদ্ধতি বা এমভিসি) কল করার জন্য jQuery.ajax সাথে কাজ করার সময় এটি খুব প্রাসঙ্গিক।
শ্মুলি

100
JSON স্ট্রিংয়ের মধ্যে থাকা সম্পত্তির নামগুলি অবশ্যই ডাবল-কোট করা উচিত, তবে সামগ্রিকভাবে একটি JSON স্ট্রিং একক-উদ্ধৃতি দেওয়া যেতে পারে: var jsonString = '{"key1":"value1"}';(আমি নিজে JSON
বানাতে

51
আপনি যদি .stringify()এটি করতে পারেন তবে হাতে হাতে JSON লিখবেন না ।
ক্যামিলো মার্টিন

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

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

336

এর চেয়ে ভাল সমাধান আর কারও নেই ; তবে, আমি যুক্তি দিয়ে বলতে চাই যে ডাবল উক্তিগুলি অনেক সময়ে আরও আকাঙ্ক্ষিত হতে পারে:

  • নতুনরা ইতিমধ্যে তাদের ভাষা থেকে ডাবল উদ্ধৃতি দিয়ে পরিচিত হবে । ইংরাজীতে, "উদ্ধৃত পাঠ্যের উত্তরণ শনাক্ত করতে আমাদের অবশ্যই ডাবল উদ্ধৃতি ব্যবহার করতে হবে । আমরা যদি একটি একক উদ্ধৃতি ব্যবহার করি 'তবে পাঠক এটি সংকোচনের হিসাবে ভুল ব্যাখ্যা করতে পারেন। চারপাশে পাঠ্য প্যাসেজের অন্য অর্থটি ''চলিত' অর্থ নির্দেশ করে। প্রাক-বিদ্যমান ভাষার সাথে সামঞ্জস্য থাকার বিষয়টি বোধগম্য হয় এবং এটি সম্ভবত কোড শেখা এবং ব্যাখ্যা সহজ করতে পারে।
  • ডাবল উদ্ধৃতিগুলি অ্যাডাস্ট্রোফেস থেকে বাঁচার প্রয়োজনীয়তা (সংকোচনের মতো) দূর করে। স্ট্রিং বিবেচনা করুন: "I'm going to the mall", বনাম অন্যথায় পলান সংস্করণ: 'I\'m going to the mall'
  • ডাবল উদ্ধৃতি অর্থ অন্য অনেক ভাষায় একটি স্ট্রিং । আপনি যখন জাভা বা সি এর মতো কোনও নতুন ভাষা শিখেন, ডাবল উদ্ধৃতি সর্বদা ব্যবহৃত হয়। রুবি, পিএইচপি এবং পার্লে, একক-উদ্ধৃত স্ট্রিংগুলি বোঝায় না যে কোনও ব্যাকস্ল্যাশ এড়ায় না যখন ডাবল উদ্ধৃতি তাদের সমর্থন করে।

  • ডাবল উদ্ধৃতি সহ জেএসএন স্বরলিপি রচিত।

তবুও, অন্যরা যেমন বলেছে, সামঞ্জস্য থাকা সবচেয়ে গুরুত্বপূর্ণ most


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

2
@ জনফারগুসন, কেবল সেই কারণেই, ডাবল-কোট ব্যবহার করা বাঞ্ছনীয় হতে পারে যাতে এই পার্থক্য তৈরি করতে পারে (অ্যাস্ট্রোফেস এবং উদ্ধৃত অংশগুলির মধ্যে)।
ব্যবহারকারী 1429980

আমি সব বাস্তববাদ সম্পর্কে। আমি টাইপ করি বা ব্যবহার করি 100 টির মধ্যে 1 টিতে ডাবল উক্তি রয়েছে এবং অনেকের মধ্যে অনেকেরই অ্যাথাস্ট্রোফ রয়েছে, আমি ডাবল ব্যবহার করি। দিনের শেষে, যদিও আপনার এই প্রকল্পের ক্ষেত্রে ইতিমধ্যে ব্যবহৃত কোট টাইপটি ব্যবহার করা উচিত 1) আপনি যদি প্রকল্পের নতুন বিকাশকারী হন, বা 2) আপনার মনে হয় যে এটি আরও অর্থবোধ করে।
দুদেওয়াদ

কেস
পয়েন্ট

: - FWIW এই একটি কুয়োরা নিবন্ধ থেকে একটি উদ্ধৃতি quora.com/...
theUtherSide

118

স্পেসিফিকেশন বিভাগের 7.8.4 আক্ষরিক স্ট্রিং স্বরলিপি বর্ণনা করে। পার্থক্যটি হ'ল ডাবলস্ট্রিংচার্যাক্টর হ'ল "সোর্সচ্যারাক্টর তবে ডাবল-কোট নয়" এবং সিঙ্গল স্ট্রিংচার্যাকার হ'ল "সোর্সচ্যারাক্টর তবে সিঙ্গল-কোট নয়"। সুতরাং একমাত্র পার্থক্যটি এভাবে প্রকাশ করা যেতে পারে:

'A string that\'s single quoted'

"A string that's double quoted"

সুতরাং আপনি কতটা উদ্ধৃতি করতে চান তা নির্ভর করে। স্পষ্টত একই ডাবল উদ্ধৃতিযুক্ত স্ট্রিংগুলিতে ডাবল উদ্ধৃতিতে প্রযোজ্য।


@ গ্যারেথ: আমি স্পেসিফিকেশন সম্পর্কে কথা বলছিলাম না, আমি সম্ভাব্য পারফরম্যান্স প্রভাব সম্পর্কে বলছিলাম। stackoverflow.com/questions/242813/...
ম্যাথিয়াস Bynens

আপনি যদি আপনার কোডটিতে কত বার শিফট + 'চাপতে চান তার জন্য যথেষ্ট পরিমাণে অ্যাড্রোপ্ফ রেখে দিচ্ছেন তবে আপনি এটি ভুল করছেন।
SgtPooki

1
"{\"name\": \"Peter\"}"বনাম সম্পর্কে কি '{"name": "Peter"}'? স্বীকারোক্তিপূর্ণ, আপনি বলতে পারেন এটি একই পার্থক্য, তবে এটি অবশ্যই উপরের উদাহরণের চেয়ে আপনার সিদ্ধান্তকে অন্যভাবে প্রভাবিত করবে।
ট্রেভর

@ ম্যাথিয়াসবাইনেন্স - এটি একটি আকর্ষণীয় পর্যবেক্ষণ যা কমপক্ষে এক বছরের জন্য প্রাসঙ্গিক নয় এবং সম্ভবত 6 বছর পর্যন্ত প্রযোজ্য নয়।
আর্টঅফ ওয়ারফেয়ার

4
একজনকে
প্রেরিতের

95

একক মূল্য

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

একক উদ্ধৃতি:

কোন পছন্দ নেই:

উদ্ধৃতি চিহ্ন:


7
ক্রকফোর্ড এখন ডাবল কোট পছন্দ করেন।
অ্যাডাম কালভেট বোহল

6
এয়ারবিএনবি এখন ডাবল কোট পছন্দ করে
সুরজ জৈন

15
@ সুরজজাইন সূত্র? এয়ারবিএনবি এবং গুগল স্টাইল গাইডরা এখনও পছন্দসই হিসাবে একক তালিকাবদ্ধ করে।
আলেক মেভ

5
@ সুরজজাইন আহ, এগুলি JSON এ লিখিত কোড স্টাইল চেকার কনফিগারেশন, যা একেবারেই একক উদ্ধৃতি মঞ্জুরি দেয় না। এগুলি পড়া বিভিন্ন প্রকল্পের পছন্দগুলির সাথে তুলনা করার একটি দুর্দান্ত উপায়।
আলেক মেভ

2
গুগল এখন একক উদ্ধৃতি পছন্দ করে
গ্যাব্রিয়েল ওশিরো

57

আমি বলতে চাই পার্থক্যটি নিখুঁতভাবে শৈলীগত, তবে আমার সত্যিই আমার সন্দেহ রয়েছে। নিম্নলিখিত উদাহরণ বিবেচনা করুন:

/*
   Add trim() functionality to JavaScript...
    1. By extending the String prototype
    2. By creating a 'stand-alone' function
   This is just to demonstrate results are the same in both cases.
*/

// Extend the String prototype with a trim() method
String.prototype.trim = function() {
 return this.replace(/^\s+|\s+$/g, '');
};

// 'Stand-alone' trim() function
function trim(str) {
 return str.replace(/^\s+|\s+$/g, '');
};

document.writeln(String.prototype.trim);
document.writeln(trim);

সাফারি, ক্রোম, অপেরা এবং ইন্টারনেট এক্সপ্লোরারগুলিতে (আই 7 এবং আইই 8 তে পরীক্ষিত), এটি নিম্নলিখিতগুলি ফিরিয়ে দেবে:

function () {
 return this.replace(/^\s+|\s+$/g, '');
}
function trim(str) {
 return str.replace(/^\s+|\s+$/g, '');
}

তবে ফায়ারফক্স কিছুটা আলাদা ফলাফল এনে দেবে:

function () {
    return this.replace(/^\s+|\s+$/g, "");
}
function trim(str) {
    return str.replace(/^\s+|\s+$/g, "");
}

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

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

উপসংহার: আমি মনে করি এ বিষয়ে আমাদের আরও গবেষণা করা দরকার।

সম্পাদনা করুন: এটি পিটার-পল কোচের পরীক্ষার ফলাফলগুলি 2003 সাল থেকে ব্যাখ্যা করতে পারে ।

দেখে মনে হয় একক উদ্ধৃতিগুলি কখনও কখনও এক্সপ্লোরার উইন্ডোজে দ্রুত হয় (আমার পরীক্ষাগুলির প্রায় 1/3 দ্রুত প্রতিক্রিয়া সময় দেখায়), তবে মজিলা যদি কোনও পার্থক্য দেখায় তবে এটি ডাবল উদ্ধৃতিগুলি সামান্য দ্রুত পরিচালনা করে। অপেরাতে আমি কোনও পার্থক্য পাইনি।

2014 সম্পাদনা করুন: ফায়ারফক্স / স্পাইডারমনকি এর আধুনিক সংস্করণগুলি আর এটি করে না।


25
এটি যদি এক ব্রাউজারে এক উপায়ে করা কিছুটা দ্রুত এবং অন্য পথে এটি করার জন্য কিছুটা দ্রুত হয় তবে মনে হয় এটি থেকে আমরা যে পথনির্দেশ গ্রহণ করতে পারি তা হ'ল আমাদের আরও যা কিছু করা উচিত তা করা উচিত কারণ এটি কিছু ক্ষতিগ্রস্থ করবে ব্যবহারকারী এবং অন্যকে সহায়তা করে এবং পার্থক্যের পরিমাণ অনর্থক বলে মনে হয়। "অকাল অপটিমাইজেশন ..." এবং এগুলি সব।
অ্যান্ড্রু হেজেস

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

1
এটি একটি দুর্দান্ত উত্তর, বাকী অংশ থেকে বিরতি যা কেবল তারা 'একই they' তারা একই রকম চিপছিল ... ... আপনি বলেছেন "প্লাস, অন্যান্য প্রোগ্রামিং ভাষায়, তারা সাধারণত দ্বিগুণের চেয়ে বেশি দ্রুত ব্যবহার করেন উদ্ধৃতি " , আমি কোন ভাষা জিজ্ঞাসা করতে পারি? আমি জাভা এবং সি # এর মতো নিয়মিত ল্যাংগুলি ব্যবহার করেছি, জেএস ব্যতীত আর কখনও দেখিনি যা একক উদ্ধৃতিতে স্ট্রিং লিটারাল গ্রহণ করে। একক উদ্ধৃতি ঘেরগুলি সাধারণত চরিত্রের ধ্রুবকগুলির জন্য ব্যবহৃত হয় (কেবলমাত্র একটি চর অনুমোদিত)
এডিটিসি

3
এএফআইএকে ফায়ারফক্স ১ 17-এ স্থির করা হয়েছিল, ফায়ারফক্স যখন করণীয় তখন সংক্ষেপণ করত .toStringতবে এখন এটি আসল অনুলিপিটি দেয়। আধুনিক ফায়ারফক্সের এই সমস্যাটি থাকবে না।
বেনজামিন গ্রুয়েনবাউম

3
গতির পার্থক্য সম্পর্কে জানেন না। তবে আমি নোট করতে চাই যে "এটি এই ধারণাটি দেয় যে কমপক্ষে একটি ব্রাউজার জাভাস্ক্রিপ্ট অভ্যন্তরীণভাবে পার্স করে যেন সবকিছু ডাবল কোট ব্যবহার করে লেখা হয়েছিল" " বাজে কথা। এটি ইউএন পার্স করে যেন ডাবল কোট দিয়ে লেখা থাকে। এর ফলে এটি তার অভ্যন্তরীণ উপস্থাপনা (যা কেবল স্ট্রিং সঞ্চয় করে, কোটগুলি নয়) একটি মানব পাঠযোগ্য সংস্করণে পরিণত করে, যার জন্য এটি উদ্ধৃতিগুলির একটি সেট ব্যবহার করতে ঘটে। যাইহোক, বেনজমিনের মন্তব্য অনুসারে এটি সম্ভবত পরিবর্তিত হয়েছে বলে মনে হয়।
সাবস্কব

32

আপনি যদি ইনলাইন জাভাস্ক্রিপ্টটি করছেন (তর্কাতীতভাবে একটি "খারাপ" জিনিস, তবে সেই আলোচনাটি এড়ানো হচ্ছে) তবে একক উদ্ধৃতিগুলি স্ট্রিং লিটারেলের জন্য আপনার একমাত্র বিকল্প, আমি বিশ্বাস করি।

যেমন এটি কাজ করে:

<a onclick="alert('hi');">hi</a>

তবে আপনি যে কোনও অব্যাহতি পদ্ধতি সম্পর্কে অবগত আছেন তার মাধ্যমে আপনি "হাই" ডাবল উদ্ধৃতিতে মুড়ে রাখতে পারবেন না। এমনকি &quot;যা আমার সেরা অনুমান (যেহেতু আপনি এইচটিএমএল এর একটি গুণিত মানতে উদ্ধৃতিগুলি এড়িয়ে চলেছেন) ফায়ারফক্সে আমার পক্ষে কাজ করে না। \"হয় কাজ করবে না কারণ এই সময়ে আপনি জাভাস্ক্রিপ্ট নয়, এইচটিএমএলের জন্য পালাচ্ছেন।

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


8
তর্কাতীতভাবে একটি খারাপ জিনিস হওয়ার বিষয়ে একমত হয়েছিলেন, তবে এটি করা গেলে অবশ্যই আমি নিশ্চিত যে ইউআরএল-স্টাইলের এনকোডিং ব্যবহার করা যেতে পারে যেমন <a onclick="alert(%22hi%22);">hi</a>- মেমরি থেকে এই কাজ করে, যদিও এটি পরিবর্তে href বৈশিষ্ট্যে থাকতে পারে<a href="javascript:alert(%22hi%22);">hi</a>
গ্রাজা

2
@ ফিলিও আপনি এটার কথা ঠিকই বলেছেন ... আমি ধরেই নিচ্ছিলাম যে লোকেরা প্রচলিতভাবে ডাবল-কোটেড এইচটিএমএল বৈশিষ্ট্যগুলি লিখছেন, এবং (1) পাইকারিকে সবকিছুকে একক উদ্ধৃতিতে রূপান্তর করতে বা (2) মিক্স-এন্ড ম্যাচ করতে যাচ্ছেন না একক এবং ডাবল উদ্ধৃত বৈশিষ্ট্য। তবে হ্যাঁ, আপনি ঠিক বলেছেন এটি বৈধ
টম লিয়াঞ্জা

4
@ টম লিয়ানজা, অবশ্যই alert(&quot;hi&quot;)বৈধ জাভাস্ক্রিপ্ট নয়। তবে বৈশিষ্ট্যের মানগুলি এনকোড করা হয়। w3.org/TR/html4/intro/sgmltut.html#didx-attribute
রবার্ট

4
এখানে @ রবার্টের সাথে একমত &quot;এইচটিএমএল বৈশিষ্ট্যের ডাবল উদ্ধৃতি থেকে বাঁচার সঠিক উপায়। এটি ফায়ারফক্সে দুর্দান্ত কাজ করে। @ ডেনিলসন, এক্সএমএল (এবং তাই এক্সএইচটিএমএল) উভয় একক এবং ডাবল উদ্ধৃতি মঞ্জুরি দেয়। ডাব্লু 3.org/TR/REC-xML/#d0e888AttValue এ এক্সএমএল স্পেকের আক্ষরিক দেখুন ।
ক্রিস কলো

1
@ পেসার: কারণ এটি, আহ, ভুল নয়। ডাবল উদ্ধৃতিগুলির মধ্যে অ্যাট্রিবিউটগুলি রাখার জন্য এইচটিএমএলে একটি সম্মেলন রয়েছে।
কনরাড বোরোস্কি

30

প্রযুক্তিগতভাবে কোনও পার্থক্য নেই, এটি কেবল স্টাইল এবং সম্মেলনের বিষয়।

ডগলাস ক্রকফোর্ড আভ্যন্তরীণ স্ট্রিংগুলির জন্য একক উদ্ধৃতি এবং বহিরাগতের জন্য ডাবল কোট ব্যবহার করার পরামর্শ দেন (বাহ্যিকভাবে আমরা তাদের ব্যবহারকারীর কাছে বার্তাগুলি বা সতর্কতাগুলির মতো প্রদর্শিত হয়)।

আমি ব্যক্তিগতভাবে তা অনুসরণ করি।

আপডেট: দেখা যাচ্ছে যে মিঃ ক্রোকফোর্ড তার মন পরিবর্তন করেছেন এবং এখন জুড়ে ডাবল কোট ব্যবহার করার পরামর্শ দিয়েছেন :)


13
ডগলাস ক্রকফোর্ড বনাম জিকুয়েরি। আপনার বিষ বাছুন।
এরিক

এর জন্য ক্রকফোর্ডের যুক্তি কী?
BadHorsie

1
এটিই আমি অনুসরণ করি convention এটি আরও ব্যক্তিগত পছন্দ। আমি jQuery সিলেক্টরের মতো অভ্যন্তরীণ স্টাফগুলির জন্য এবং / অথবা getElementById ('আইডি') এর মতো জিনিসগুলির জন্য একক উদ্ধৃত স্ট্রিংগুলি ব্যবহার করতে পছন্দ করি; আমি একক উদ্ধৃতিতে যেভাবে দেখায় ঠিক তা পছন্দ করি। তবে, বাহ্যিক পাঠ্যের জন্য ডাবল উক্তিগুলিতে স্যুইচ করুন, কারণ এটি প্রায়শই পাঠ্যের অভ্যন্তরীণ উক্তি থাকতে পারে। এছাড়াও, যদি আপনি একটি বা অন্য একটিতে ত্রুটি সন্ধান করার চেষ্টা করছেন তবে এটি বাহ্যিক বনাম অভ্যন্তরীণ স্ট্রিংগুলির মধ্যে স্পট এবং পার্থক্য করা সহজ করে তোলে।
আদিমুরো

3
২০১ April সালের এপ্রিল পর্যন্ত, ডগলাস ক্রকফোর্ড কেবলমাত্র ডাবল কোট ব্যবহার করার পরামর্শ দিয়েছেন, বাস্তবে , অনেক বিকাশকারী অভ্যন্তরীণ বনাম বহিরাগত ডিকোটোমি ব্যবহার করা কঠিন বলে মনে করেছিলেন।
থান্ডারফোরজ

27

কড়া কথা বলতে গেলে, অর্থের কোনও পার্থক্য নেই; সুতরাং পছন্দটি সুবিধার্থে নেমে আসে।

আপনার choise প্রভাবিত করতে পারে যে এখানে বেশ কয়েকটি কারণ রয়েছে:

  • বাড়ির শৈলী: বিকাশকারীদের কিছু গোষ্ঠী ইতিমধ্যে একটি কনভেনশন বা অন্য ব্যবহার করে।
  • ক্লায়েন্ট-পাশ প্রয়োজনীয়তা: আপনি স্ট্রিংয়ের মধ্যে কোট ব্যবহার করবেন? (অ্যাডির উত্তর দেখুন)
  • সার্ভার-পার্শ্বের ভাষা: VB.Net লোকেরা জাভা-স্ক্রিপ্টের জন্য একক উদ্ধৃতি ব্যবহার করতে পছন্দ করতে পারে যাতে স্ক্রিপ্টগুলি সার্ভার-সাইড তৈরি করা যায় (VB.Net স্ট্রিংগুলির জন্য ডাবল-কোট ব্যবহার করে, তাই জাভা স্ক্রিপ্টের স্ট্রিংগুলি আলাদা করা সহজ যদি তারা একক উদ্ধৃতি ব্যবহার করে)।
  • লাইব্রেরি কোড: আপনি যদি কোনও লাইব্রেরি ব্যবহার করেন যা কোনও নির্দিষ্ট শৈলী ব্যবহার করে, আপনি নিজে একই স্টাইলটি ব্যবহার করার বিষয়টি বিবেচনা করতে পারেন।
  • ব্যক্তিগত পছন্দ: আপনি ভাবতে পারেন যে এক বা অন্য শৈলীটি আরও ভাল দেখাচ্ছে।

সত্য না, 'হয় 00100111, বাইনারি যখন "হয় 00100010বাইনারি হবে। সুতরাং, ডাবল উদ্ধৃতিগুলি একক উদ্ধৃতি হিসাবে অর্ধেক শক্তি সঞ্চয় করতে পারে। ঠিক সেখানে পার্থক্য।

19

একটি রেফারেন্স কি দেখতে দিন।

Jquery.js এর ভিতরে, প্রতিটি স্ট্রিং ডাবল-কোটেড হয়।

সুতরাং, এখন থেকে, আমি ডাবল-কোটেড স্ট্রিং ব্যবহার করব। (আমি একক ব্যবহার করছিলাম!)


11
কেন এই ডাউন ভোট দেওয়া হয়। এটি শৈলীর একটি প্রশ্ন এবং আপনার আগে যারা এসেছিল তাদের অনুসরণ করা ভাল শৈলী and
এরিক

2
+1 jQuery এপিআই ডকুমেন্টেশন খুব করে। এটিই ছিল একমাত্র কারণ যা আমি ডাবল কোটের জন্য স্থির করেছিলাম। ব্যক্তিগতভাবে, আমি মনে করি যে উত্তরগুলি "ব্যক্তিগত পছন্দের দিকে নেমে আসে" কিছুটা ত্রুটিযুক্ত - বহুল ব্যবহৃত একটি কনভেনশন সন্ধান করে এটির সাথে যুক্ত থাকা ভাল। এবং যেহেতু আমি jQuery (প্রত্যক্ষ বা অপ্রত্যক্ষভাবে) থেকে উদাহরণগুলি অনুলিপি এবং আটকানোতে চাইতে পারি, তাই প্রতিবার কোটগুলি প্রতিস্থাপন করতে চাই না।
স্টিভ চেম্বারস

2
সম্ভবত jQuery লোকদের আগে তাদের অনুসরণ করতে ব্যর্থ হয়েছিল (বা অন্যান্য বিশেষজ্ঞের মতো সত্যিই যত্ন নেননি)। ;)
জেমস উইলকিনস

14

আপনি যা ব্যবহার করেন তাতে কেবল ধারাবাহিকতা বজায় রাখুন। তবে আপনার আরামের স্তরটি হ্রাস করবেন না।

"This is my string."; // :-|
"I'm invincible."; // comfortable :)
'You can\'t beat me.'; // uncomfortable :(
'Oh! Yes. I can "beat" you.'; // comfortable :)
"Do you really think, you can \"beat\" me?"; // uncomfortable :(
"You're my guest. I can \"beat\" you."; // sometimes, you've to :P
'You\'re my guest too. I can "beat" you too.'; // sometimes, you've to :P

ES6 আপডেট

টেমপ্লেট আক্ষরিক সিনট্যাক্স ব্যবহার করে ।

`Be "my" guest. You're in complete freedom.`; // most comfort :D

13

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

  • আপনি যদি কোনও সংস্থা বা দলে কোডিং করছেন তবে সম্ভবত "ঘরের শৈলী" অনুসরণ করা ভাল good

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

  • যদি উভয় নিয়মাবলী সমানভাবে ব্যবহার করা হয়, তারপর আপনার ব্যক্তিগত যাও মুলতবি
    পক্ষপাত।

  • আপনার যদি ব্যক্তিগত পছন্দ না থাকে তবে একটি মুদ্রা ফ্লিপ করুন।

  • আপনার যদি মুদ্রা না থাকে তবে বিয়ারটি আমার উপর রয়েছে;)


13

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

ধরে নিই যে আপনার এইচটিএমএল কোডে আপনি ডাবল কোট ব্যবহার করেন, সাধারণভাবে হওয়া উচিত, আমি জাভাস্ক্রিপ্টে বাকী অংশের জন্য একক উদ্ধৃতি ব্যবহার করার পরামর্শ দিই।

সুতরাং আমি @ অ্যাডির সাথে তবে কিছু যত্নের সাথে একমত।

আমার নীচের লাইনটি হ'ল: জাভাস্ক্রিপ্টে সম্ভবত এটি কোনও ব্যাপার নয়, তবে আপনি এটি এইচটিএমএল বা এম্বেড এম্বেড করার সাথে সাথেই আপনি ঝামেলা পেতে শুরু করেন। আপনার স্ট্রিংটি আসলে কী পালাচ্ছে, পড়ছেন, পাশ করছেন তা আপনার জানা উচিত।

আমার সাধারণ ঘটনাটি ছিল:

tbox.innerHTML = tbox.innerHTML + '<div class="thisbox_des" style="width:210px;" onmouseout="clear()"><a href="https://stackoverflow.com/this/thislist/'
                   + myThis[i].pk +'"><img src="/site_media/'
                   + myThis[i].fields.thumbnail +'" height="80" width="80" style="float:left;" onmouseover="showThis('
                   + myThis[i].fields.left +','
                   + myThis[i].fields.right +',\''
                   + myThis[i].fields.title +'\')"></a><p style="float:left;width:130px;height:80px;"><b>'
                   + myThis[i].fields.title +'</b> '
                   + myThis[i].fields.description +'</p></div>'

আপনি শো এর তৃতীয় ক্ষেত্রে in 'স্পট করতে পারেন।

ডাবল উদ্ধৃতি কাজ করেনি!

এটি কেন স্পষ্ট, তবে এটিও স্পষ্ট যে কেন আমাদের একক উদ্ধৃতিতে আটকে রাখা উচিত ... .. আমার ধারণা ...

এই কেসটি একটি খুব সাধারণ এইচএমএল এম্বেডিং, ত্রুটিটি একটি 'অনাবৃত' জাভাস্ক্রিপ্ট কোড থেকে একটি সাধারণ অনুলিপি / পেস্ট দ্বারা উত্পন্ন হয়েছিল।

সুতরাং প্রশ্নের উত্তর দিতে:

এইচটিএমএল থাকা অবস্থায় একক উদ্ধৃতি ব্যবহার করার চেষ্টা করুন। এটি হয়ত বেশ কয়েকটি ডিবাগ সমস্যাগুলি সংরক্ষণ করতে পারে ...


1
আমি ইএস 6 স্ট্রিং ইন্টারপোলেশন (ব্যাকটিকস) নিয়ে একই ধরণের সমস্যায় পড়েছি। আমার বিল্ড সিস্টেমটি এটিকে একটি দ্বৈত-উদ্ধৃত স্ট্রিংয়ে সংকলিত করেছে, যা এমন এক অথির শিরোনামকে ভেঙে দেয় যা একক উদ্ধৃতি দিয়ে কাজ করে!
জয়

12

এটি আজকের বিশ্বে প্রাসঙ্গিক কিনা তা নিশ্চিত নয় তবে কন্ট্রোল অক্ষর প্রক্রিয়াজাতকরণ এবং স্ট্রিংগুলির জন্য একক উদ্ধৃতি থাকা দরকার এমন সামগ্রীর জন্য ডাবল উদ্ধৃতি ব্যবহৃত হত।

সংকলকটি একটি একক উদ্ধৃত স্ট্রিংকে আক্ষরিকরূপে বাঁচিয়ে রেখে ডাবল উদ্ধৃত স্ট্রিংয়ের উপর স্ট্রিং ম্যানিপুলেশন চালাবে। এই স্ট্রিং যে মত নিয়ন্ত্রণ অক্ষর থাকতে পারে না জন্য একক উদ্ধৃতি চিহ্ন ব্যবহার করার জন্য চয়ন "ভাল" বিকাশকারীদের কাছে ইমামতি করতেন \nবা \0ডবল কোট (একক উদ্ধৃতি মধ্যে প্রক্রিয়া করা) এবং যখন তারা cpu 'র চক্র সামান্য খরচে স্ট্রিং পার্স (প্রয়োজন স্ট্রিং প্রক্রিয়াজাতকরণ)।


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

প্রাক্তন পার্ল প্রোগ্রামার হিসাবে, আমি এটিই ভাবতে থাকি যদিও আমি জেএসে এর অপ্রাসঙ্গিক জানি।
zkent

12

আপনি jshint ব্যবহার করছেন , আপনি ডাবল উদ্ধৃতি স্ট্রিং ব্যবহার করে এটি একটি ত্রুটি উত্থাপন করবে।

আমি এঙ্গুলারজেএস এর ইওমেন স্ক্যাফোল্ডোল্ডিংয়ের মাধ্যমে এটি ব্যবহার করেছি তবে সম্ভবত এটির কনফিগার করার জন্য কোনও উপায় আছে।

যাইহোক, আপনি যখন জাভাস্ক্রিপ্টে এইচটিএমএল পরিচালনা করেন তখন একক উদ্ধৃতি ব্যবহার করা আরও সহজ:

var foo = '<div class="cool-stuff">Cool content</div>';

এবং কমপক্ষে JSON স্ট্রিংগুলিকে পুনরায় প্রকাশ করতে ডাবল কোটস ব্যবহার করছে।

আপনার প্রশ্নের উত্তর দেওয়ার জন্য কোনও তুচ্ছ উপায় নেই


বাস্তবায়ন jshint পরিবর্তন হয়েছে? যেহেতু ডেমো ওয়েবসাইটটি কোনও সতর্কতা / ত্রুটি না ছুঁড়েই গ্রহণযোগ্য বলে মনে হচ্ছে এবং আমি jshint ব্যবহার করতে বাধা দেওয়ার কোনও বিকল্প খুঁজে পাচ্ছি না। সম্ভবত এই উত্তরটি পুরানো বা ভুল?
লেয়া হেইস

যদি jshint একটি ডাবল উদ্ধৃত স্ট্রিংয়ের জন্য ত্রুটি উত্থাপন করে তবে এটি মারাত্মকভাবে ভাঙা। জাভাস্ক্রিপ্ট স্ট্যান্ডার্ড সংশোধন করে কোনটি সঠিক এবং কিছু ভাঙ্গা ভাঙ্গাটি নয়।
মক্কি

10

পারফরম্যান্স সম্পর্কে কথা বলছি, উদ্ধৃতিগুলি কখনও আপনার বাধা হয়ে উঠবে না, তবে উভয় ক্ষেত্রেই পারফরম্যান্স একই is

কোডিংয়ের গতি সম্পর্কে কথা বলছি ', আপনি যদি স্ট্রিংটি সীমিত করার জন্য ব্যবহার করেন তবে আপনার "উদ্ধৃতি থেকে বাঁচতে হবে । "আপনার স্ট্রিংয়ের অভ্যন্তরে ব্যবহারের প্রয়োজন বেশি রয়েছে , উদাহরণস্বরূপ:

//JSON Objects:
var jsonObject = '{"foo":"bar"}';
//HTML attributes:
document.getElementById("foobar").innerHTML = '<input type="text">';

তারপরে, আমি 'স্ট্রিংটি সীমিত করার জন্য ব্যবহার করতে পছন্দ করি , তাই আমাকে কম অক্ষরগুলি থেকে বাঁচতে হবে।


10

একক উদ্ধৃতি ব্যবহার করার একটি (নির্বোধ) কারণ হ'ল এগুলি লিখতে আপনাকে শিফট কীটি চাপার প্রয়োজন নেই, যেখানে দ্বিগুণ উদ্ধৃতি রয়েছে। (আমি ধরে নিচ্ছি যে গড়ের স্ট্রিংয়ের জন্য পালানোর দরকার নেই, এটি একটি যুক্তিসঙ্গত অনুমান is) এখন, ধরুন আমি প্রতিদিন 200 কোডের কোডটি কোড করি। হয়তো সেই 200 লাইনে আমার কাছে 30 টি উদ্ধৃতি রয়েছে। সম্ভবত একটি ডাবল উদ্ধৃতি টাইপ করতে একক উদ্ধৃতি টাইপ করার চেয়ে 0.1 সেকেন্ড বেশি সময় লাগে (কারণ আমাকে শিফট কীটি চাপতে হবে)। তারপরে যে কোনও দিন আমি 3 সেকেন্ড নষ্ট করি। আমি যদি 40 বছরের জন্য বছরে 200 দিন এই পদ্ধতিতে কোড করি তবে আমি আমার জীবনের 6.7 ঘন্টা নষ্ট করেছি। চিন্তার জন্য খাদ্য.


1
আমার ধারণা আপনি এখানে কেবল ইংলিশ কীবোর্ড বিন্যাসের কথা উল্লেখ করছেন ... আমার একটি জার্মান আছে, উভয়ের জন্য আমাকে শিফট করতে হবে। যাইহোক আমি শিফট কী টিপতে প্রক্রিয়াটিতে সময় যোগ করে কেন তা দেখতে পাচ্ছি না। আমি বাম হাত দিয়ে শিফট টিপুন, এবং ডান সঙ্গে উদ্ধৃতি কী টিপুন। এটি একই সাথে ঘটে, আমার জন্য কোনও পার্থক্য নেই।
কোডওয়ান্ডার

1
@ কোডউইন্ডলার শিফট কী টিপতে হবে এমনকি আপনার "কী এর সমান্তরালভাবে টিপতে পারেন এমন কিছুর দাম আছে। এটি আপনাকে তার ডিফল্ট অবস্থান থেকে একটি আঙুল সরিয়ে নিতে বাধ্য করে example উদাহরণস্বরূপ, ধরুন আপনি টাইপ করছেন: var description = "This is a \"quick\" test";চালু একটি ইংলিশ কীবোর্ড an একটি ইংরেজী কীবোর্ডের জন্য, আপনার গোলাপী আঙুলটি অবশ্যই বাম দিকের শিফট কী থেকে উপরে সারিটির কি কিতে উঠে যাবে পরিবর্তে A কী থেকে Q কিতে যাবে না other অন্য কথায়, এটি অবশ্যই দু'বার দূরত্ব ভ্রমণ করতে হবে জার্মান কিবোর্ডে কীগুলি রয়েছে তা আমি নিশ্চিত নই, তবে আমি নিশ্চিত যে এর সদৃশ উদাহরণ রয়েছে
জন কুর্লাক

2
@ কোডউইন্ডলার এছাড়াও, শিফট টাইপ করার পরেও, আমি এটি সমান্তরালভাবে করতে পারলেও, বাম
গোলাপী আঙুলটি

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

9

উপকারিতা এবং বিপরীতে পরীক্ষা করা

একক উদ্ধৃতি পক্ষে

  • ভিজ্যুয়াল হুড়োহুড়ি কম।
  • এইচটিএমএল উত্পাদন করা: এইচটিএমএল বৈশিষ্ট্যগুলি সাধারণত ডাবল উদ্ধৃতি দ্বারা সীমিত করা হয়।

elem.innerHTML = '<a href="' + url + '">Hello</a>';
তবে, একক উদ্ধৃতি ঠিক এইচটিএমএলে আইনী।

elem.innerHTML = "<a href='" + url + "'>Hello</a>";

তদতিরিক্ত, ইনলাইন এইচটিএমএল সাধারণত একটি অ্যান্টি-প্যাটার্ন। টেমপ্লেটগুলি পছন্দ করুন।

  • জেএসএন তৈরি হচ্ছে: জেএসএনে কেবলমাত্র ডাবল উদ্ধৃতি অনুমোদিত।

myJson = '{ "hello world": true }';

আবার, আপনার এইভাবে JSON নির্মাণ করা উচিত নয়। JSON.stringify () প্রায়শই যথেষ্ট। যদি তা না হয় তবে টেমপ্লেটগুলি ব্যবহার করুন।

ডাবল উদ্ধৃতি পক্ষে

  • আপনার কাছে রঙিন কোডিং না থাকলে দ্বিগুণ স্পট করা সহজ। কনসোল লগ বা কিছু ধরণের ভিউ-সোর্স সেটআপে পছন্দ করুন।
  • অন্যান্য ভাষার সাথে সাদৃশ্য: শেল প্রোগ্রামিং (বাশ ইত্যাদি) এ, একক-উদ্ধৃত স্ট্রিং লিটারেল উপস্থিত থাকে তবে তাদের মধ্যে পলায়নগুলি ব্যাখ্যা করা যায় না। সি এবং জাভা অক্ষরের জন্য স্ট্রিং এবং একক উদ্ধৃতিগুলির জন্য ডাবল উদ্ধৃতি ব্যবহার করে।
  • আপনি যদি কোডটি বৈধ JSON হতে চান তবে আপনার ডাবল উদ্ধৃতি ব্যবহার করতে হবে।

উভয়ের পক্ষে

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

    "He said: \"Let's go!\""
    'He said: "Let\'s go!"'
    "He said: \"Let\'s go!\""
    'He said: \"Let\'s go!\"'

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


8

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

আপনি যদি স্ট্রিং লিখে আপনার পিএইচপি-র জন্য ডাবল কোট ব্যবহার করেন তবে আপনাকে কোনও একক উদ্ধৃতি থেকে বাঁচতে হবে না এবং পিএইচপি স্বয়ংক্রিয়ভাবে আপনার জন্য ভেরিয়েবলের মান পুনরুদ্ধার করবে।

উদাহরণ: আমার সার্ভার থেকে একটি ভেরিয়েবল ব্যবহার করে জাভাস্ক্রিপ্ট ফাংশন চালানো দরকার।

public static function redirectPage( $pageLocation )
{
    echo "<script type='text/javascript'>window.location = '$pageLocation';</script>";
}

স্ট্রিংগুলিতে যোগদানের ক্ষেত্রে এটি আমার অনেক ঝামেলা বাঁচায় এবং আমি পিএইচপি থেকে জাভাস্ক্রিপ্ট কার্যকরভাবে কল করতে পারি। এটি কেবলমাত্র একটি উদাহরণ, তবে প্রোগ্রামাররা জাভাস্ক্রিপ্টে একক উদ্ধৃতিতে ডিফল্ট হওয়ার একাধিক কারণে এটি হতে পারে।

পিএইচপি নথি থেকে উদ্ধৃতি : "ডাবল-কোটেড স্ট্রিংগুলির সর্বাধিক গুরুত্বপূর্ণ বৈশিষ্ট্যটি হল ভেরিয়েবলের নামগুলি প্রসারিত করা হবে details বিশদগুলির জন্য স্ট্রিং পার্সিং দেখুন" "


+1, আমি আমার এমভিসি.নেট প্রকল্পে এটি করছি যাতে সি # থেকে ডাবল-কোটগুলি জাভাস্ক্রিপ্টের একক উদ্ধৃতিতে বাধা না দেয় এবং এর বিপরীতে।
ডিসিএসনন

3
আমি মনে করি আপনি যদি পিএইচপি ক্লাস পদ্ধতি থেকে আপনার পৃষ্ঠায় জাভাস্ক্রিপ্ট লিখছেন তবে আপনার বড় সমস্যা রয়েছে।
BadHorsie

6

পারফর্মেন্স পার্থক্য দেখার দাবি করে এমন লোক রয়েছে: পুরানো মেলিং তালিকার থ্রেড । তবে আমি তাদের কোনওটিও নিশ্চিত হতে পেলাম না।

প্রধান জিনিসটি আপনার স্ট্রিংয়ের ভিতরে আপনি কী ধরণের কোট (ডাবল বা একক) ব্যবহার করছেন তা দেখতে হবে। এটি পলায়নের সংখ্যা কম রাখতে সহায়তা করে। উদাহরণস্বরূপ আপনি যখন আপনার স্ট্রিংয়ের মধ্যে এইচটিএমএল নিয়ে কাজ করছেন, তখন একক উদ্ধৃতি ব্যবহার করা সহজ হয় যাতে আপনাকে বৈশিষ্ট্যের চারপাশে সমস্ত ডাবল উদ্ধৃতি থেকে বাঁচতে না হয়।


যদিও বৈশিষ্ট্যগুলি পাশাপাশি একক উদ্ধৃতি
দিয়েও

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

6

আমি একক উদ্ধৃতি ব্যবহার করা যায় না এবং এর বিপরীতে ডাবল উদ্ধৃতি ব্যবহার করব:

"'" + singleQuotedValue + "'"
'"' + doubleQuotedValue + '"'

পরিবর্তে:

'\'' + singleQuotedValue + '\''
"\"" + doubleQuotedValue + "\""

কি একটি স্ট্রিং lly উভয় একক উদ্ধৃতি এবং O'rea মত "ডাবল উদ্ধৃতি ধারণকারী সম্পর্কে
sudhAnsu63

6

জাভাস্ক্রিপ্টে একক এবং ডাবল উদ্ধৃতিগুলির মধ্যে কোনও পার্থক্য নেই।

স্পেসিফিকেশন গুরুত্বপূর্ণ:

পারফরম্যান্সের বিভিন্নতা থাকতে পারে তবে এগুলি একেবারে ন্যূনতম এবং ব্রাউজারগুলির প্রয়োগ অনুসারে প্রতিদিন পরিবর্তন করতে পারে। আপনার জাভাস্ক্রিপ্ট অ্যাপ্লিকেশনটি কয়েক হাজার দীর্ঘ না হলে আরও আলোচনা নিষ্ফল।

এটি যদি একটি মানদণ্ডের মতো হয়

a=b;

তুলনায় দ্রুত

a = b;

(অতিরিক্ত স্থান)

আজ, একটি নির্দিষ্ট ব্রাউজার এবং প্ল্যাটফর্মে, ইত্যাদি।


2
স্থান ছাড়াই দ্রুত হয়। স্ট্রিংটিতে পার্স করার জন্য কম অক্ষর। : পি
পাইলাভডিজিস

6

কফিস্ক্রিপ্ট ব্যবহার করার সময় আমি ডাবল কোট ব্যবহার করি। আমি সম্মত হই যে আপনার কোনও একটি বাছাই করা উচিত এবং এটিতে আটকে থাকুন। ডাবল কোট ব্যবহার করার সময় কফিস্প্রিপ্ট আপনাকে ইন্টারপোলেশন দেয়।

"This is my #{name}"

ইএস 6 টেম্পলেট স্ট্রিংয়ের জন্য ব্যাক টিক (`) ব্যবহার করছে। যার সম্ভবত একটি ভাল কারণ আছে তবে কোডিংয়ের সময় আন্তঃবিরাম বৈশিষ্ট্যটি পেতে স্ট্রিং আক্ষরিক চরিত্রের উদ্ধৃতি বা ডাবল কোট থেকে ব্যাক টিকগুলিতে পরিবর্তন করা জটিল হতে পারে। কফিস্ক্রিপ্ট নিখুঁত নাও হতে পারে তবে একই স্ট্রিং লিটারাল অক্ষরটি সর্বত্র ব্যবহার করা (ডাবল কোটস) এবং সর্বদা ইন্টারপোলেটে সক্ষম হওয়া একটি দুর্দান্ত বৈশিষ্ট্য।

`This is my ${name}`

আমার কাছে পিছনের টিকটি এই প্রতিযোগিতায় একটি স্পষ্ট বিজয়ী, (প্রায়) সাধারণ পাঠ্য স্ট্রিংগুলির অভ্যন্তরে উপস্থিতি না থাকলেও বিভিন্ন বর্ণনানুসরণ
সিমোন পোগি

5

আপনি যদি জাভাস্ক্রিপ্ট এবং সি # এর মধ্যে কিছুটা পিছনে ঝাঁপিয়ে পড়ে থাকেন তবে সাধারণ কনভেনশন যা আপনার ডাবল কোট হয় তার জন্য আঙ্গুলগুলি প্রশিক্ষণ দেওয়া ভাল।


5

আমি প্রায় 20 বার নিম্নলিখিত চালিয়ে যাচ্ছি। এবং এটি প্রদর্শিত হয় যে ডাবল উদ্ধৃতিগুলি প্রায় 20% দ্রুত।

মজার অংশটি হ'ল, আপনি যদি পার্ট 2 এবং পার্ট 1 এর চারপাশে পরিবর্তন করেন তবে একক উদ্ধৃতি প্রায় 20% দ্রুত are

//Part1
var r='';
var iTime3 = new Date().valueOf();
for(var j=0; j<1000000; j++) {
    r+='a';
}
var iTime4 = new Date().valueOf();
alert('With single quote : ' + (iTime4 - iTime3));  

//Part 2                
var s="";
var iTime1 = new Date().valueOf();
for(var i=0; i<1000000; i++) {
    s += "a";
}
var iTime2 = new Date().valueOf();
alert('With double quote: ' + (iTime2 - iTime1));

31
অন্য একটি উপায় রাখুন, আপনি দেখতে পেয়েছেন যে পরবর্তী কোডটি দ্রুততমভাবে চলে। মাইক্রো-বেঞ্চমার্কগুলি করার সময় এই সমস্যাটি হয়। কোডটি চলার সাথে সাথে আপনাকে জেএস ইঞ্জিনটির অনুকূলকরণ করতে হবে। (জেআইটি কীভাবে কাজ করে তার কারণে জাভা বেঞ্চমার্ক করার সময় আপনি এই একই প্রভাব দেখতে পাবেন
ডেভিড ফিলিপস

4
প্রথম নতুন তারিখটি ধীর গতির, var dummy_date = new Date()শুরুতে যুক্ত করুন
লরি

1
এখানে মাইক্রো-অপ্টিমাইজেশনের স্তরটি এত নির্বোধ যে আপনি এই যুক্তিও দিতে পারেন যে একক উদ্ধৃতিগুলি টাইপ করা দ্রুত, দ্রুত বিকাশের দিকে পরিচালিত করে।
বিউজর

4

কঠোরভাবে কোনও পার্থক্য নেই, তাই পলায়নের সংখ্যা কম রাখার জন্য এটি বেশিরভাগ স্বাদ এবং স্ট্রিংয়ে যা রয়েছে (বা জেএস কোড নিজেই একটি স্ট্রিংয়ে থাকে) এর বিষয়।

গতি পার্থক্য কিংবদন্তি পিএইচপি বিশ্ব থেকে আসতে পারে, যেখানে দুটি উক্তিটির আলাদা আচরণ রয়েছে।


এবং রুবি, আমি যোগ করতে পারেন। পাইথনের জাভাস্ক্রিপ্টের মতোই আচরণ: একক / ডাবল উদ্ধৃতিগুলির মধ্যে কোনও তফাত হয় না।
দামির জেকিć

4

সমস্ত উত্তরগুলি পড়ার পরে যা বলে যে এটি সম্ভবত দ্রুততর হতে পারে বা এর সুবিধাগুলি থাকতে পারে, আমি বলব ডাবল উদ্ধৃতিটি ভাল বা সম্ভবত আরও দ্রুত কারণ গুগল ক্লোজার সংকলক একক উদ্ধৃতিগুলিকে ডাবল কোটে রূপান্তর করে।


আপনি কি জানেন যে এটি কেন করে?
ma11hew28

আমি জানি না। হতে পারে এটি একটি কোডিং কনভেনশন এবং বিশেষ কিছু নয়।
মোহসেন

4

এখন এটি ২০২০, জাভাস্ক্রিপ্টের জন্য আমাদের তৃতীয় বিকল্পটি বিবেচনা করা উচিত: সব কিছুর জন্য একক ব্যাকটিক।

এটি একক বা ডাবল উদ্ধৃতিগুলির পরিবর্তে সর্বত্র ব্যবহার করা যেতে পারে।

এটি আপনাকে সমস্ত জিনিস করার অনুমতি দেয়!

  1. এর ভিতরে একক উদ্ধৃতি এম্বেড করুন: `এটি দুর্দান্ত!`
  2. এর ভিতরে ডাবল উক্তি এম্বেড করুন: `এটি" সত্যই "দুর্দান্ত!`
  3. স্ট্রিং ইন্টারপোলেশন ব্যবহার করুন: great এটি দুর্দান্ত থেকে "$ {ভাল than" `
  4. এটি একাধিক লাইনের অনুমতি দেয়: `

    এই

    তোলে

    জাভাস্ক্রিপ্ট

    উত্তম!

    `

অন্য দুটি প্রতিস্থাপন করার সময় এটি কোনও কর্মক্ষমতা ক্ষতি করে না: https://medium.com/javascript-in-plain-english/are-backticks-slower-than-other-strings-in-javascript-ce4abf9b9fa


3

যদি আপনার জেএস উত্স হয়:

elem.innerHTML="<img src='smily' alt='It\'s a Smily' style='width:50px'>";

এইচটিএমএল উত্স হবে:

<img src="smiley" alt="It's a Smiley" style="width:50px">

বা এইচটিএমএল 5 এর জন্য

<img src=smiley alt="It's a Smiley" style=width:50px>

জেএস এর মতো অ্যারেগুলিকে অনুমতি দেয়:

var arr=['this','that'];

তবে আপনি যদি এটিকে আরও শক্তিশালী করেন তবে এটি তুলনামূলক কারণে হবে:

JSON=["this","that"]

আমি নিশ্চিত যে এটি কিছুটা সময় নেয়।


3

আমার 2 সেন্ট যোগ করার জন্য: কয়েক বছর আগে জেএস এবং পিএইচপি উভয়ের সাথেই কাজ করার সময়, আমি একক উদ্ধৃতি ব্যবহার করার অভ্যস্ত হয়েছি যাতে আমি এড়িয়ে চলার সুযোগ না করেই পালানোর অক্ষর ('\') টাইপ করতে পারি। ফাইল পাথ ইত্যাদির সাথে কাঁচা স্ট্রিং টাইপ করার সময় আমি সাধারণত এটি ব্যবহার করি ( http://en.wikedia.org/wiki/String_literal#Raw_strings )

যাইহোক, আমার কনভেনশনটি আইডেন্টিফায়ার-টাইপ কাঁচা স্ট্রিংগুলিতে সিঙ্গল কোট, যেমন if (typeof s == 'string') ...(যার মধ্যে পালানোর চরিত্রগুলি কখনও ব্যবহৃত হত না - এবং) "আরে, কী হয়েছে?" এর মতো পাঠ্যগুলির জন্য ডাবল উদ্ধৃতি হিসাবে ব্যবহার শুরু হয়েছিল। আমি শনাক্তকারীদের নাম দেখানোর জন্য টাইপোগ্রাফিক কনভেনশন হিসাবে মন্তব্যে একক উদ্ধৃতিও ব্যবহার করি। এটি কেবলমাত্র থাম্বের একটি নিয়ম, এবং যখন প্রয়োজন হয় তখনই আমি বিরতি ফেলি, যেমন এইচটিএমএল স্ট্রিং টাইপ করার সময় '<a href="#"> like so <a>'(যদিও আপনি এখানে উদ্ধৃতিগুলিও বিপরীত করতে পারেন)। আমি আরও সচেতন যে, জেএসএনের ক্ষেত্রে, নামের জন্য ডাবল উদ্ধৃতি ব্যবহৃত হয় - তবে এর বাইরে, ব্যক্তিগতভাবে, আমি একক উদ্ধৃতি পছন্দ করি যখন উদ্ধৃতিগুলির মধ্যে লেখার জন্য কখনই পলায়নের প্রয়োজন হয় না - যেমন document.createElement('div')

নীচের লাইনটি এবং কিছু হিসাবে উল্লেখ / ইঙ্গিত করা হয়েছে, একটি সম্মেলন বাছাই করুন, এটি বদ্ধ থাকুন এবং প্রয়োজনীয় হলে কেবল বিচ্যুত হন।

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