JavaScript

מתוך ויקיפדיה, האנציקלופדיה החופשית

קפיצה אל: ניווט, חיפוש

JavaScript היא שפת תסריט מונחית עצמים. היא ידועה בעיקר כשפה המוטבעת בדפי HTML על מנת להציג דפים דינמיים, שמשולבת בהם תוכנה. קוד ה-JavaScript שמשולב בדף HTML מבוצע על ידי הדפדפן. JavaScript נוחה מאוד לעבודה עם ה-DOM ולתפעול DHTML.

השפה נוצרה על ידי חברת נטסקייפ בשנת 1995, ויושמה לראשונה בדפדפן נטסקייפ 2.0. הגרסה הייתה JavaScript 1.0. בנוסף לכתיבת תסריטים בצד הלקוח (בדפדפן) מאפשרת JavaScript כתיבת תסריטים גם בצד השרת, לתפעול בשרת אינטרנט. מבחינת שפה, וגם מבחינת התחביר שלה, מזכירה JavaScript את שפת ActionScript שמיוחדת לפלאש. גרסה תקנית של השפה קרויה ECMAScript.

חברת מיקרוסופט יצאה בשפה מתחרה, VBScript, להפעלה בדפדפן, אך לא הצליחה ביעד זה (היא הצליחה יותר בשימושים אחרים של השפה, כולל כתיבת תסריטים בצד השרת - ASP). בנוסף יצאה מיקרוסופט עם גרסה משלה של שפת JavaScript, והיא קרויה JScript. דבר זה גורם עד היום לבעיות רבות בקרב מפתחי האינטרנט, בין אם בגלל מפתחים המעלימים עין מהעובדה שהם מתכנתים ב־JScript בלבד, ומתעלמים מדפדפנים אחרים המפענחים את JavaScript הרגילה – ובין בגלל מפתחי אתרים הסובלים לשווא בהתגברות על חוסר התמיכה של הדפדפן אינטרנט אקספלורר של מיקרוסופט בחלקים תקניים מ־JavaScript.

תוכן עניינים

[עריכה] דוגמה לתוכנית JavaScript

התוכנית המופיעה להלן כתובה בשפת JavaScript, והיא בודקת האם מספר שהועבר אליה הוא מספר ראשוני. הסימן "//" מציין שהטקסט שמימינו אינו חלק משפת התכנות, אלא הוא הערה שמטרתה להסביר את התוכנית למתכנת הקורא אותה. התוכנית מחולקת לשתי פונקציות, האחת בודקת האם מספר נתון הוא ראשוני, והשנייה מטפלת בדיאלוג עם המשתמש: קבלת המספר לבדיקה (קלט) והצגת תוצאות הבדיקה (פלט).

<input type="text" id="primetest" value="" />
<input type="button" onclick="communicate();" value="Check" />
 
<script type="text/javascript">
	function check(n)
	{ // Check if the number n is prime.
		if (n <= 3)
			return 0;
		if (n%2 == 0) // is n divisible by 2?
			return 2;
		if (n%3 == 0) // is n divisible by 3?
			return 3;
		var sr = Math.sqrt(n);
		// try to divide the checked number by all numbers till its square root.
		for (var i=6; i<=sr; i+=6)
                {
			if (n%(i-1) == 0) // is n divisible by i-1?
				return i-1;
			if (n%(i+1) == 0) // is n divisible by i+1?
				return i+1;
                }
		return 0; // n is a prime, 0 returns.
	} // End of check function.
 
	function communicate()
	{ // communicate with the user.
		var i; // the checked number.
		var factor; // if the checked number is not a prime, this is its first factor.
		i = document.getElementById("primetest").value; // get checked number, using DOM.
		// it is a valid input?
		if ( isNaN(i) || (i <= 0) || (Math.floor(i) != i) )
			alert("The checked object should be a whole positive number");
		else
		{
			factor = check(i);
			if (factor == 0)
				alert(i + " is a prime");
			else
				alert(i + " is not a prime, " + i + "=" + i/factor +"x"+ factor);
		}
	} // End of communication function
</script>


[עריכה] אבטחה בתוכניות JavaScript

בתור שפת צד לקוח שמריצה פקודות על גבי הדפדפן, נוצרו נסיונות רבים לגניבת מידע אישי על ידי שימוש ב-XSS. אנשים רבים אינם מבינים שהדפדפן שברשותם הוא בעצם מפרש פקודות ומריצן, ואינם מתגוננים עם כלים מתאימים. בעקבות זאת, נוצרו כלים שמשמשים לאבטחה נגד XSS וקוד זדוני כמו ההרחבה noscript לדפדפן מוזילה פיירפוקס.

[עריכה] קובצי JS

ניתן גם ליצור את כל התוכן של הסקריפט בקובץ מסוג .js ולהפנות אליו על ידי הפקודה הבאה:

<script type="text/javascript" src="filename.js">
</script>

כאשר filename.js הוא קובץ ה .js אליו מפנים.

קובץ ה-.js מכיל בעצם את כל הפקודות המופיעות בתוך התגית <script>.

[עריכה] ראו גם

[עריכה] קישורים חיצוניים

מיזמי קרן ויקימדיה
ויקיספר ספר לימוד בוויקיספר: JavaScript