Javascript: Bahasa pengaturcaraan

JavaScript adalah nama milik Syarikat Komunikasi Netscape dan sekarang adalah pelaksanaan berpiawai ECMAScript untuk Pertubuhan Mozilla.

Bahasa ini amat popular kerana terdapat banyak penggunaannya pada laman-laman web (sebagai JavaScript pihak pelanggan).

JavaScript
ParadigmaBerbilang paradigma: penskripan, berorientasi objek (berasaskan prototaip), imperatif, kefungsian
Muncul pada1995; 29 tahun yang lalu (1995)
Direka olehBrendan Eich
PembangunNetscape Communications Corporation, Mozilla Foundation
Lepasan stabil1.8.5 (22 Mac 2011; 13 tahun yang lalu (2011-03-22))
Disiplin penjenisandinamik, lemah, itik
Pelaksanaan utamaKJS, Rhino, SpiderMonkey, V8, WebKit, Carakan, Chakra
DipengaruhiC, Java, Perl, Python, Scheme, Self
MempengaruhiActionScript, CoffeeScript, Dart, JScript .NET, Objective-J, QML, TIScript, TypeScript
Logo Wikibuku JavaScript di Wikibooks

Ramai yang beranggapan bahawa JavaScript adalah "Java yang ditafsir" walaupun pada hakikatnya tidak sebegitu. Malah, walaupun namanya serupa, kaitan antara JavaScript dengan Java adalah jauh sekali. Sintaksis JavaScript diilhamkan dari Java dan C untuk memudahkan pengguna baru mempelajarinya.

Sejarah

Pada asalnya, pembangunan JavaScript diusahakan oleh Brendan Eich di bawah nama Mocha, kemudiannya ditukar kepada LiveScript, dan akhirnya ditukar kepada JavaScript. Perubahan nama dari LiveScript ke JavaScript adalah berkebetulan dengan langkah Netscape menambah sokongan teknologi Java di pelayar web Netscape Navigator keluarannya. JavaScript mula diperkenalkan dan dipasang di pelayar Netscape versi 2.0B3 pada Disember 1995.

Pada tahun 2011, versi terakhir bagi JavaScript ialah 1.8.5

Sintaks dan simantik

Sehingga 2009, versi terbaru bagi bahasa ini ialah JavaScript 1.8.1. Ia merupakan superset bagi ECMAScript (ECMA-262) Edition 3. Sambungan kepada bahasa berkenaan, termasuklah sokongan separa untuk E4X (ECMA-357) dan tampilan-tampilan eksperimental yang diambil kira untuk disertakan dalam edisi-edisi ECMAScript masa hadapan, didokumentasikan di sini.

Contoh mudah

Fungsi rekursif ringkas:

function factorial(n) {     if (n === 0) {         return 1;     }     return n * factorial(n - 1);  } 

Skrip aluan ringkas:

var nama = prompt("Nama:zulhaidi:akmal?"); alert("Selamat datang "+nama); 

Sintaks fungsi awanama (atau lambda):

function add (i, j) {     var add_pri = function (x, y) {         return x + y;     };      return add_pri(i, j); } 

Penutupan:

function showclosure () {     var inc = makeinc(1);      inc(); // 1     inc(); // 2     inc(); // 3 }  function makeinc (initialValue) {     var count = initialValue;      return function () {         return count++;     }; } 

Demonstrasi fungsi variadik. 1 akan dialert, kemudian 2, seterusnya 3. arguments merupakan pemboleh ubah khas.

function unlimited_args () {     for (var i = 0; i < arguments.length; i++) {         alert(arguments[i]);     } }  unlimited_args(1, 2, 3); 

Contoh yang lebih rumit

Kod sampel ini menunjukkan pelbagai tampilan-tampilan JavaScript.

/* Finds the lowest common multiple of two numbers */ function LCMCalculator (x, y) { // constructor function     var checkInt = function (x) { // inner function         if (x % 1 !== 0) {             throw new TypeError(x + "is not an integer"); // exception throwing         }         return x;     };     this.a = checkInt(x)     // ^ semicolons are optional (but beware since this may cause consecutive lines to be     //erroneously treated as a single statement)     this.b = checkInt(y); } // The prototype of object instances created by a constructor is  // that constructor's "prototype" property. LCMCalculator.prototype = { // object literal     constructor : LCMCalculator, // when reassigning a prototype, set the constructor property appropriately     gcd : function () { // method that calculates the greatest common divisor         // Euclidean algorithm:         var a = Math.abs(this.a), b = Math.abs(this.b), t;         if (a < b) {             // swap variables             t = b;              b = a;              a = t;          }         while (b !== 0) {             t = b;             b = a % b;             a = t;         }         // Only need to calculate gcd once, so "redefine" this method.         // (Actually not redefinition - it's defined on the instance itself,         // so that this.gcd refers to this "redefinition" instead of LCMCalculator.prototype.gcd.)         // Also, 'gcd' == "gcd", this['gcd'] == this.gcd         this['gcd'] = function () {              return a;          };         return a;     },     "lcm" /* can use strings here */: function () {         // Variable names don't collide with object properties, e.g. |lcm| is not |this.lcm|.         // not using |this.a * this.b| to avoid FP precision issues         var lcm = this.a / this.gcd() * this.b;          // Only need to calculate lcm once, so "redefine" this method.         this.lcm = function () {              return lcm;          };          return lcm;     },     toString : function () {         return "LCMCalculator: a = " + this.a + ", b = " + this.b;     } };  // Note: Array's map() and forEach() are predefined in JavaScript 1.6. // They are currently not available in the JScript engine built into // Microsoft Internet Explorer, but are implemented in Firefox, Chrome, etc. // They are used here to demonstrate JavaScript's inherent functional nature.  [[25, 55],[21, 56],[22, 58],[28, 56]].map(function (pair) { // array literal + mapping function     return new LCMCalculator(pair[0], pair[1]); }).sort(function (a, b) { // sort with this comparative function     return a.lcm() - b.lcm(); }).forEach(function (obj) {     /* Note: print() is a JS builtin function available in Mozilla's js CLI;      * It is functionally equivalent to Java's System.out.println().      * Within a web browser, print() is a very different function      * (opens the "Print Page" dialog),      * so use something like document.write() or alert() instead.      */     // print       (obj + ", gcd = " + obj.gcd() + ", lcm = " + obj.lcm());     // alert       (obj + ", gcd = " + obj.gcd() + ", lcm = " + obj.lcm());     document.write(obj + ", gcd = " + obj.gcd() + ", lcm = " + obj.lcm() + "
"
); });

Keluaran berikut sepatutnya akan dipaparkan pada tetingkap pelayar.

LCMCalculator: a = 28, b = 56, gcd = 28, lcm = 56Jika Internet Explorer digunakan, contoh tadi akan menghasilkan ralat. Dengan itu, contoh tadi menunjukkan bahawa pentafsir JScript bagi Internet Explorer melakukan kod dengan cara berbeza berbanding pentafsir JavaScript dan ECMAScript dalam pelayar web lain. (Lihat ulasan dalam kod sumber untuk perincian perbezaan yang relevan bagi contoh ini.)  

Lihat juga

* Ajax * JavaScript pihak pelayan * Sintaks JavaScript

Rujukan

Pautan luar

* Laman web JavaScript Diarkibkan 2006-10-12 di Wayback Machine di mozilla.org. * Tutorial Javascript dalam bahasa melayu

Tags:

Javascript SejarahJavascript Sintaks dan simantikJavascript Lihat jugaJavascript RujukanJavascript Pautan luarJavascriptECMAScriptMozilla

🔥 Trending searches on Wiki Bahasa Melayu:

Hulu LangatFadillah YusofAparteidAzhar SulaimanInstagramSuntikanUmar bin Al-KhattabJangkitanPerjanjian Inggeris-Belanda 1824Shiqin KamalSerpihan SayangPerikatan NasionalPiagam MadinahSiti Khadijah HalimSultan Ibrahim ibni Sultan IskandarPasukan bola sepak kebangsaan KuwaitReal Madrid CFPetronasBruneiLiga Europa UEFAKerenggaSophia LianaSuruhanjaya ReidAzira ShafinazTunku Abdul RahmanFrekuensi radio di MelakaTalbis IblisJabatan Akauntan NegaraUndang-Undang Laut MelakaNegeri-Negeri SelatSiti HariesaSarah SuhairiNabi Nuh a.s.Sijil Tinggi Persekolahan MalaysiaSheriffSultan Abu Bakar ibni Temenggong Daeng IbrahimFattah AminKetupatSurah al-BaqarahPantang larang MelayuPahamin RajabHari Raya AidiladhaBola balingMahathir MohamadIbanMuhammad al-FatihSharnaaz AhmadAbdul Wahid OmarProton SatriaTatabahasa bahasa MelayuParameswaraZainal Abidin bin AhmadBella DallyIntan LadyanaMona FandeyBaksoPiala Asia B-23 AFC 2024Bella AstillahArdell AryanaIndiaKetua Polis Negara MalaysiaMy Lovely DriverKaum-kaum di MalaysiaKasih Iris LeonaSilatAzad JasminShukri YahayaNabi Isa a.s.LemangFrekuensi radio di Negeri SembilanDia Isteri Luar Biasa (drama)Pulau (filem)PteropusSelangorAdat resam kahwin MelayuMia KhalifaSepahtu Reunion LiveRejimen Askar Melayu DiRajaP. Ramlee🡆 More