এই প্রশ্নের একটি প্রশ্নের শিরোনামে সংক্ষিপ্ত করা কঠিন
আপডেট আমি একটি জেএসফিডাল তৈরি করেছি যা এই প্রশ্ন থেকে উত্তোলিত অক্ষরের উপর ভিত্তি করে আপনার ইনপুট থেকে একটি আবদ্ধ স্ট্রিং তৈরি করে: আপনি এটি এখানে অ্যাক্সেস করতে পারেন , বা একটি বাক্যটি সহজ হবে?
আমি সম্প্রতি এই প্রোফাইলে একটি আবশ্যক জাভাস্ক্রিপ্টের মজাদার কিছুটা দেখতে পেলাম যা দেখতে এটির মতো দেখাচ্ছে:
javascript:[[]+1/!1][1^1][1>>1]+({}+[])[1<<1^11>>1]+([]+!!-
[])[1<<1]+[/~/+{}][+!1][-~1<<1]+([]+/-/[(!!1+[])[1>>1]+(!!1
+[])[1<<1^1]+(!1+[])[1|1<<1]+(!!1+[])[1^1]])[1^11<<1]+([,][
~1]+[])[1-~1]+[[]+{}][!1.1%1][11111.1%11.1*111e11|!1]+(/1/+
1/[1<1][1%1])[1^11]+[[],[]+{}][1][+1]+(/<</[1]+[])[1/1.1&1]
বিস্ময়কে নষ্ট করার জন্য দুঃখিত তবে এটি মূল্যায়ন করা হলে এটি ফিরে আসে:
"I love you" in Chrome
"I lone you" In Firefox
"I lo[e you" in IE10
বিচ্ছিন্ন হয়ে যাওয়ার পরে এটি যেভাবে কাজ করে তা হ'ল ধারাবাহিক বার্তা উত্পন্ন করা এবং সেগুলির মতো চিঠিগুলি বের করে আনা ("আমি" উদাহরণ হিসাবে ব্যবহার করে):
[]+1/!1
returns
"Infinity"
then
[[]+1/!1]
creates this array:
["Infinity"]
then
[[]+1/!1][1^1]
Takes the first (1^1 == 0) element of that array
"Infinity"
finally
[[]+1/!1][1^1][1>>1]
Takes the first (1>>1 == 0) char of that string
"I"
উত্পন্ন অন্যান্য স্ট্রিংগুলির মধ্যে রয়েছে:
({}+[]) -> "[object Object]" (where the space comes from)
([]+!!-[]) -> "false" (used for it's "l")
[/~/+{}][+!1] -> "/~/[object Object]" (this is used for an "o")
(/<</[1]+[]) -> "undefined"
আমি "এন" এবং "[" "এর প্রতিস্থাপন খুঁজতে আগ্রহী ছিলাম এবং এটি নিয়ে এসেছি:
String.fromCharCode(('1'.charCodeAt(0)<<1)+(10<<1))
যা আমি 1 এবং 0 এর ব্যবহারের অনুভূতিতে অনুভব করি তবে মূল কোডটির আরও মার্জিত দিকগুলির একটি লঙ্ঘন করে যা স্ট্রিংগুলির সাথে কিছুই করার নেই বলে মনে হয়। মূল অপ্রচলিত কোডের সাথে সঙ্গতি রেখে কীভাবে "ভি" তৈরি করতে হবে তা সম্পর্কে অন্য কারও ধারণা আছে?
এখানে অনেক অতিরিক্ত তথ্য যা অনেক প্রতিভাধর জাভাস্ক্রিপ্ট প্রগ্রেমাররা এটি গভীরভাবে নিল তার পরে পাওয়া গেল
ফায়ারফক্স এই লাইনের কারণে "আমি তোমাকে একাকী করেছি" ফেরায়:
([]+/-/[(!!1+[])[1>>1]+(!!1+[])[1<<1^1]+(!1+[])[1|1<<1]+(!!1+[])[1^1]])[1^11<<1]+
[1^11<<1]
এটি থেকে একটি নির্দিষ্ট চরিত্র ছাঁটাই:
([]+/-/[(!!1+[])[1>>1]+(!!1+[])[1<<1^1]+(!1+[])[1|1<<1]+(!!1+[])[1^1]])
যা এর মূল্যায়ন করে:
"function test() {
[native code]
}"
যা দেখে মনে হচ্ছে আমাদের "ভি" থাকতে পারে !!!
ক্রোম "আমি আপনাকে ভালোবাসি" ফিরিয়ে দেয়, কারণ একই কোডটি এটি ফেরত দেয়:
"function test() { [native code] }"
প্রশ্নটি "সত্যিকারের প্রোগ্রামিং ইস্যু" এর সাথে প্রশ্নবিদ্ধ সংযোগের জন্য বন্ধ হওয়ার আগে আমি ভেবেছিলাম যে আমি একটি সংক্ষিপ্ত সমাধান যুক্ত করব যা @ সুপ্রিজ , @ কোরি এবং @ আলফা 123 এর উপর ভিত্তি করে তৈরি হয়েছে :
alert([[]+1/!1][1^1][1>>1]+({}+[])[1<<1^11>>1]+(
[]+!!-[])[1<<1]+[/~/+{}][+!1][-~1<<1]+[([]+/-/[(
!!1+[])[1>>1]+(!!1+[])[1<<1^1]+(!1+[])[1|1<<1]+(
!!1+[])[1^1]])[1+(1^(11+1+1)<<1)],([]+/-/[(!!1+[
])[1>>1]+(!!1+[])[1<<1^1]+(!1+[])[1|1<<1]+(!!1+[
])[1^1]])[1^11<<1],([]+/-/[(!!1+[])[1>>1]+(!!1+[
])[1<<1^1]+(!1+[])[1|1<<1]+(!!1+[])[1^1]])[1^(11
+1+1)<<1]][((([]+/-/[(!!1+[])[1>>1]+(!!1+[])[1<<
1^1]+(!1+[])[1|1<<1]+(!!1+[])[1^1]])[(1<<1<<1<<1
)+1<<1]==({}+[])[1^1])*1)+((([]+/-/[(!!1+[])[1>>
1]+(!!1+[])[1<<1^1]+(!1+[])[1|1<<1]+(!!1+[])[1^1
]])[(1^11<<1)-1]==({}+[])[1^1])<<1)]+([,][~1]+[]
)[1-~1]+[[]+{}][!1.1%1][11111.1%11.1*111e11|!1]+
(/1/+1/[1<1][1%1])[1^11]+[[],[]+{}][1][+1]+(/<</
[1]+[])[1/1.1&1])
কোডটির জটিলতা এবং বার্তাগুলি প্রদান করে এটি এটি প্রায় জাভাস্ক্রিপ্ট ইঞ্জিনের মতো বলছে যে আপনি এটিকে কী বিশেষ বোধ করছেন :)
function test() { [native code] }
সরিয়ে