একটি চলক আগে একটি প্লাস প্রতীক উদ্দেশ্য কি?


262

এটি সত্যিই একটি সাধারণ প্রশ্নের মতো মনে হচ্ছে তবে আমার কোনও ভাগ্য অনুসন্ধান ছিল না। চাপলে কি হবে +d

function addMonths(d, n, keepTime) { 
    if (+d) {

কারে কয়?



3
একই সমস্যা তবে অন্য পৃষ্ঠার শিরোনাম সাধারণ
কেসগুলিকে এর

উত্তর:


312

+অপারেটর বস্তুর সাংখ্যিক উপস্থাপনা ফেরৎ। সুতরাং আপনার বিশেষ ক্ষেত্রে এটি dএকটি শূন্য সংখ্যা নয় কি না তা নিয়ে পূর্বাভাস দিচ্ছে ।

এখানে রেফারেন্স । এবং এখানে মন্তব্যগুলিতে উল্লেখ করা হয়েছে




আমি কেবল আশ্চর্য করি যে কোনটি আরও কার্যকর, ফাংশন পার্সইন্ট ব্যবহার করে বা প্লাস অপারেটরটি ব্যবহার করে একটি স্ট্রিংকে একটি পূর্ণসংখ্যায় পার্স করে?
একারলস্টাইন

1
এর থেকে আলাদা কীভাবে .parseInt()?
ড্যানিয়েল ডব্লিউ।

1
উত্তরে এমডিএন লিঙ্ক থেকে @ একারলস্টাইন উত্তর: "যদিও অ্যানারি অবহেলা (-) অ-সংখ্যাগুলিকে রূপান্তর করতে পারে তবে অ্যানারি প্লাস কোনও কিছুকে সংখ্যায় রূপান্তরিত করার দ্রুততম এবং পছন্দের উপায় , কারণ এটি সংখ্যায় অন্য কোনও ক্রিয়াকলাপ সম্পাদন করে না because । " (কেবলমাত্র "সরকারী" উত্তরের জন্য)
এএন

22

এটি একটি অ্যানারি অপারেটর যা একটি সংখ্যার এক্সপ্রেশন দেয়। এটা যেমন হবে d*1, আমি বিশ্বাস করি।


12

অন্যান্য উত্তরে বর্ণিত হিসাবে এটি পরিবর্তনশীলকে একটি সংখ্যায় রূপান্তর করে। বিশেষত কার্যকর যখন d হয় সংখ্যা বা স্ট্রিং হতে পারে ক্রিয়া যে একটি সংখ্যা মূল্যায়ন।

উদাহরণ ( addMonthsপ্রশ্নের ফাংশনটি ব্যবহার করে ):

addMonths(34,1,true);
addMonths("34",1,true);

তারপরে +dসমস্ত ক্ষেত্রে একটি সংখ্যার মূল্যায়ন করবে। সুতরাং প্রকারটি পরীক্ষা করে দেখার জন্য প্রয়োজনীয়তা এড়ানো এবং dএকটি সংখ্যা, একটি ফাংশন বা একটি স্ট্রিং যা কোনও সংখ্যায় রূপান্তর করা যায় তার উপর নির্ভর করে বিভিন্ন কোড পাথ গ্রহণ করে ।


+dঅ্যাডমনেথ্সের প্রথম অনুরোধের উদাহরণ সহ কোনও সংখ্যার মূল্যায়ন করবেন না
গাস ক্রফোর্ড

সত্য, আমি জানি না আমি যখন এটি লিখেছিলাম তখন আমি কী করেছি। ফাংশনটির মূল্যায়ন না করে +function(){...}উত্পাদন করবেNaN
রুবেললগুনা

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