ब्राउज़र के बिना जावास्क्रिप्ट निष्पादित करना?


129

मैं एक ब्राउज़र के बिना जावास्क्रिप्ट प्रोग्रामिंग में देख रहा हूँ। मैं लिनक्स या मैक ओएस एक्स कमांड लाइन से स्क्रिप्ट चलाना चाहता हूं, जैसे हम किसी अन्य स्क्रिप्टिंग भाषा (रूबी, पीएचपी, पर्ल, पायथन ...) को चलाते हैं।

$ javascript my_javascript_code.js

मैंने मकड़ी बंदर (मोज़िला) और v8 (Google) में देखा, लेकिन ये दोनों ही एम्बेडेड प्रतीत होते हैं।

क्या कोई कमांड लाइन से निष्पादित होने वाली स्क्रिप्टिंग भाषा के रूप में जावास्क्रिप्ट का उपयोग कर रहा है?

अगर कोई उत्सुक यही कारण है कि मैं इस में देख रहा हूँ, मैं चारों ओर poking किया गया है Node.js । नोड.जेएस का प्रदर्शन मुझे आश्चर्यचकित करता है कि क्या जावास्क्रिप्ट बड़े डेटा को संसाधित करने के लिए एक व्यवहार्य स्क्रिप्टिंग भाषा हो सकती है।


नोड.जेएस एक जावास्क्रिप्ट कमांड लाइन है दुभाषिया है ना?
नाथन

5
नोड.जेएस एक दुभाषिया नहीं है, यह Google से V8 जावास्क्रिप्ट के कार्यान्वयन पर निर्मित एक एसिंक्स फ्रेमवर्क है। हालांकि मेरा मानना ​​है कि V8 की जावास्क्रिप्ट इंटरपर्सिटर एक नोड इंस्टाल में शामिल है

1
यदि V8 का CLI दुभाषिया लोकप्रिय हो जाता है तो यह वास्तव में अच्छा शिक्षण उपकरण हो सकता है। मुझे लगता है कि जावास्क्रिप्ट में प्रोग्राम करना सीखना काफी मजेदार हो सकता है। लूआ ईमानदारी से सबसे अच्छा विकल्प हो सकता है (जेएस की "कक्षाएं" हर किसी के लिए नरक को भ्रमित करती हैं), लेकिन जेएस की वेब पर फेंकने की क्षमता टिंकरर्स को पसंद आएगी। मैं इस V8 CLI को स्वयं आज़मा सकता हूँ।
jasonmp85

@ jasonmp85 एक नए कीवर्ड के साथ कार्य निष्पादित करने के लिए ऑब्जेक्ट इंस्टेंसेस बनाता है। जब आप किसी उदाहरण पर किसी गुण / विधि का संदर्भ देते हैं, यदि ऑब्जेक्ट स्वयं के पास नहीं है, तो कंस्ट्रक्टर फ़ंक्शन की प्रोटोटाइप संपत्ति की जाँच की जाती है। सार्वजनिक विधियों के लिए इसका उपयोग करें और प्रभावी ढंग से निजी तरीके / प्रॉप्स प्राप्त करने के लिए निर्माण कार्य के लिए vars को स्थानीय रूप से परिभाषित करें (ये तकनीकी रूप से बंद होने वाले var'd हैं)। समाप्त।
एरिक रेपेन

जवाबों:


46

मुझे विषय से संबंधित यह प्रश्न मिला , लेकिन यदि आप सीधे लिंक चाहते हैं, तो वे यहां हैं:

  • आप राइनो स्थापित कर सकते हैं जैसा कि दूसरों ने बताया है। यह पोस्ट इसे चलाने और चलाने का एक आसान तरीका दिखाती है और कैसे इसे आसानी से आह्वान करने के लिए एक कमांड का उपयोग करती है
  • यदि आप एक मैक पर हैं, तो आप जावास्क्रिप्टकोर का उपयोग कर सकते हैं, जो वेबकिट के जावास्क्रिप्ट इंजन को आमंत्रित करता है। यहाँ पर एक पोस्ट है
  • आप Chome / Google के V8 दुभाषिया का भी उपयोग कर सकते हैं। यहाँ निर्देश हैं
  • ओएसए के रूप में जावास्क्रिप्ट दिलचस्प है क्योंकि यह आपको (एएफएआईके) स्क्रिप्टेबल ओएस एक्स ऐप के साथ बातचीत करता है जैसे कि आप AppleScript (भयानक सिंटैक्स के बिना) में थे

मुझे आश्चर्य हुआ कि नोड.जेएस एक शेल के साथ नहीं आता है, लेकिन मुझे लगता है कि यह वास्तव में एक एपोल / चयनकर्ता-आधारित कॉलबैक / इवेंट-ओरिएंटेड वेबसर्वर की तरह है, इसलिए शायद इसे पूर्ण जेएस फीचर सेट की आवश्यकता नहीं है, लेकिन मैं अपने आंतरिक कामकाज से भी परिचित नहीं हैं।

चूंकि आप नोड.जेएस में रुचि रखते हैं और चूंकि यह V8 पर आधारित है, इसलिए V8 पर्यावरण सेट अप करने पर उन निर्देशों का पालन करना सबसे अच्छा हो सकता है ताकि आप अपनी जावास्क्रिप्ट प्रोग्रामिंग के लिए एक सुसंगत आधार रख सकें (मुझे उम्मीद है कि JSC और V8 अधिकतर हैं। वही, लेकिन मुझे यकीन नहीं है)।


Chrome / Google V8 इंटरप्रेटर लिंक वही है जो मैं देख रहा था! धन्यवाद!
डेनियल

2
0.1.101 में NodeJS में एक नोड-उत्तर है जो आपको पर्यावरण के लिए CLI प्रदान करता है। यह जेएस परीक्षण / सीखने के लिए बहुत अच्छा है।
साइबरफोनिक जूल

nodejsटर्मिनल में उबंटू टाइपिंग पर नोडज v0.10.25 के साथ आरईपीएल तक पहुंच देता है।
Иван Бишевац

उपरोक्त में से कौन, यदि कोई हो, तो HTML DOM को शामिल करें?
पुराना गीजर

57

मुख्य उत्तर

हां, आपके प्रश्न का उत्तर देने के लिए, जावास्क्रिप्ट को कमांड के लाइन से "नियमित" स्क्रिप्टिंग भाषा के रूप में उपयोग करना संभव है, बिना ब्राउज़र के। चूंकि अन्य लोगों ने अभी तक इसका उल्लेख नहीं किया है, इसलिए मैं देखता हूं कि यह ध्यान देने योग्य है:

डेबियन-आधारित सिस्टम पर (और इसमें उबंटू, लिनक्स मिंट और एप्टोसिड / साइडक्स शामिल हैं, कम से कम), इसके अलावा राइनो और अन्य पहले से ही उल्लेखित विकल्पों को स्थापित करने के लिए, आपके पास अन्य विकल्प हैं:

  • libmozjs-24-binपैकेज स्थापित करें , जो आपको एक सरल के रूप में कमांड लाइन पर मोज़िला के स्पाइडरमोंकी इंजन के साथ प्रदान करेगा js24, जिसका उपयोग इंटरएक्टिव इंटरप्रेटर के रूप में भी किया जा सकता है। ( 24नाम में इसका मतलब है कि यह फ़ायरफ़ॉक्स के संस्करण 24 से मेल खाती है)।

  • libv8-devपैकेज स्थापित करें , जो आपको Google का V8 इंजन प्रदान करेगा। इसके उदाहरणों में से एक के रूप में, फ़ाइल /usr/share/doc/libv8-dev/examples/shell.cc.gzजिसे आप खोल सकते हैं और बहुत सरलता से संकलित कर सकते हैं (जैसे, g++ -Os shell.cc -o shell -lv8)।

  • पैकेज को स्थापित करें nodejsऔर यह दोनों निष्पादन योग्य के रूप में उपलब्ध हो जाएगा nodejsऔर एक के रूप में विकल्प (डेबियन-अर्थ में) प्रदान करने के लिए jsनिष्पादन योग्य। J8 संकलन V8 के सौजन्य से प्रदान किया जाता है।

  • पैकेज स्थापित करें libjavascriptcoregtk-3.0-binऔर jscकमांड-लाइन से एक नियमित दुभाषिया के रूप में WebKit के जावास्क्रिप्टकोर दुभाषिया ( ) का उपयोग करें । और यह एक मैक का उपयोग करने की आवश्यकता के बिना है। कई प्लेटफार्मों (जैसे, x86 और x86_64) पर, यह दुभाषिया एक जेआईटी संकलक के साथ आएगा।

तो, लगभग कोई संकलन नहीं होने से आपके पास अपने निपटान में तीन भारी-वजन वाले जावास्क्रिप्ट इंजन होंगे।

परिशिष्ट

एक बार जब आपके पास चीजें स्थापित हो जाती हैं, तो आप बस #!/usr/bin/jsशेलबैंग लाइन के साथ फाइल बना सकते हैं और चीजें बस काम करेंगी:

$ cat foo.js 
#!/usr/bin/js

console.log("Hello, world!");
$ ls -lAF /usr/bin/js /etc/alternatives/js /usr/bin/nodejs
lrwxrwxrwx 1 root root      15 Jul 16 04:26 /etc/alternatives/js -> /usr/bin/nodejs*
lrwxrwxrwx 1 root root      20 Jul 16 04:26 /usr/bin/js -> /etc/alternatives/js*
-rwxr-xr-x 1 root root 1422004 Apr 28 20:31 /usr/bin/nodejs*
$ chmod a+x foo.js 
$ ./foo.js 
Hello, world!
$ js ./foo.js
Hello, world!
$

23

मैंने एक iMac पर Node.js स्थापित किया है और

node somefile.js

में काम करेंगे


हे भगवान! @ aw04 बिल्कुल
theapache64

मेरे लिए यह तब nodejs somefile.jsसे था जब मैंने नोडज पैकेज
user2490003

यह 2019 में सही उत्तर है। Node.JS हमेशा जाने का सबसे सरल और सरल तरीका है।
विल्सनहॉब्स

10

मुझे पता है कि आपने लिनक्स और मैक के बारे में पूछा था; मैं विंडोज के लिए उत्तर देने जा रहा हूं, अगर विंडोज में रुचि रखने वाले अन्य लोग आपके प्रश्न का पता लगाते हैं।

विंडोज में एक जावास्क्रिप्ट इंजन शामिल है जिसे कमांड लाइन से इस्तेमाल किया जा सकता है।

विंडोज 98 के बाद से विंडोज के सभी संस्करणों में " द विंडोज स्क्रिप्ट होस्ट " नामक कुछ शामिल है । यह स्क्रिप्ट "इंजन" का समर्थन करने के लिए एक विंडोज़-मानक तरीका है। पहली रिलीज़ के बाद से, WSH JScript, Microsoft के जावास्क्रिप्ट के संस्करण का समर्थन करता है। अन्य बातों के अलावा, इसका मतलब है कि, विंडोज़ कमांड लाइन से, आप बस किसी भी .js फ़ाइल का नाम ले सकते हैं, और यह JScript इंजन में चलेगा। (या तो wscript.exe या cscript.exe के माध्यम से)

आप इस प्रश्न को देख सकते हैं: IE9 के जावास्क्रिप्ट इंजन (कोड-नाम "चक्र") के लिए ProgId या CLSID क्या है, यह जानने के लिए कि कैसे उच्च प्रदर्शन IE9 जावास्क्रिप्ट इंजन को cscript.exe से शुरू किया जाए।


8

चूंकि किसी ने भी इसका उल्लेख नहीं किया है: जावा 1.6 के बाद से जावा जेडीके भी जावास्क्रिप्ट कमांडलाइन और आरईपीएल के साथ बंडल में आता है।

यह राइनो पर आधारित है: https://developer.mozilla.org/en/docs/Rhino

जावा 1.6 और 1.7 में कमांड को कहा जाता है jrunscript(jrunscript.exe विंडोज पर) के बिन फ़ोल्डर में पाया जा सकता है।

जावा 1.8 से शुरू होकर एक नया जावास्क्रिप्ट कार्यान्वयन बंडल किया गया है (नाशोर्न: https://blogs.oracle.com/nashorn/ )

तो जावा 1.8 में कमांड jjs( jjs.exeविंडोज पर) कहा जाता है


6

FWIW, node.js एक शेल के साथ आता है, इसमें टाइप करने की कोशिश करें:

node-repl

एक बार जब आप कार्रवाई में इसे देखने के लिए नोड .js स्थापित कर लेते हैं। यह अच्छी तरह से काम करने के लिए इसे स्थापित करने के लिए rlwrap स्थापित करने के लिए बहुत मानक है।


मैं नोड-उत्तर पा रहा हूं और साथ ही NodeJS के साथ काम करने वाले त्वरित कार्यक्रमों को प्राप्त करने में हैश-बैंग दोनों का उपयोग कर रहा हूं। यह तेज़ और उपयोग में आसान है।
साइबरफोन

3

आप राइनो की जांच कर सकते हैं ।

राइनो शेल जावास्क्रिप्ट स्क्रिप्ट को बैच मोड में चलाने का एक तरीका प्रदान करता है:

java org.mozilla.javascript.tools.shell.Main my_javascript_code.js [args]

3

मुझे पता है कि यह पुराना है लेकिन आपको ज़ोंबी.जेएस भी आजमाना चाहिए । एक बिना सिर वाला ब्राउज़र जो परीक्षण के लिए बहुत तेज़ और आदर्श है!


3

मैं कमांड लाइन से Ubuntu 12.10 और js का उपयोग करता हूं

यह जावा की मेरी स्थापना के साथ उपलब्ध है:

el@apollo:~/foo$ java -version
java version "1.6.0_27"
el@apollo:~/foo$ which js
/usr/bin/js

कुछ उदाहरण:

el@apollo:~/foo$ js
> 5
5

> console.log("hello");
hello
undefined

> var f = function(){ console.log("derp"); };
undefined
> f();
derp

> var mybool = new Boolean();
undefined
> mybool
{}
> mybool == true
false
> mybool == false
true

> var myobj = {};
undefined
> myobj.skipper = "on my mark, engage!"
'on my mark, engage!'
> myobj.skipper.split(" ");
[ 'on',
  'my',
  'mark,',
  'engage!' ]

आकाश की सीमा है, फिर चलते रहो।



2

मुझे यह वास्तव में निफ्टी खुला स्रोत ECMAScript अनुरूप जेएस इंजन मिला, जो पूरी तरह से सी में लिखा गया था जिसे ड्यूकटेप कहा जाता है

Duktape पोर्टेबिलिटी और कॉम्पैक्ट फुटप्रिंट पर ध्यान देने के साथ एक एम्बेड करने योग्य जावास्क्रिप्ट इंजन है।

सौभाग्य!


1

वैसे तो OSA के रूप में जावास्क्रिप्ट है , एक एक्सटेंशन जो जावास्क्रिप्ट को AppleScript के विकल्प के रूप में प्रदान करता है। मैं इसके बारे में 10 साल पहले उपयोग कर रहा हूं, पता नहीं कि यह अभी भी वर्तमान ओएस संस्करणों के साथ काम कर रहा है या नहीं


1

जेएसडीबी , लिनक्स, विंडोज और मैक के लिए उपलब्ध है, बिल को अच्छी तरह से फिट होना चाहिए। यह Mozilla के Spidermonkey Javascript इंजन का उपयोग करता है और नोड की तुलना में स्थापित करने के लिए एक परेशानी से कम लगता है। (कम से कम आखिरी बार मैंने कुछ साल पहले नोड की कोशिश की थी)।

मुझे जावास्क्रिप्ट गोले की इस दिलचस्प सूची से JSDB मिला: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Shells

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.