მრავალრიცხოვანი მოთხოვნები აწარმოებს სერიას javaScript გაკვეთილები. თუ თქვენ ხართ მკაცრად კონფიგურირებული, სამაგისტრო JS, ეს იმას ნიშნავს, რომ თქვენ უნდა ჰქონდეთ ძირითადი ცოდნა HTML და CSS, რადგან ეს არის საფუძველი, რომლის გარეშეც ძნელია იმის გაგება, თუ რას ვსაუბრობთ.
ჩვენი მხრიდან, მე შევეცდები გავიგოთ გასაგები ენაზე, აჩვენე ნამდვილი მაგალითები სიცოცხლისგან, რადგან ყველაფერი შედარებით მოდის.
რა არის JavaScript, ან როგორ უნდა გვესმოდეს, რა მიზნით საჭიროა ვებ-გვერდის განვითარების დროს!
ჩვენ ვცხოვრობთ მსოფლიოში, სადაც ყველას ხელსაყრელია, ჩვენ ვასრულებთ იმ იდეებს, რომლებიც ჩვენს თავზე მოდიან. ჩვენ ვაშენებთ სახლებს, მანქანებს, სხვადასხვა ტექნიკასთან ერთად მოძრავი. ეს არის ის, რაც ჩვენ შეგვიძლია გავაკეთოთ რეალურ სამყაროში შეიძლება წარმოდგენილი იყოს HTML- თან შედარებით, სადაც ის სამშენებლო მასალას, ფონდს, რომელზეც ყველაფერი ინარჩუნებს და როდის cSS დახმარება ჩვენ გავაკეთებთ ამ სამყაროს, ჩვენ ეს ფერადი, რადგან მათ სურდათ, რომ მას თავად.
ალბათ თქვენ საინტერესოა, თუ HTML და CSS არის ის, რაც გარს შემოგთავაზებთ, რა არის JavaScript? სადაც ის ჩვენს სამყაროში გამოავლინა.
უბრალოდ, მე ვფიქრობ, რომ ავუხსნათ მაგალითად ფილმის Gary ლოტი, მე ვფიქრობ, რომ ბევრი თქვენ ჩანდა და გვესმის, რას ვსაუბრობთ. ფილმის სცენარის მიხედვით, ჩვენ ვიცით, რომ გარი გააჩნიათ შესაძლებლობები, ის იყო ოსტატი, და ჯადოსნური ჯოხი დაეხმარა ამ. ეს იყო ჯადოსნური ჯოხი, რომელმაც მისცა შესაძლებლობა შექმნას ჯადოსნური, ასეთი დონე, როგორც მას ჰქონდა ცოდნა, რათა ის უნიკალურია.
JavaScript არის ჯადოსნური ჯოხიმას აქვს ყველა ვებ დეველოპერი, მაგრამ რა ჯადოსნური შეგიძლიათ შექმნათ, დამოკიდებულია მხოლოდ ცოდნის დეველოპერი, რომელთანაც მას ფლობს. ვინც აითვისა ეს ენაარის ოსტატები და curly სასწაულები.
JavaScript ენა არ არის სრული კომპონენტების გარეშე HTML და CSS. ბევრი პროგრამისტები აღნიშნავდნენ ვებ-გვერდს "ფენებს": HTML, CSS და JavaScript.
HTML. ჰიპერტექსტის მარკირების პირველი ენა - უზრუნველყოფს სტრუქტურულ ფენებს, ექსპრესულად ორგანიზებას უწევს გვერდის შინაარსს, როგორიცაა ტექსტი, სხვა ელემენტები.
მეორე, CSS. (კასკადური სტილის ფურცლები) ფორმა ლამაზი გაფორმება, HTML- ის შინაარსის გამოჩენა.
და მესამე JavaScript. - დაამატეთ ქცევითი ფენების, აღორძინების ვებ გვერდზე, რაც მას ინტერაქტიული, ანუ, ქმნის ელემენტების ურთიერთქმედება სტუმრებთან.
შედეგად, JavaScript ენის შესაქმნელად, თქვენ უნდა ჰქონდეთ კარგი იდეა ორივე HTML და CSS.
პროგრამირების შეიძლება ჩანს წარმოუდგენელი ჯადოსნური, მიუწვდომელი მარტივი მოკვდავი. თუმცა, მისი კონცეფციების უმრავლესობა არ არის გასაგები. Javascript საკმაოდ მეგობრულია novice programmers, მაგრამ, მიუხედავად ამისა, ეს უფრო რთულია, ვიდრე HTML ან CSS, ასე რომ ფარგლებში ფარგლებში გაკვეთილები ჩვენ დაეუფლონ ფუნდამენტურ კონცეფციებს პროგრამირების, და შეგიძლიათ გამოიყენოთ მათ, როდესაც წერილობით სკრიპტები შესახებ JavaScript.
თქვენ გაეცნობიან ახალ სიმბოლოებს (), , (),!, ისწავლეთ ახალი სიტყვების აღნიშვნა (VAR, NULL, ELSE IF), ჩვენ გავაანალიზებთ პუნქტუაციის წესებს და ენების სინტაქსს, და ეს ყველაფერი მათი ჯადოსნური შესაქმნელად.
მასალა მომზადებული Denis დაწვეს, დაწერეთ თქვენი კომენტარი და დარწმუნდით, რომ ეს მასალა თქვენს მეგობრებთან ერთად.
- Გადაცემა
მასალა, რომლის თარგმნაც ჩვენ დღეს გამოაქვეყნებს, არის JavaScript- ის საფუძვლებისთვის და განკუთვნილია დამწყები პროგრამისტებისთვის. ეს შეიძლება ჩაითვალოს როგორც მცირე საცნობარო წიგნი ძირითადი JS დიზაინით. აქ ჩვენ, კერძოდ, მოდით ვისაუბროთ მონაცემთა ტიპის სისტემაზე, ცვლადების, მასივების, თვისებების შესახებ, ობიექტების პროტოტიპების შესახებ და ენის ზოგიერთი სხვა თვისებები.
პრიმიტიული მონაცემთა ტიპები
JavaScript- ს აქვს შემდეგი პრიმიტიული მონაცემების ტიპი: ნომერი, ლოგიკური, სიმებიანი, განუსაზღვრელი, null. დაუყოვნებლივ უნდა აღინიშნოს, რომ, მაგალითად, პრიმიტიული მონაცემების ტიპებთან მუშაობისას, მაგალითად, სიმებიანი ლიტერატურით, ჩვენ არ ვატარებთ აშკარა კონვერტაციას, ჩვენ შეგვიძლია შედიხართ მათი მეთოდები და თვისებები. ფაქტია, რომ როდესაც ასეთ ოპერაციებს შეასრულებს, ლიტერატურული ავტომატურად აღჭურვილია შესაბამისი ობიექტის შეფუთვით.▍ ფურცელი
JavaScript- ს აქვს მხოლოდ ერთი ტიპის რიცხვი - ეს არის ორმაგი სიზუსტის ნომრები მცურავი წერტილებით. ეს იწვევს იმ ფაქტს, რომ ზოგიერთი გამონათქვამების გაანგარიშების შედეგები არითმეტიკულად არასწორია. თქვენ უკვე იცით, რომ JS- ში გამოხატვის ღირებულება 0.1 + 0.2 არ არის 0.3. ამავდროულად, რიცხვებით მუშაობისას ასეთი პრობლემები არ არის დაცული, ეს არის 1 + 2 \u003d\u003d\u003d 3.JavaScript- ს აქვს ნომერი ობიექტი, რომელიც არის რიცხვითი ღირებულებების ობიექტი. ნომრის ობიექტები შეიძლება შეიქმნას VAR A \u003d NUMBER- ის (10) ტიპის ბრძანების გამოყენებით, ან შეგიძლიათ დაეყრდნოთ ზემოთ აღწერილი სისტემის ავტომატური ქცევა. ეს, კერძოდ, საშუალებას გაძლევთ დარეკოთ NUMBER- ში შენახული მეთოდები. Prototype გამოიყენება რიცხვითი ლიტერატურული:
(123) .tostring (); // "123" (1.23) .Tofixed (1); //"1.2 "
არსებობს გლობალური ფუნქციები, რომლებიც განკუთვნილია რიცხვითი ტიპის სხვა ტიპის ღირებულებების გარდაქმნას. ეს არის parseint (), parsefloat () და ნომერი () დიზაინი, რომელიც ამ შემთხვევაში მოქმედებს როგორც ჩვეულებრივი ფუნქცია, რომელიც ასრულებს ტიპების კონვერსიას:
Parseint ("1") // 1 parseint ("ტექსტი") // nan parsefloat ("1.234") //1.234 ნომერი ("1") // 1 ნომერი ("1.234") //1.234
იმ შემთხვევაში, თუ ოპერაციის დროს რიცხვებით აღმოჩნდება, რაც არ არის რიცხვი (ზოგიერთი გათვლებით, ან როდესაც ცდილობს შეცვალოს ნომერი), JavaScript არ მისცემს შეცდომას, მაგრამ წარუდგენს მსგავსი ოპერაციის შედეგს, როგორც NAN- ს ( არა-ნომერი, არა რიცხვი). იმისათვის, რომ შეამოწმოთ თუ არა NAN მნიშვნელობა, შეგიძლიათ გამოიყენოთ Isnan () ფუნქცია.
არითმეტიკული ოპერაციები JS კარგად მუშაობს, მაგრამ აუცილებელია ყურადღება მიაქციოს იმ ფაქტს, რომ + ოპერატორს შეუძლია განახორციელოს ნომრების დამატება და სიმებიც.
1 + 1 //2 "1" + "1" //"11" 1 + "1" //"11"
▍ ინსულტი
რიგები JavaScript არის Unicode პერსონაჟების sequences. სიმებიანი ლიტერატურა შექმნა, შესვლის ტექსტი მათში, ორმაგი (") ან ერთი (" ") შეთავაზებები. როგორც უკვე აღინიშნა, სიმებიანი ლიტერატურული მუშაობისას, ჩვენ შეგვიძლია დავიცვათ შესაბამისი ობიექტის შეფუთვა, რომლის პროტოტიპიც არსებობს, მათ შორის ბევრი სასარგებლო მეთოდი, მათ შორის - სუბსტრირება (), ინდექსი (), Concat (). "ტექსტი" .შემდეგ (1,3) // ყოფილი "ტექსტი" .indexof ("X") // 2 "ტექსტი" .კონკატი ("დასასრული") // ტექსტის დასასრული
რიგები, ისევე როგორც სხვა პრიმიტიული ღირებულებები, Immutabelins. მაგალითად, Concat () მეთოდი არ შეცვლის არსებულ სიმრავლეებს და ქმნის ახალს.
▍logical ღირებულებები
ლოგიკური მონაცემების ტიპი JS წარმოდგენილია ორი ღირებულებით - ჭეშმარიტი და ცრუ. ენაზე ავტომატურად შეუძლია შეცვალოს სხვადასხვა ფასეულობები ლოგიკური მონაცემების ტიპისთვის. ასე რომ, ყალბი, ცრუ ლოგიკური ღირებულების გარდა, არის , undefined, "" (ცარიელი სიმებიანი), 0 და NAN. ყველაფერი, მათ შორის ნებისმიერი ობიექტი, არის ნამდვილი ღირებულებები. Პროგრესირებს ლოგიკური ოპერაციები ყველაფერი, რაც ჭეშმარიტად განიხილება, ჭეშმარიტად გარდაიქმნება და ყველაფერი, რაც ყალბი ითვლება, ყალბი ხდება. შეხედეთ შემდეგ მაგალითს. ზემოაღნიშნული პრინციპების შესაბამისად, ცარიელი სტრიქონი გადაიქცევა ცრუზე და ამ კოდექსის აღსრულების შედეგად კონსოლში, ხაზის ხაზი ყალბი იქნება კონსოლში.ტექსტი \u003d ""; თუ (ტექსტი) (console.log ("ეს მართალია");) სხვა (console.log ("ეს არის FALSE");)
ობიექტები
ობიექტები დინამიური სტრუქტურებია, რომლებიც შედგება წყვილი ძირითადი ღირებულებით. ფასეულობებს შეიძლება ჰქონდეთ პრიმიტიული მონაცემთა ტიპები, შეიძლება ობიექტები ან ფუნქციები.ობიექტები მარტივია შექმნას ობიექტის ლიტერატურული სინტაქსის გამოყენებით:
ნება Obj \u003d (შეტყობინება: "შეტყობინება", Dosomething: ფუნქცია ())
ობიექტის თვისებები შეიძლება იყოს ნებისმიერ დროს, წაკითხული, დამატება, რედაქტირება და წაშლა. ეს არის ის, თუ როგორ კეთდება:
- კითხვის თვისებები: Object.Name, ობიექტი.
- ქონების მონაცემების ჩანაწერი (თუ საკუთრება არ არსებობს, არ არსებობს, ახალი ქონება მითითებული გასაღებით არის): Object.name \u003d ღირებულება, ობიექტი \u003d ღირებულება.
- წაშლა თვისებები: ობიექტის წაშლა, ობიექტის წაშლა.
მოდით obj \u003d (); / / ცარიელი ობიექტის შექმნა obj.message \u003d "გაგზავნა"; / / დასამატებელი ახალი ქონება obj.Message \u003d "ახალი შეტყობინება"; // რედაქტირება ობიექტის წაშლა MESSAGE თვისებები; / / ქონების წაშლა
ობიექტების ენა ხორციელდება hash ცხრილების სახით. თქვენ შეგიძლიათ შექმნათ მარტივი hash მაგიდის გამოყენებით Object.create ბრძანება (null):
მოდით ფრანგული \u003d object.create (null); ფრანგული ["დიახ"] \u003d "oui"; ფრანგული ["არა"] \u003d "არა"; ფრანგული ["დიახ"]; // "oui"
თუ ობიექტი უნდა გაკეთდეს უცვლელი, შეგიძლიათ გამოიყენოთ Object.Freeze () ბრძანება.
ობიექტის ყველა თვისების გასახსნელად შეგიძლიათ გამოიყენოთ Object.Keys () ბრძანება:
ფუნქცია Logproperty (სახელი) (Console.log (სახელი); // ქონების სახელი Console.log (OBJ); // ქონების ღირებულება) Object.keys (OBJ).
პრიმიტიული ტიპებისა და ობიექტების ღირებულებები
-თვის პრაქტიკული სამუშაო პრიმიტიული ღირებულებით, უკვე თქვა, რომ მათ ობიექტებსა და მეთოდებს ჰქონდეთ ობიექტები, თუმცა ისინი არ არიან ობიექტები. პრიმიტიული ღირებულებები უცვლელი, ობიექტების შიდა სტრუქტურა შეიძლება განსხვავდებოდეს.ცვლადები
JavaScript- ში, ცვლადები შეიძლება გამოცხადდეს VAR- ის გამოყენებით, მოდით და კონსერვაციის საკვანძო სიტყვებით.VAR სიტყვის გამოყენებისას შეგიძლიათ გამოაცხადოთ ცვლადი და, საჭიროების შემთხვევაში, გარკვეული ღირებულების დაწყების მიზნით. თუ ცვლადი არ არის ინიციალიზებული, მისი ღირებულება განუსაზღვრელია. Var Keyword- ის გამოყენებით გამოცხადებული ცვლადები ფუნქციონალური ფარგლებს.
ნება სიტყვა არის ძალიან მსგავსი var, განსხვავება ის არის, რომ ცვლადები გამოცხადებული საკვანძო სიტყვა მოდით ბლოკ ფარგლებს.
ხილვადობის ბლოკის ფარგლებს ასევე აქვთ ცვლადები, რომლებიც განაცხადეს კონსტიტუციის საკვანძო სიტყვის გამოყენებით, რომელთა გათვალისწინებით, ასეთი ცვლადების ღირებულებები არ შეიძლება შეიცვალოს, სწორად მოვუწოდებთ "მუდმივებს". კონსტიტუციის საკვანძო სიტყვა, რომელიც "გაყინავს" მისი გამოყენების ცვლადი ღირებულებას შეიძლება შედარებით ობიექტიერთან () მეთოდი, "გაყინვა" ობიექტები.
თუ ცვლადი გამოცხადდება ნებისმიერი ფუნქციის გარეთ, მისი ფარგლები გლობალურია.
წყლი
JavaScript მასივები ხორციელდება ობიექტების გამოყენებით. შედეგად, საუბარი მასივები, ჩვენ რეალურად განვიხილავთ ობიექტების მსგავსი მასივები. თქვენ შეგიძლიათ იმუშაოთ მასივის ელემენტებთან მათი ინდექსების გამოყენებით. რიცხვითი ინდექსები კონვერტირებულია სტრიქონებში და გამოიყენება როგორც მასალის ღირებულებების წვდომის სახით. მაგალითად, ARR ტიპის დიზაინი მსგავსია ARR ["1"], ხოლო მეორე მისცემს იმავე ღირებულებას: arr \u003d\u003d\u003d arr ["1"]. ზემოაღნიშნულიდან გამომდინარე, უბრალო მასივი გამოაცხადა მოდით ARR \u003d ["A" ბრძანება, B "," C "], როგორც ჩანს: ("0": "ა", "1": "ბ", "2": "C")
წაშლა მასივის ელემენტების მოხსნა წაშლა ბრძანების გამოყენებით "ხვრელები". ამ პრობლემის თავიდან ასაცილებლად შეგიძლიათ გამოიყენოთ splice () ბრძანება, მაგრამ ის ნელ-ნელა მუშაობს, მას შემდეგ, რაც ნივთის მოხსნის შემდეგ ის მასივის დარჩენილ ელემენტებს მოძრაობს, ფაქტობრივად, მასივის დასაწყისში, მარცხნივ .
მოდით arr \u003d ["A", "B", "C"]; წაშლა arr; Console.log (arr); / / ["A", ცარიელი, "C"] console.log (arr.Length); // 3.
მასტების მეთოდები ადვილად ასრულებს ასეთ მონაცემთა სტრუქტურებს, როგორც stacks და რიგები:
/ / დასტის მოდით დასტის \u003d; stack.push (1); / / stack.push (2); / / Last \u003d Stack.pop (); // console.log (ბოლო); // 2 // Queue მოდით Queue \u003d; Queue.PUSH (1); // Queue.push (2); / / მოდით პირველი \u003d Queue.shift (); / console.log (პირველი); // ერთი
ფუნქციები
ფუნქციები JavaScript ობიექტებია. ფუნქციები შეიძლება დაინიშნოს ობიექტებზე, რომლებიც ინახება ობიექტებში ან მასალებში, სხვა ფუნქციებს არგუმენტების სახით და სხვა ფუნქციებისგან დაბრუნებისას.ფუნქციების გამოცხადების სამი გზა არსებობს:
- ფუნქციის დეკლარაცია ან ფუნქცია).
- ფუნქციური გამონათქვამების გამოყენება (ფუნქციის გამოხატვა), რომლებიც ასევე ფუნქციონირებს ლიტერატურულ (ფუნქციის ლიტერატურული).
- სროლის ფუნქციების სინტაქსის გამოყენება (arrow ფუნქცია).
▍classical AD ფუნქცია
ამ მიდგომით ფუნქციების დეკლარაციით, შემდეგი წესები ვრცელდება:- პირველი სიტყვით დეკლარაციის რიგის ფუნქცია ფუნქციაა.
- ფუნქციები უნდა დანიშნოს სახელი.
- ფუნქცია შეიძლება გამოყენებულ იქნას კოდში, რომელიც, სანამ იგი მზადდება ფუნქციის დეკლარაციის მოხსნის მექანიზმით, რომელშიც ის გამოცხადებულია.
ფუნქცია Dosomething () ()
▍ ფუნქციური გამონათქვამები
ფუნქციური გამონათქვამების გამოყენებისას, თქვენ უნდა განიხილონ შემდეგი:- ფუნქციის საკვანძო სიტყვა აღარ არის პირველი სიტყვა მხატვრული რიგის ფუნქციაში.
- ფუნქციის სახელით არის სურვილისამებრ. შესაძლებელია გამოიყენოთ ორივე ანონიმური და დასახელებული ფუნქციური გამონათქვამები.
- ზარის ბრძანებები ასეთი ფუნქციები უნდა დაიცვას ბრძანებები მათი განცხადებები.
- ეს ფუნქცია შეიძლება დაუყოვნებლივ დაიწყოს განცხადების შემდეგ, Iife Syntax- ის გამოყენებით (დაუყოვნებლივ გამოწვეული ფუნქციის გამოხატვა - დაუყოვნებლივ მოუწოდა ფუნქციონალური გამოხატვა).
მოდით dosomething \u003d ფუნქცია () ()
▍ გაჭიმვა ფუნქციები
Arrow ფუნქციები, ფაქტობრივად, შეიძლება ჩაითვალოს "სინტაქსის შაქარი", რათა შეიქმნას ანონიმური ფუნქციური გამონათქვამები. უნდა აღინიშნოს, რომ ასეთი ფუნქციები არ გააჩნია ამ და არგუმენტების საკუთარი პირები. Arrow ფუნქციის გამოცხადება ასე გამოიყურება:მოდით dosomething \u003d () \u003d\u003e ();
აქციები მოვუწოდებთ ფუნქციებს
ფუნქციები შეიძლება ეწოდოს სხვადასხვა გზით.ჩვეულებრივი ფუნქციის ზარი
Dosomething (არგუმენტები)ზარის ფუნქცია ობიექტის მეთოდად
Theobject.dosomething (არგუმენტები) TheObject ["Dosomething"] (არგუმენტები)ზარის ფუნქცია დიზაინერის სახით
ახალი Dosomething (არგუმენტები)გამოაქვეყნებს ფუნქციას ვრცელდება () მეთოდი
Dosomething.apply (theobject,) dosomething.call (theobject, არგუმენტები)მოუწოდებს ფუნქციას გამოყენებით Bind () მეთოდი
მოდით dosomethingwithobject \u003d dosomething.bind (theobject); dosomethingwithobject ();ფუნქციები შეიძლება ეწოდოს დიდი ან მცირე რაოდენობის არგუმენტებს, ვიდრე მათთვის მითითებული პარამეტრების რაოდენობა. "ჭარბი" ფუნქციის ფუნქციის დროს, არგუმენტები უბრალოდ იგნორირებულია (თუმცა ფუნქცია მათთვის ხელმისაწვდომი), დაკარგული პარამეტრების მიღება გაურკვეველია.
ფუნქციებს აქვს ორი ფსევდო-პარამეტრი: ეს და არგუმენტები.
▍ ქორწილი სიტყვა ეს
საკვანძო სიტყვა არის ფუნქციის კონტექსტი. ღირებულება, რომელიც მას მიუთითებს, დამოკიდებულია იმაზე, თუ როგორ მოხდა ფუნქცია. ეს არის ის, რაც ფასეულობებს იღებენ ამ სიტყვის მიხედვით, რაც დამოკიდებულია ფუნქციის დარეკვის მეთოდის მიხედვით (ისინი, კოდექსის მაგალითებით, რომელთა დიზაინებს იყენებენ ზემოთ აღწერილი):- ნორმალური ფუნქციის ზარი - ფანჯარა / განუსაზღვრელი.
- ზარის ფუნქცია ობიექტის მეთოდად - TheObject.
- დარეკვის ფუნქცია დიზაინერის სახით - ახალი ობიექტი.
- მოუწოდებს ფუნქციას ვრცელდება () მეთოდი - TheObject.
- Calling ფუნქცია გამოყენებით სავალდებულო () მეთოდი - theobject.
▍ საქორწინო სიტყვა არგუმენტები
არგუმენტების საკვანძო სიტყვა არის ფსევდოპარამეტრის, რომელიც უზრუნველყოფს ყველა არგუმენტს, რომელიც გამოიყენება ფუნქციის დარეკვისას. როგორც ჩანს, მასივი, მაგრამ არ არის მასივი. კერძოდ, მას არ აქვს მასივი მეთოდები.ფუნქცია REDUCETOSUM (სულ, ღირებულების) ფუნქციის თანხა () (არ args \u003d array.prototype.slice.call (არგუმენტები); დაბრუნება args.reduce (reducetosum, 0);) თანხა (1,2, 3);
არგუმენტების სიტყვის ალტერნატივა არის დანარჩენი პარამეტრების ახალი სინტაქსი. მომდევნო მაგალითში args არის მასივი, რომელიც შეიცავს ყველაფერს, რაც გადაცემულია.
ფუნქციის თანხა (... args) (დაბრუნება args.reduce (Reducetosum, 0);)
▍ ოპერატორის დაბრუნება.
ფუნქცია, რომელშიც დაბრუნების გამოხატულება არ არის დაკარგული, დაუპირისპირდება. დაბრუნების საკვანძო სიტყვის გამოყენება, ყურადღება მიაქციეთ, თუ როგორ მუშაობს ავტომატური ჩასმის მექანიზმი. მაგალითად, შემდეგი ფუნქცია არ დაუბრუნდება ცარიელი ობიექტი, მაგრამ განუსაზღვრელი:ფუნქცია GetObject () (დაბრუნება ()) GetObject ()
ასეთი პრობლემის თავიდან ასაცილებლად, გახსნის ფრჩხილი უნდა განთავსდეს იმავე ხაზზე, რომელზეც დაბრუნების განცხადება მდებარეობს:
ფუნქცია GetObject () (დაბრუნება ())
დინამიური აკრეფა
JavaScript არის ენა დინამიური აკრეფით. ეს იმას ნიშნავს, რომ კონკრეტული ღირებულებები აქვს ტიპებს, და ცვლადები არ არის. პროგრამის განხორციელებისას იმავე ცვლადში შეგიძლიათ მიიღოთ ღირებულებები Განსხვავებული ტიპები. აქ არის მაგალითი ფუნქცია, რომელიც მუშაობს სხვადასხვა ტიპის:ფუნქციის ჟურნალი (ღირებულება) (console.log (ღირებულება);) შესვლა (1); შესვლა ("ტექსტი"); შესვლა ((შეტყობინება: "ტექსტი"));
ცვლადში შენახული მონაცემების გასარკვევად შეგიძლიათ გამოიყენოთ Typeof () ოპერატორი:
ნება n \u003d 1; ტიპიფი (ნ); / / ნომერზე S \u003d "ტექსტი"; ტიპიფი (ებ) ი; / / სიმებიანი ნება fn \u003d ფუნქცია () (); ტიპიფი (fn); // ფუნქცია.
აღსრულების ერთჯერადი ნაკადი მოდელი
JavaScript- ის შესრულების გარემო ერთჯერადი ხრახნიანია. ეს, კერძოდ, გამოხატულია ერთდროულად ორი ფუნქციის შესრულების შეუძლებლობით (თუ არ გაითვალისწინოს კოდექსის ასინქრონული შესრულების შესაძლებლობები, რომ ჩვენ არ ვგულისხმობთ აქ). აღსრულების გარემოში არის ე.წ. ღონისძიების რიგი (თარიღის რიგი), რომელიც ინახავს ამოცანების ჩამონათვალს. შედეგად, ორმხრივი რესურსების დაბლოკვის პრობლემების პრობლემა უჩვეულოა JS- ის აღსრულების ერთი აყვავებული სქემისთვის, ამიტომ არ არსებობს ბლოკირების მექანიზმი. თუმცა, კოდექსი, რომელიც მოვლენების რიგში მოდის, სწრაფად უნდა შესრულდეს. თუ თქვენ გადატვირთეთ მძიმე სამუშაოს, ბრაუზერის აპლიკაციაში, ძირითადი ნაკადი, განაცხადის გვერდი არ პასუხობს მომხმარებლის ექსპოზიციას და ბრაუზერს შესთავაზებს ამ გვერდის დახურვას.გამონაკლისი გატარება
JavaScript- ს აქვს გამონაკლისი მექანიზმი. იგი მუშაობს საკმაოდ ჩვეულებრივი ასეთი მექანიზმებისათვის პრინციპი: კოდი, რომელიც შეიძლება გამოიწვიოს შეცდომა, გამოიყენება ლელოების გამოყენებით. კოდექსი თავისთავად არის მცდელობა, შეცდომები დამუშავებულია ბლოკში.საინტერესოა აღინიშნოს, რომ ზოგჯერ JavaScript, თუ თქვენ გაქვთ თავისუფალი სიტუაციები, არ გასცემს შეცდომის შეტყობინებებს. ეს არის იმის გამო, რომ JS არ ჩააგდებს შეცდომებს Ecmascript 3 სტანდარტის მიღებამდე.
მაგალითად, კოდექსის მომდევნო ფრაგმენტში, "გაყინული" ობიექტის შეცვლის მცდელობა ვერ მოხერხდება, მაგრამ გამონაკლისი არ გაიცემა.
ნება Obj \u003d Object.Freeze (()); Obj.message \u003d "ტექსტი";
ზოგიერთი "მდუმარე" JS შეცდომები მკაცრ რეჟიმში გამოიხატება, შეგიძლიათ "გამოყენების მკაცრი" დიზაინის გამოყენება; .
პროტოტიპის სისტემა
ასეთი JS მექანიზმების საფუძველი, როგორც ფუნქცია-დიზაინერები, Object.Create ბრძანება (), კლასი გასაღები სიტყვა არის პროტოტიპების სისტემა.განვიხილოთ შემდეგი მაგალითი:
მოდით მომსახურება \u003d (Dosomething: ფუნქცია ()) მოდით სპეციალობითსერვისი \u003d Object.Create (სერვისი); Console.log (სპეციალობითსერვისი .__ Proto__ \u003d\u003d\u003d სერვისი); // სიმართლე.
აქ, რათა შეიქმნას სპეციალობითსერვისი ობიექტი, რომელიც აუცილებელი იყო ობიექტის ობიექტის შესაქმნელად. შედეგად, აღმოჩნდება, რომ Dosomething () მეთოდი შეიძლება მოუწოდა დაუკავშირდა სპეციალობითსერვისის ობიექტი. გარდა ამისა, ეს იმას ნიშნავს, რომ __Proto__ სპეციალიზირებული ობიექტის ქონება მიუთითებს მომსახურების ობიექტზე.
შექმენით ახლა მსგავსი ობიექტი კლასი საკვანძო სიტყვების გამოყენებით:
კლასი სერვისი (Dosomething ()) Class SpecializeService ვრცელდება Service () SPECIECTIONSERSERSERVICE \u003d ახალი სპეციალობითსერვისი (); Console.log (სპეციალობითსერვისი .__ Proto__ \u003d\u003d\u003d სპეციალიზირებული სერტოტიპი);
მომსახურების კლასში გამოცხადებული მეთოდები დაემატება სერვისს. სერვისის კლასის შემთხვევები ექნება იგივე პროტოტიპი (Service.Prototype). ყველა ინსტანცია დელეგირებას მოუწოდებს მომსახურებისკენ. Prototype ობიექტი. შედეგად, აღმოჩნდება, რომ მეთოდები მხოლოდ ერთხელ გამოცხადდა სამსახურში. პროტოტიპი, რის შემდეგაც ისინი "მემკვიდრეობით" არიან კლასების ყველა ინსტანციით.
▍ceclosure პროტოტიპები
ობიექტები შეიძლება სხვა ობიექტების "მემკვიდრეები". თითოეულ ობიექტს აქვს პროტოტიპი, რომლის მეთოდებიც ხელმისაწვდომია. თუ თქვენ ცდილობენ გამოიყენოთ ქონება, რომელიც არ არის ობიექტში, JavaScript დაიწყებს პროტოტიპის ჯაჭვის ძიებას. ეს პროცესი გაგრძელდება, სანამ ქონება არ არის ნაპოვნი, ან სანამ ძებნა ჯაჭვის ბოლოს აღწევს.JavaScript- ში ფუნქციონალური პროგრამირების შესახებ
-ში JavaScript ფუნქციები პირველი კლასის ობიექტებია, ენა მხარს უჭერს დახურვის მექანიზმს. ეს იხსნება JS- ში ფუნქციური პროგრამირების მეთოდების განხორციელების გზაზე. კერძოდ, ჩვენ ვსაუბრობთ უმაღლესი წესრიგის ფუნქციების გამოყენების შესაძლებლობაზე.დახურვა არის შიდა ფუნქცია, რომელსაც აქვს მშობლის ფუნქციის ფარგლებში გამოცხადებული ცვლადების ხელმისაწვდომობა, მაშინაც კი, მას შემდეგ, რაც მშობელთა ფუნქცია შესრულდება.
უმაღლესი შეკვეთის ფუნქცია ფუნქციაა, რომელსაც შეუძლია სხვა ფუნქციების აღება, როგორც არგუმენტები, დაბრუნების ფუნქციები, ან ორივე.
ფუნქციური პროგრამირება JS- ში ხაზს უსვამს სხვადასხვა პუბლიკაციებში. თუ ეს თქვენთვის საინტერესოა - აქ არის რამოდენიმე მასალა ამ თემაზე
JavaScript სინტაქსის Tutorial
სანამ დაიწყებთ კითხვას javaScript Tutorialთქვენ უნდა ჰქონდეთ პროგრამული უზრუნველყოფის ცოდნა.
ეს იქნება დიდი პლუს JavaScript სინტაქსის სწავლისას, თუ თქვენ უკვე იცნობთ ნებისმიერ პროგრამულ ენას, როგორიცაა PHP, C ან PASCAL, და ასევე ესმის, თუ რა ცვლადი, მონაცემთა ტიპი, ფუნქცია, ან მასივი.
თუმცა, თუ თქვენ არ იცნობთ პროგრამულ ენებს, არ ღირს შემაშფოთებელი, მოცემული javaScript სახელმძღვანელოს უბრალოდ და განკუთვნილია მათთვის, ვინც პირველად გააგრძელებს პროგრამირების შესწავლას.
JavaScript (JavaScript) - ეს არის კლიენტის პროგრამირების ენა, რომელიც შეიძლება კონტროლირებად HTML- ის გვერდი ელემენტები (HTML Tags) და ვებ ბრაუზერი, აიძულებს მათ გადაადგილება, რეაგირება სხვადასხვა ღონისძიებები (მაუსის დაწკაპუნებით, კლავიატურის დაჭერით), შექმენით ბევრი საინტერესო პროგრამები ( სკრიპტები): ტესტები, ანიმაცია, შეხვედრები (მაგალითად, Vkontakte), თამაშები და სხვა.
როგორ არის JavaScript- ის შესწავლა
Სწავლა javaScript ენაჩვეულებრივ, ოთხ ეტაპად იყოფა:
1. Javascript სინტაქსი (ეს სამეურვეო),
2. სასწავლო დომენი და ბომ.,
3. DOM და BOM კონტროლის გამოყენებით JavaScript,
4. სხვადასხვა JavaScript ბიბლიოთეკების შესწავლა. jQuery. - ყველაზე პოპულარული ამ მომენტში ბიბლიოთეკა (JQuery სახელმძღვანელოს უნდა გამოჩნდეს ამ საიტზე 2015 წლის ბოლოს).
DOM არის დოკუმენტის ობიექტი მოდელი. წყალობით Dom ტექნოლოგია, HTML გვერდები tags დაიწყება წარმოადგენს ობიექტების ობიექტების ობიექტების და თითოეული ობიექტი ამ ხე, არსებობს უნიკალური მისამართი. JavaScript ენა გულისხმობდა ამ მისამართზე, შეუძლია წვდომა კონკრეტული HTML ტეგი და მართვა (შეცვლა ფერი, ზომა, პოზიცია და mn. დოქტორი).
BOM არის ბრაუზერის დოკუმენტის მოდელი. სტრუქტურა იგივეა, რაც DOM, მხოლოდ HTML- გვერდის ობიექტების ნაცვლად, ბრაუზერის ფანჯარა, ბრაუზერის ფანჯარა, ბრაუზერის ეკრანის ზომები, ისტორიის, სტატუსის სიმებიანი და ა.შ.
DOM და BOM- ის შესწავლის შემდეგ, ისინი იწყებენ უფრო მეტ ან ნაკლებად კომპლექსურ სკრიპტს JavaScript- ზე გვერდით და ბრაუზერით.
მაშინ, რომელმაც მცირე, შესწავლა რამდენიმე JavaScript ბიბლიოთეკა, როგორიცაა jQuery, მადლობა მას თქვენ შეგიძლიათ შექმნათ იგივე პროგრამები, როგორც JavaScript, მხოლოდ უფრო სწრაფად და ეფექტური.
ზოგიერთი ვებმასტერები დაუყოვნებლივ დაიწყებენ შესასწავლად jQuery, skipping წინა სამი ეტაპი, მაგრამ მე არ გირჩევთ ეს, რადგან ნებისმიერ შემთხვევაში თქვენ უნდა გაიგოთ JavaScript სინტაქსი და ვიცი DOM / BOM ობიექტების მათი თვისებები, მეთოდები და მიმართულებები.
რა პროგრამები შეიძლება დაიწეროს JavaScript- ის გამოყენებით
თქვენ შეგიძლიათ შექმნათ ბევრი საინტერესო პროგრამა (სკრიპტები):
- თქვენ შეგიძლიათ შექმნათ სკრიპტები, რომლებიც შეიცვლება საიტის გვერდის ელემენტებს ან მათი ადგილმდებარეობის ელემენტებს, ერთი ან სხვა ღილაკით დაჭერით,
- თქვენ შეგიძლიათ შექმნათ ანიმაცია,
- მანიპულირება ფორმები, როგორიცაა მომხმარებლის მიერ შეტანილი მონაცემების შემოწმება,
- შექმნა სხვადასხვა ტესტები, როგორიცაა ტიპის Ege (სკოლის გამოცდები) და დაუყოვნებლივ მიიღოს შედეგი,
- მადლობა BOM- ს, თქვენ შეგიძლიათ იპოვოთ ბრაუზერის მახასიათებლები და კომპიუტერული კომპიუტერი თქვენს საიტზე მოინახულეთ, რაც საშუალებას გაძლევთ შექმნათ სხვადასხვა ვიზიტის მრიცხველები,
- JavaScript- ით, თქვენ შეგიძლიათ შექმნათ თამაშები, მულტფილმები და მრავალი სხვა საინტერესო და სასარგებლო პროგრამები.
რა არის ამ ტერმინების მიზანი JavaScript- ზე?
ამის მიზანი javascript წიგნები არის გასწავლა javaScript სინტაქსის საფუძვლებიპროგრამირების და ცნებები, როგორიცაა ცვლადები, მონაცემთა ტიპები, ოპერაციები, ფილიალი ოპერატორები, ფუნქციები, ციკლები, მასივები, ობიექტები და ა.შ. ეს ყველაფერი სხვა პროგრამირებად ენებზეა ნაპოვნი, ასე რომ, JavaScript- ის საშუალებით, ბევრად უფრო ადვილი იქნება სხვა ენების შესწავლა, როგორიცაა PHP, C ++ ან Python.
JavaScript სახელმძღვანელოს სტრუქტურა
-ში სახელმძღვანელოს JavaScript- ზე.განხილული იქნება შემდეგი თემები და გაკვეთილები.
JavaScript - შედის თამაშის როდესაც ჩვენ გვჭირდება გარკვეული ნაბიჯები კლიენტის მხარეს, რომელიც მიმართა ჩვენს ვებ გვერდზე.
JavaScript- ს შეუძლია შეცვალოს ვებ-გვერდი სერვერზე წვდომის გარეშე, შეამოწმეთ მონაცემების მომხმარებლის ღირებულებები და სხვა ოპერაციების განხორციელება.
ეს სტატია შეიცავს ძირითად ინფორმაციას, რომელიც საშუალებას მოგცემთ დაიწყოთ JavaScript- ის გამოყენებით.
სკრიპტის ჩასმა გვერდზე პირდაპირ გვერდზე კოდი
თქვენ შეგიძლიათ ჩაწეროთ JS კოდი პირდაპირ გვერდზე.
კოდექსის მოცილება ცალკე ფაილში
შეიძლება წარმოდგენილი იყოს Javascript კოდი გარე ფაილზე და გამოიყენოთ ბმული გვერდზე გვერდზე
ამ შემთხვევაში დახურვის ნიშანი აუცილებელია.
საუკეთესო ჩასმა სკრიპტები დახურვის ტეგით