JavaScript

JavaScript
ParadigmaBerbilang paradigma: penskripan, berorientasi objek (berasaskan prototaip), imperatif, kefungsian
Muncul pada1995; 30 tahun yang lalu (1995)
Direka olehBrendan Eich
PembangunNetscape Communications Corporation, Mozilla Foundation
Lepasan stabil1.8.5[1] (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

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).

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.[2]

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() + "<br />");
});

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

  1. ^ New in JavaScript 1.8.5 | Mozilla Developer Network
  2. ^ "About - MDC". Developer.mozilla.org. 2008-08-31. Diarkibkan daripada yang asal pada 2008-10-15. Dicapai pada 2009-05-19.

Pautan luar

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

Read other articles:

Berikut ini adalah daftar pemenang penghargaan khusus dalam Miss World yang diantaranya adalah sejumlah pemenang kompetisi fast track (kompetisi khusus untuk mendapat tempat di 15/20 besar). Juga tercantum adalah wanita yang telah memenangkan gelar Penghargaan khusus Miss World dalam sepuluh tahun terakhir. Penghargaan saat ini Miss World Talent Tahun Pemenang Negara Asal Posisi di Miss World 2001 Stephanie Chase  Barbados 2002 Rebekah Revels  Amerika Serikat Top 10 2003 Irina Onas...

 

U.S. state State in the United StatesNew YorkStateState of New York FlagSealNickname: The Empire StateMotto(s): Excelsior (in Latin)[1]Ever upwardAnthem: I Love New YorkMap of the United States with New York highlightedCountryUnited StatesBefore statehoodProvince of New YorkAdmitted to the UnionJuly 26, 1788 (11th)CapitalAlbanyLargest cityNew YorkLargest county or equivalentKings (Brooklyn)Largest metro and urban areasNew York metropolitan areaGovernment • Govern...

 

本條目存在以下問題,請協助改善本條目或在討論頁針對議題發表看法。 此條目需要补充更多来源。 (2018年3月17日)请协助補充多方面可靠来源以改善这篇条目,无法查证的内容可能會因為异议提出而被移除。致使用者:请搜索一下条目的标题(来源搜索:羅生門 (電影) — 网页、新闻、书籍、学术、图像),以检查网络上是否存在该主题的更多可靠来源(判定指引)。 �...

Dans ce nom chinois, le nom de famille, Ba, précède le nom personnel. Pour les articles homonymes, voir Ba (nom de famille). Ba JinFonctionsMembre du comité national de la conférence consultative politique du peuple chinois10e comité national de la conférence consultative politique du peuple chinois (d)9e comité national de la conférence consultative politique du peuple chinois (d)8e comité national de la conférence consultative du peuple chinois (d)7e comité national de la co...

 

Halaman ini berisi artikel tentang kain. Untuk film, lihat They Came to Cordura. Artikel ini berisi konten yang ditulis dengan gaya sebuah iklan. Bantulah memperbaiki artikel ini dengan menghapus konten yang dianggap sebagai spam dan pranala luar yang tidak sesuai, dan tambahkan konten ensiklopedis yang ditulis dari sudut pandang netral dan sesuai dengan kebijakan Wikipedia. (Februari 2019) Kain Cordura biru Cordura adalah sebuah koleksi dan teknologi kain yang digunakan sebagai bahan baku be...

 

Questa voce sull'argomento calciatori macedoni è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Segui i suggerimenti del progetto di riferimento. Visar Musliu Nazionalità  Macedonia del Nord Altezza 186 cm Peso 77 kg Calcio Ruolo Difensore Squadra  Paderborn Carriera Giovanili ????-2011 Gostivar Squadre di club1 2011-2012 Renova0 (0)2012-2013→  Gostivar? (?)2013-2014 Renova29 (1)2014-2015 San Gallo II? (?)2015-2017...

Cannabinoid agonist compound CP 47,497Legal statusLegal status CA: Schedule II DE: Anlage II (Authorized trade only, not prescriptible) UK: Class B US: Schedule I Illegal in France, Latvia, Lithuania, Sweden, Romania Identifiers IUPAC name 2-[(1S,3R)-3-hydroxycyclohexyl]-5-(2-methyloctan-2-yl)phenol CAS Number(1S,3R): 70434-82-1 YPubChem CID(1S,3R): 125835(1R,3S): 15942731ChemSpider(1S,3R): 10205286(1R,3S): 111910UNII(1S,3R): FAPQAUKC04Ch...

 

Cruiser of the Royal Navy For other ships with the same name, see HMS Dauntless. History United Kingdom NameHMS Dauntless OrderedSeptember 1916 BuilderPalmers Shipbuilding and Iron Company, Jarrow Laid down3 January 1917 Launched10 April 1918 Commissioned22 November 1918 IdentificationPennant number:D45 FateBroken up April 1946 General characteristics Class and typeDanae-class light cruiser Displacement4,650 tons Length471 ft (144 m) Beam46 ft (14 m) Draught14.5 ft (4...

 

Данио-рерио Научная классификация Домен:ЭукариотыЦарство:ЖивотныеПодцарство:ЭуметазоиБез ранга:Двусторонне-симметричныеБез ранга:ВторичноротыеТип:ХордовыеПодтип:ПозвоночныеИнфратип:ЧелюстноротыеГруппа:Костные рыбыКласс:Лучепёрые рыбыПодкласс:Новопёрые рыбыИн�...

Constituency of the National Assembly of Pakistan NA-215 Tharparkar-IIConstituencyfor the National Assembly of PakistanRegionKaloi, Diplo, Mithi and Islamkot Tehsils and Chachro Tehsil (partly) of Tharparkar DistrictElectorate415,109 [1]Current constituencyMember(s)VacantCreated fromNA-229 Tharparkar-I NA-215 Tharparkar-II (این اے-215، تھرپارکر-2) is a constituency for the National Assembly of Pakistan.[2] Members of Parliament 2018-2022: NA-222 Tharparkar-II Ele...

 

كينوبويسكالشعارمعلومات عامةموقع الويب kinopoisk.ru (الروسية) نوع الموقع موقع ويب — قاعدة بيانات أفلام — خدمة بث الفيديو — هيئة بث البلد الأصلي  روسيا التأسيس 7 نوفمبر 2003 الجوانب التقنيةاللغة الروسية ترتيب أليكسا 316[1](30 نوفمبر 2017) المنظومة الاقتصاديةالمقر الرئيسي موسكو ا...

 

Part of a series onJews and Judaism Etymology Who is a Jew? Religion God in Judaism (names) Principles of faith Mitzvot (613) Halakha Shabbat Holidays Prayer Tzedakah Land of Israel Brit Bar and bat mitzvah Marriage Bereavement Baal teshuva Philosophy Ethics Kabbalah Customs Rites Synagogue Rabbi Texts Tanakh Torah Nevi'im Ketuvim Talmud Mishnah Gemara Rabbinic Midrash Tosefta Targum Beit Yosef Mishneh Torah Tur Shulchan Aruch Zohar History General Timeline Land of Israel...

Mexican professional wrestler El Hijo del VikingoVikingo in 2024Birth nameEmmanuel Roman MoralesBorn (1997-04-29) April 29, 1997 (age 27)Puebla, Puebla, MexicoChildren2FamilyKing Vikingo (father)Professional wrestling careerRing name(s)AracnoEl Hijo de King VikingoEl Hijo del VikingoHijo del VikingoBilled height1.69 m (5 ft 6+1⁄2 in)Billed weight73 kg (161 lb)Trained byKing VikingoDebutDecember 12, 2012 Emmanuel Roman Morales (born April 29, 1997), better k...

 

Pour les articles homonymes, voir Ferrell. Cet article est une ébauche concernant une actrice américaine. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les conventions filmographiques. Conchata FerrellConchata Ferrell en 2016.BiographieNaissance 28 mars 1943CharlestonDécès 12 octobre 2020 (à 77 ans)Sherman Oaks (Californie)Sépulture Forest Cemetery (d)Nom de naissance Conchata Galen FerrellNationalité américaineFormation Université MarshallUni...

 

La zavorra è una massa installata su una imbarcazione, un veicolo, un velivolo o altro mezzo di trasporto, con varie finalità[1][2]. Zavorra solida per cintura e sacchetti contenenti pallini di piombo per le immersioni subacquee. Indice 1 Finalità 2 Esempi pratici di utilizzo 3 Note 4 Voci correlate 5 Altri progetti Finalità Alcune possono essere[3]: Aumentarne il peso e favorirne l'affondamento parziale o totale Compensare la distribuzione delle masse e spostare i...

Egweil. Egweil adalah kota yang terletak di distrik Eichstätt di Bayern, Jerman. Kota Egweil memiliki luas sebesar 9.39 km². Egweil pada tahun 2006, memiliki penduduk sebanyak 1.062 jiwa. lbsKota dan kotamadya di EichstättAdelschlag | Altmannstein | Beilngries | Böhmfeld | Buxheim | Denkendorf | Dollnstein | Egweil | Eichstätt | Eitensheim | Gaimersheim | Großmehring | Hepberg | Hitzhofen | Kinding | Kipfenb...

 

باربرا ماكلين معلومات شخصية الميلاد 16 نوفمبر 1903   باليسادس بارك  الوفاة 28 مارس 1996 (92 سنة) [1]  شاطئ نيوبورت  مواطنة الولايات المتحدة كندا  الزوج روبرت د. ويب (1951–1990)  الحياة العملية المهنة مونتيرة  موظفة في توينتيث سينشوري ستوديوز  الجوائز جائزة الأوس�...

 

Duché d'Opava(cs) Opavské knížectví 1269–1918 Les duchés silésiens en 1269, le duché d'Opava en bleu.Informations générales Statut Duché silésien- pays de la couronne de Bohême Capitale Opava Histoire et événements 1269 Partition du margraviat de Moravie 1337 Union avec le duché de Ratibor 1464 Retour à la couronne de Bohême 1622 Cedé à la maison de Liechtenstein Duc d'Opava 1269–1308 Nicolas Ier 1318–1365 Nicolas II 1445/1447–1464 Jean III 1614–1627 Charle...

Hình 1: Tinh trùng bắt đầu thụ tinh cho trứng (ở động vật). Thụ tinh là quá trình kết hợp giữa giao tử đực với giao tử cái[1][2][3][4]. Ở động vật, giao tử đực là tinh trùng, còn giao tử cái là trứng; ở thực vật: giao tử đực thường là tinh tử, còn giao tử cái là noãn. Kết quả của thụ tinh là sự dung hợp giữa giao tử đực với giao tử cái, từ đó tạo ra...

 

Lisa Paus Lisa Paus en 2020. Fonctions Ministre fédérale allemande de la Famille, des Personnes âgées, des Femmes et de la Jeunesse En fonction depuis le 25 avril 2022(2 ans, 5 mois et 11 jours) Chancelier Olaf Scholz Gouvernement Scholz Prédécesseur Anne Spiegel Députée au Bundestag En fonction depuis le 27 octobre 2009(14 ans, 11 mois et 9 jours) Élection 27 septembre 2009 Réélection 22 septembre 201324 septembre 201726 septembre 2021 Circonscriptio...