هانا بلومبرگ: سلام به همگی. ما قصد داریم برای شروع فقط چند دقیقه زودتر از آنجایی که ما یک کل از مواد به نفوذ کنه. من هانا هستم. من یک TF هستم. ماریا در حال رفتن به پیوستن شود ما فقط در چند دقیقه. او درست قبل از بخش می آموزد. من بخش سمت راست آموزش پس از آن، بنابراین ما قصد داریم آن را نگه دارید به یک ساعت و نیم. بنابراین به عنوان شما را در اینجا ببینید، ما باید کاملا چند موضوع ما نیاز به از طریق دریافت، بنابراین خواهیم رفتن کمی سریع می باشد. اما اگر در هر نقطه که ما چیزی می گویند سرعت بیش از حد و یا شما را نمی فهمید، در صورت تمایل به قطع با سوالات. ما می خواهم که قادر به این بررسی جلسه به عنوان مفید به همه شما تا جایی که ممکن است. عالی. بنابراین اجازه دهید پرش به سمت راست با برخی از موضوعات که ما در واقع بسیار بسیار کوتاهی برای تحت پوشش مسابقه 0 در مسابقه 0 را وارد نمایید. بنابراین با لیست های پیوندی شروع. بنابراین فقط مطمئن شوید که شما باید برخی از دانش پایه در مورد لیست های پیوندی و راحت انجام می دهند برخی از عملیات اساسی است. پس فقط به بررسی، مرتبط لیست بهتر از آرایه ها چرا که آنها به صورت پویا می تواند رشد کند. پس ما که مزیت بزرگ است. ما را دیده ام آنها استفاده می شود در جداول هش هنگامی که ما دقیقا نمی دانند که چگونه بسیاری از چیزهایی که ما به خواهید برای وارد کردن به ساختار داده است. متاسفانه، ما باید قطعه از لیست پیوندی در سراسر حافظه، بنابراین ما لزوما قادر به دسترسی زمان ثابت به هر عنصر در لیست پیوندی. به منظور پیدا کردن یک عنصر خاص، ما مجبور به تکرار همه راه را از اول شروع کنید. بنابراین به خاطر داشته باشید که بسیاری از عملیات اساسی امگا، از مجموع 1 می باشد. بنابراین درج فقط رفتن را به 1. حذف می گذرد را به N از آنجایی که ما باید برای رفتن پیدا کردن آن را از لیست. و جستجو می تواند را، در بدترین حالت، N. ما می توانید چیزی شبیه نیست جستجوی دودویی در یک لیست پیوندی از آنجایی که ما فقط می توانید به طور تصادفی به وسط پرش. خنک. عالی. کمی از پشته. این، دوباره، آمد در امتحان 0، بنابراین شما باید فوق العاده با آن راحت باشد. اما آمدن، ما از شما درخواست به یاد داشته باشید یک پشته از سینی. و آن را برای اولین بار در می شود، گذشته. بنابراین ما پشته تا چیز در پشته، و پس از آن اگر ما در حال تلاش برای گرفتن چیزی off-- که ما ظاهر کردن stack-- ما آمده ایم از بالا. و اگر ما می خواهیم برای قرار دادن چیزی در پشته، ما پاسخ آن را هل دادن. پس از آن همیشه رفتن به در حال رشد از پایین مانند یک پشته از سینی. عالی. ما پشته دیده ام اجرا با هر دو لیست های پیوندی و آرایه ها. اگر شما در حال اجرای با آرایه، شما می خواهید مطمئن شوید برای پیگیری هر دو اندازه و ظرفیت. بنابراین اندازه است برای رفتن به جریان تعدادی از چیزهایی در پشته خود را، در حالی که ظرفیت تعداد کل است از چیزهایی که شما می توانید در پشته را ذخیره کنید. خنک. بسیار مشابه، ما باید صف. در این مورد، به جای فکر کردن در مورد یک پشته از سینی، از یک خط فکر می کنم. این است که رفتن به اولین بار در سال، از اول. بنابراین اگر شما به پوشش برای چیزی در فروشگاه، ما امیدواریم که که فرد برای اولین بار در خط به اول کمک کرد. به جای گفتن فشار و پاپ مانند ما برای پشته انجام دهید، ما فقط می گویند در نوبت قراردادن و dequeue. و دوباره، اگر شما اجرای این با یک آرایه، ما نیاز به پیگیری نه تنها به اندازه و ظرفیت، بلکه سر، که در حال رفتن به جلوی صف ما. خنک. هر گونه سوال در هر یک از این؟ عالی. در حال حرکت حق همراه است. OK، جداول هش. اینجا جایی است که آن را به شروع می شود واقعا جالب است. بنابراین یک جدول هش یکی از پیاده سازی است از یک آرایه انجمنی. بنابراین اساسا چه اتفاقی افتاده است که همه ما از این ورودی، و ما آن را به یک رشته هش را تابع که می گوید، خوب، این است که در آن در جدول هش آن تعلق دارد. بنابراین ساده ترین تابع هش که ما دیده ایم فقط گفت، OK، فرض کنید ما خواهید برای قرار دادن رشته در جدول هش ما است. و یک ایده واقعا ساده ممکن است به گفتن نیست، OK، اجازه دهید فقط توسط مرتب سازی بر اساس حرف اول کلمه است. بنابراین شما می توانید در اینجا ببینید، ما را موز، ما آن را از طریق یک تابع هش قرار داده است، و آن را می گوید، هی، که باید در صفحه اول 1 است. بنابراین ما می تواند اساسا از هاش فکر می کنم جدول به عنوان یک دسته از سطل های مختلف. و هر یک از این سطل است که برای نگه داشتن سر از یک لیست پیوندی. و در آن لیست پیوندی است که در آن ما می توانیم در واقع قرار دادن قطعات مختلف از داده ها. بنابراین غواصی کمی بیشتر به یک تابع هش، در اینجا به عنوان مثال من فقط توصیف که در آن ما فقط می گویند، OK، را به حرف اول کلمه و ما رفتن به آن را مرتب به سطل. بنابراین احتمالا، آنجا خواهد بود 26 سطل، یکی برای هر حرف از حروف الفبا. چرا یک تابع هش بزرگ است نیست؟ چه می کند این غیر ایده آل؟ آره. مخاطبان: شما در حال رفتن به برخورد. هانا بلومبرگ: بله، دقیقا. شما در حال رفتن به برخورد. به طوری که یک چیز است. و ما بحث در مورد چگونه ما می توانیم تعمیر برخورد در یک ثانیه. مشکل دیگر با این تابع هش خاص این است که متفاوت ما سطل در حال رفتن به اندازه بسیار به شدت متفاوت است. ما می دانیم که در خیلی چیزها وجود دارد کلمات بیشتری است که با یک X از شروع، بنابراین ما در حال رفتن به بسیار سطل نامتعادل در جدول هش ما است. خنک. پس بله، اجازه دهید به تماس نقطه برخورد. چه کنیم اگر یک برخورد وجود دارد؟ ما دو گزینه های مختلف. بنابراین یکی، بنابراین فرض ما در حال تلاش برای قرار دادن انواع توت ها به جدول هش ما است. و ما می بینیم، آه، ما می خواهیم به آن را در صفحه اول 1، اما در حال حاضر زندگی می کند موز وجود دارد. چه می خواهیم کاری انجام دهید؟ ما دو گزینه اصلی است. شماره یک است می توان گفت، OK، هیچ جایی در شاخص 1 وجود دارد، اما اجازه دهید فقط به دنبال حفظ طریق تا زمانی که ما می توانید یکی دیگر از نقطه باز پیدا کنید. بنابراین ما می گویند، OK، اجازه دهید آن را در نقطه 3 قرار داده است. که یک گزینه است. که به نام کاوش خطی. و یک گزینه دوم می گوید، خوب، خوب، اجازه دهید فقط هر یک از این سطل را سرها از لیست های پیوندی. و آن را OK اگر بیشتر وجود دارد از یک چیز در یک سطل. ما فقط در حال رفتن به اضافه آن را بر روی جلو. بنابراین در اینجا شما می توانید ببینید، OK، هنگامی که ما توت درج شده است، ما فقط در زمان موز، نوع آن را بیش از یک کمی تحت فشار قرار دادند و یک توت در وجود دارد انداخت. و این هم کاملا خوب است. این زنجیره جداگانه به نام. شما می توانید از این به عنوان نوع مانند فکر می کنم آرایه ای از سر به لیست های پیوندی. هر گونه سوال در هش جداول، توابع هش؟ عالی. درختان و تلاش می کند. بنابراین یک درخت هر نوع است ساختمان داده که در آن نوعی وجود دارد سلسله مراتب و یا نوعی رتبه بندی به اشیاء مختلف خود را. و این تبدیل خواهد شد فوق العاده روشن هنگامی که ما یک مثال را ببینید. و ما دیدیم که تلاش می کند، همراه با جداول هش، در pset5-- که، دوباره، بازی کاملا عادلانه برای این quiz-- به عنوان داده های دیگر ساختار که ما می توانیم ذخیره چیزهای مختلف. در مورد فرهنگ لغت، ما ذخیره شده یک دسته از کلمات. بنابراین اجازه دهید نگاهی به برخی از درختان. بنابراین این یک نمونه از یک درخت است. از آن است که نوع ساختار، که ساختار سلسله مراتبی، که در آن شما می توانید ببینید که این گره در بالای 1 دارای نوعی از رتبه بالا 2 و 3، که در بالای 4، 5، و 6 و 7، که در بالا 8 و 9 می باشد. به طوری که همه ما با میانگین درخت، بنابراین شما می توانید فقط نوع از این تصویر در سر خود را. در حال حاضر، ما باید یک زن و شوهر از درختان تخصصی تر است. بنابراین یکی از نمونه های یک درخت دودویی است. و یک درخت دودویی است، دوباره، فقط برای رفتن به ساختمان داده با نوعی از سلسله مراتب، اما هر یک از گره می توانید در بسیاری از دو بچه دارند. این جایی است که باینری کلمه می آید از. بنابراین این یک نمونه از یک درخت دودویی است. به طوری که یک دسته کوچکتر از درختان است. حالا اجازه دهید که اختصاصی تر بحث در مورد دودویی جستجوی دودویی trees-- درختان، نه. بنابراین در اینجا این ایده است که نه تنها هر گره حداکثر دو فرزند دارند، اما همه بچه ها را به سمت چپ در حال رفتن به کوچکتر و همه از بچه ها را به حق در حال رفتن به بزرگتر. بنابراین اطلاع فقط در ما درخت دودویی، وجود دارد هیچ رابطه ای بین اعداد. اما در جستجوی دودویی ما درخت، ما می بینیم، خوب، در اینجا 44 است. و هر عدد را به سمت چپ، از مجموع 44 است همه چیز را کوچکتر و به سمت راست بزرگتر است. و که در هر نگه می دارد سطح از درخت. بنابراین در اینجا، این است کوچکتر از 22 و این بزرگتر از 22 است. و درخت جستجوی دودویی است. چرا فکر می کنم ما آن را به نام یک درخت جستجوی دودویی؟ چه الگوریتم آن شما را به یاد؟ مخاطبان: جستجوی دودویی. هانا بلومبرگ: جستجوی دودویی. چرا که اگر شما به دنبال یک شماره خاص در این درخت، در هر نقطه، شما فقط می توانید دست کشیدن نیمی خاموش از درخت، که فوق العاده است. و به طوری که به ما چیزی را که به نظر می رسد بسیاری مانند جستجوی دودویی. هر گونه سؤال؟ همه حق است، سرد است. همه حق است، تلاش می کند. مورد علاقه هر کس. بنابراین این مثال این است که ما دیده ایم یک دسته در کلاس. و دوباره، این فقط یکی دیگر راه که ما می توانیم اطلاعات ذخیره کنند. در مورد فرهنگ لغت، دوباره، این فقط برای رفتن به رشته ها. بنابراین اجازه دهید این در واقع دیدن به نظر می رسد در یک سطح کمی پایین تر. بنابراین اجازه دهید یک نگاهی از در یک گره در یک درخت. و ما می بینیم، OK، رفتن وجود دارد به یک بولی و یک گره، یک اشاره گر به گره. و ما می بینیم که بولی است is_word نامیده می شود. بنابراین اساسا، که رفتن به مطابقت به این مثلث کوچک که می گوید، اگر شما در اینجا بدست، شما یک کلمه کامل در بر داشت. ما می دانیم که "تورینگ" بیش از در اینجا یک کلمه کامل است، در حالی که فقط T-U-R است نه یک کلمه چرا که ما آن دلتا کمی را نمی بینم. و دلتا کمی، دوباره، مربوط به این is_word، این is_word بولی. و بعد ما یک آرایه از کودکان. بنابراین در هر سطح، شما یک گره خاص، و گره به مجموعه ای از تمام حروف الفبا. بنابراین شما می توانید دوباره ببینید،، در این picture-- من رفتن به نگه داشتن پریدن و forth-- که آرایه در بالای دارای یک دسته از مختلف گره آینده خاموش از آن است. از آن است که 26 یا 27 اگر شما می خواهید که شامل یک شخصیت فوق العاده است. و این ما می دهد راه برای ذخیره داده های ما در راه است که می توان در نگاه که شما می توانید نگاه کردن فوق العاده سریع. زمان مراجعه برای یک درخت پیشوندی چیست؟ مخاطبان: [نامفهوم]. هانا بلومبرگ: آره. در تئوری، آن زمان ثابت است. آن را تنها رفتن به اندازه کلمه ای که شما می خواهید به نگاه کردن. حتی اگر ما اضافه کردن عدد بیانتها و معتنی کلمات بیشتر به درخت ما، آن را نمی ما را دیگر برای تعیین اگر یک کلمه داده شده در این درخت است. به طوری که واقعا خوب است. مخاطبان: آیا شما فقط مقداردهی اولیه که آرایه؟ شما از دست رفته یک یا دو نقطه است. آیا می توانید فقط صحبت در مورد که برای یک ثانیه. هانا بلومبرگ: مطمئنا، کاملا. سوال خوبی بود. سوال این بود که، ما یک آرایه که رفتن به گره به عنوان ستاره نه فقط گره، درست است؟ خنک. بنابراین در اینجا چیزی است که ما در حال گفت آرایه است ما تنها رفتن به اشاره گر به آرایه دیگر. پس از آن به آن essentially-- نوع احساس می کند مانند یک لیست پیوندی در این راه که در آن هر یک از این کودکان فقط به گره بعدی اشاره می کنند. و راه است که ما در واقع تعیین، هی، OK، ما از طریق یک کل را تکرار کلمه، این کلمه در فرهنگ لغت است، ما فقط بررسی این is_word. درخواست بزرگ است. آره. رسید OK. پس چه زمان اجرا برای این درخت بود؟ هانا بلومبرگ: حتما. بنابراین زمان اجرا برای یک درخت پیشوندی برای گرین کارت آمریکا در حال رفتن به زمان ثابت است. پس از آن فقط برای رفتن به تعداد حروف در کلمه است. آن را وابسته به نیست اندازه فرهنگ لغت یا به اندازه ساختار داده ها. بنابراین در اینجا یک مثال کمی ساده تر است. در این مورد، شما می توانید ببینید که خفاش کلمه در فرهنگ لغت و شما باید زوم، اما شما چیزی شبیه باغ وحش ندارد. چگونه ما را باغ وحش؟ چگونه ما باغ وحش به اضافه کردن ما فرهنگ لغت، به درخت به ما؟ آره. رسید را is_word درست است برای [نامفهوم]. هانا بلومبرگ: خوب. بنابراین ما می خواهم بگویم Z-O-O، و سپس ما می خواهم می خواهید برای بررسی کردن آن جعبه است. عالی. اجازه بدهید به اختصار مقایسه سعی می کند در مقابل جداول هش. تلاش می کند واقعا بزرگ هستند چون، به ما گفت، آنها را فراهم زمان ثابت مراجعه. اما نقطه ضعف بزرگ این است که آنها بسیار بزرگه است. شما می توانید حس کنید، حتی با نگاه کردن به آن، که آن را به مقدار زیادی از حافظه است. به طوری که آنها در حال رفتن به بسیار باشد بزرگتر از جداول هش، اما آنها در حال رفتن به ما بار مراجعه بسیار سریعتر. بنابراین این نوع از خود را معاوضه، آنچه شما در مورد مراقبت از خود، آن است که آیا سرعت و یا حافظه است. هر گونه سوال در هر یک از آن، همه از ساختمان داده C. خوشگل. باشه. ما قصد داریم به حرکت بر روی یک کمی از توسعه وب با ماریا. MARIA ZLATKOVA: دوست داشتنی. باشه. هانا بلومبرگ: شما می توانید لپ تاپ من استفاده کنید. MARIA ZLATKOVA: خوب. باشه خوبه. همانطور که ما حرکت در حال حاضر به وب توسعه، ما صحبت کردیم کمی در مورد مجوز تغییر فایل ها و دایرکتوری به طوری که آنها می تواند در دسترس را به کاربران دیگر، به جهان، و به طوری که ما می توانید ببینید که چگونه اساسا ما می توانید آنها را انتقال هنگامی که ما توسعه وب سایت چیزهایی مانند که ما بیشتر انجام شده است. بنابراین ما شاهد دستور chmod، که است که تغییر حالت، اساسا. که یک فرمان لینوکس و آن را تغییر مجوزهای دسترسی از اشیاء سیستم فایل. و یک شی فایل سیستم است فقط یک دایرکتوری، یک فایل، هر چیزی را که شما می توانید مجوزهای تغییر دهید. بنابراین برای دیدن مجوز های دسترسی فایل، ما نوع از دستور ls، لیست، -l. و هنگامی که ما نوع آن، ما معمولا برخی از مجوز را ببینید که نگاه نوعی مانند این در مقابل یک نام پوشه. بنابراین D اشاره به دایرکتوری. و پس از آن ما سه Triad ها ملاقات میکند که اساسا به مجوز از هم مراجعه یک کاربر، یک گروه، یا جهان است. انواع مجوز که ما می توانیم برای این سه گروه از مردم یا R برای خواندن، w برای ارسال و x برای اجرا کند. و ما می توانیم آن را برای دارند گروه و جهان است. چیزی که مشکل این است که گاهی هنگامی که ما دستور chmod تایپ کنید، ما برخی از تعداد نوع که شامل سه بیت. بنابراین ما می تواند مانند انجام 777 و که اساسا با اشاره به ارزش افزوده هر یک از این عنصرها چون R به 4 مراجعه کنید، W را به 2 مراجعه کنید، و x به 1 مراجعه کنید، بنابراین، هنگامی که اضافه کردن، هر یک از اعداد به تعداد تجمعی پایین آمدن به ارزش تجمعی بین 0 و 7. بنابراین ما نیز می تواند 0 دارند برای هیچ مجوز در همه. و اساسا به ما بدهد مجوز برای هر دو کاربر، این گروه، و یا جهان. هر گونه سوال در این تا کنون؟ رسید شما را خوانده است گفت 4 بود؟ MARIA ZLATKOVA: بله. مخاطبان: [نامفهوم]. هانا بلومبرگ: آره. رسید و پس از آن با اضافه کردن همه کسانی که دیگران شماره خود را نشان می دهد. MARIA ZLATKOVA: آره. آره. این پرسش بزرگ هستند. دوست داشتني. بعد، ما به HTML و شروع به پریدن کرد کمی بیشتر در مورد توسعه وب است. بنابراین HTML فقط بدان معناست زبان نشانه گذاری ابرمتن. و نشانه گذاری زبان این است که یک استاندارد که آن را مورد استفاده برای ایجاد صفحات وب است. آن را یک زبان نشانه گذاری نامیده می شود دلیل آن در واقع کامپایل نشده است. آن را نمی گوید که چگونه برخی از کد باید اجرا شود و یا چیزی شبیه به آن. این فقط و ترسیم توضیح می دهد چگونه یک وب صفحه باید راه اندازی با هر یک از عناصر آن و چگونه باید به کاربران است. برخی از تگ های HTML است که ما رفت زیر هستند. همه اسناد HTML ما آغاز شده با HTML DOCTYPE است. پس از آن ما همیشه باید از تگ HTML. ما یک سر و یک بدن است. و این مهم است که HTML است این نوع از ساختار تو در تو چرا که آن را بسیار روشن است. و سپس آن را بسیار روشن هنگامی که ما نیاز به باز کردن و در واقع برچسب ها نزدیک است. و ما همیشه نیاز به بستن برچسب ها که ما را باز کرد. و در اینجا ما برخی از انواع از همه چیز پیش رو که ما می خواهیم به. بنابراین ما باید، برای مثال، عنوان CS50. و سپس ما در واقع می توانید یک شیوه پیوند که تعریف می کند که چگونه ما سبک وب سایت ما. که CSS است. ما قصد داریم به بیش از آن در زن و شوهر بعد از اسلاید و همچنین. در داخل بدن، ما مجموعه برخی از کلاس های و شناسه. و به عنوان یک یادآوری، دوباره، شناسه منحصر به فرد و کلاس ها را می توان به چند مورد اختصاص داده است. و این فقط بدان معنی است که ما می توانیم کلاس ها و شناسه استفاده در structures-- دیگر بنابراین، برای به عنوان مثال، در فایل های CSS یا سبک sheets-- برای اشاره به عناصر خاص و اساسا می گویند که ما می خواهیم به سبک و یا طراحی برخی از عنصر در برخی از راه خاص است. و ما به آنها اشاره شده توسط شناسه و کلاس خود. و ما نیز می توانید به مراجعه چیزهای مختلف با برچسب ها و همچنین، اما شناسه و کلاس فقط به ما برخی از دادن تطبیق پذیری و آنچه به طور خاص ما خواهید برای اشاره به. پس فقط یک مثال است. ما می توانیم، دوباره، در یک فایل CSS که در آن ما می خواهیم به تعریف برخی style-- بنابراین رنگ، فونت، و چیزهای that-- ما می توانیم تعریف سبک برای بدن است. به طوری که آن را تعریف برای تمام تگ body. اما پس از آن ما همچنین می توانید تعریف سبک برای #title. و دوباره، برچسب اشاره به ما ID و نقطه اشاره به کلاس ما. و سپس برای اطلاعات، ما همچنین می توانید برخی از ویژگی های تعیین شده است. و دوباره، زمانی که ما به عقب برویم، ما به حال ما کلاس به نام اطلاعات و عنوان ID ما است. و ما می توانید ببینید که ما مراجعه به آنها توسط #title و اطلاعات. مخاطبان: آیا می توان گفت برچسب [؟ من اتخاذ؟ ؟] MARIA ZLATKOVA: با عرض پوزش. مخاطبان: آیا می توان گفت برچسب [؟ من اتخاذ؟ ؟] MARIA ZLATKOVA: هشتگ معنی ID، بنابراین #title اشاره به هر عناصر این ID به نام عنوان. و پس از آن نقطه اشاره به یک کلاس. بنابراین گفتمان به این عنصر اشاره به دلیل آن است اطلاعات طبقاتی. آره. مخاطبان: چرا شما تشخیص آنها را در HTML؟ چرا شما چیزهای خاصی هستند شناسه و چیزهای خاصی هستند کلاس؟ MARIA ZLATKOVA: که فقط تا you-- هانا بلومبرگ: تکرار سوال. MARIA ZLATKOVA: اوه، ببخشید. چرا برخی از ما تشخیص عناصر به عنوان شناسه و عناصر دیگر به عنوان کلاس؟ که فقط به خاطر آن واقعا اغلب یک انتخاب طراحی. آن را به شما می دهد بسیاری از تطبیق پذیری در بودن قادر به گفتن من می خواهم این مورد خاص به این ID زیرا آنها می خواهند برای انجام بسیاری از چیزهایی با آن، و من فقط می خواهم به تعریف یک سبک، سبک خاص یا هر رنگی که در مورد. و راه برای انجام این فقط به آن ID. و سپس اگر من می خواهم به یک زن و شوهر از آیتم های مختلف داشتن که، به جای رفتن و راه their-- به جای انجام آن توسط برچسب زیرا برچسب را مجموعه ای از سلول برای تمام تگ برای هر زمانی که تگ استفاده می شود، شما می توانید یک کلاس به آیتم های متعدد تنظیم شده است. و پس از آن فقط دسترسی به کلاس و می گویند من می خواهم به سبک این کلاس که راه. و دوباره، کلاس می تواند شود چند آیتم های مختلف و ID باید منحصر به فرد. سوال بزرگ است. هر سوال دیگری؟ OK، بسیار جذاب است. باز هم، این است که چگونه این انتخابگرهای در CSS اشاره شده است، با برچسب، با نقطه، و یا بدون هیچ چیز را برای اختصاص به سبک برخی از تگ، مانند بدن. و در اینجا ما به طور کلی نحو چگونه این کار انجام شود. به تکرار برخی از بهترین شیوه برای HTML و CSS، ما نیاز به، دوباره، بستن همه تگ های HTML که باز می کنیم. و آنچه ما شما توصیه می شود برای پروژه نهایی خود را انجام دهید، و همچنین برای CS50 مالی، این است که مطمئن شوید که تمام HTML خود را تایید. و این با W3 اعتبار سنج انجام می شود. و پس از آن کاری که ما کردیم و توصیه می کنیم انجام جدا سبک، CSS از نشانه گذاری های HTML. بنابراین هر چیزی که مربوط به چگونه صفحه خود را در حال رفتن به بصری نگاه و چگونه آن را اصلاح شود باید به یک سند CSS است. و سپس نشانه گذاری خود گفت که چگونه همه چیز در ارتباط با یکدیگر هستند HTML غیر فعال است، و که در داخل باید به از اسناد HTML خود را. هر گونه سؤال؟ MHM. مخاطبان: دقیقا همان چیزی است در با اعتبار صفحه زمانی که ما اعتبار HTML که [نامفهوم] ایجاد شده است؟ MARIA ZLATKOVA: پس what-- شما فکر می کنم. پس چه چیز است که در صفحه با اعتبار و چرا ما نیاز به انجام این کار؟ در واقع، ما نیاز به انجام این چرا که بسیاری از بار، مرورگر خود را، اگر شما یک تگ بسته نمی و یا چیزی شبیه به آن، مرورگر خود را هنوز هم به رفتن ارائه یک صفحه و ممکن است هنوز هم کار می کنند، اما آن را بهترین عمل مطمئن شوید که شما، دوباره، بسته تمام برچسب ها خود را، که همه عناصر خود را راه که آنها باید باشد، و اساسا آن توسط کنوانسیون که از پیش تعیین شده است. آن، دوباره، فقط یک چیزی که شما باید یادگیری انجام می شود، به عنوان مخالف به داشتن کد sloppier و چیزهای مانند آن. آره. آه ببخشید. من فکر کردم شما دست خود را بالا بردن. مخاطبان: نه، من فقط [نامفهوم]. MARIA ZLATKOVA: OK. رسید با تشکر از شما. MARIA ZLATKOVA: البته، از شما سپاسگزارم. پس دوباره، در رفتن به چگونه انتقال اطلاعات است و مدل های ارتباطی برای انتقال اطلاعات. TCP / IP. TCP فقط به معنی انتقال پروتکل کنترل و IP اشاره به پروتکل اینترنت. و این فقط به اشاره راه داده تحویل داده شده است. اگر ما به برخی داده ها است که نیاز به تحویل به you-- تا شما یک درخواست برای یک سرور خاص. به عنوان مثال، زمانی که ما سعی کنید برای دسترسی cs50.net، ما به یک درخواست به سرور CS50 و ما دید که ما می خواهیم به این نوع از اطلاعات است. و پس از آن در این پروتکل بر اساس برای چگونه این اطلاعات را تحویل داده است، سرور اطلاعات می دهد پشت به ما، مشتری. و سپس ما قادر به مشاهده هستید اطلاعات برای صفحه و سپس از آن استفاده کنید. بنابراین پس از آن پروتکل انتقال ابرمتن فقط یکی دیگر از پروتکل و یا مجموعه ای است از کنوانسیون است که مشخص می مرورگر وب و وب سرور باید ارتباط برقرار کند. و قرار دادن این همه با هم، HTTP، دوباره، فقط تعریف این تعریف ابرمتن توسط HTML که ما آن را به کار شده است، چگونه باید آن را به شما تحویل داده و چگونه است که داده است که به شما تحویل داده می شود به شما. و به همین دلیل، اگر شما بچه به یاد داشته باشید از یک کلاس، ما بسیاری از درخواست حال و ما بسیاری از نحو حال برای این درخواست است که ما رفتن به بیش از حال حاضر است. بنابراین دوباره، زمانی که ما ارسال یک درخواست به سرور، ما باید به تعریف یک زن و شوهر از چیزهایی است. بنابراین ما نیاز به پیدا کردن نوع درخواست که ما در حال تنظیم. و دوباره، ما، به عنوان مثال، یکی از نوع روش است که ما در درخواست ما داشته باشد. و سپس HTTP / 1.1 است فقط پروتکل که ما با استفاده حال حاضر. بیشتر از زمان، که رفتن به پروتکل که ما با استفاده از. بنابراین اگر شما یک سوال که در مسابقه خود را. که کنوانسیون را که ما تا کنون. بک اسلش اشاره به چه نوع از چیزهایی که ما درخواست. پس از آن، میزبان ما است، به عنوان مثال، در این مورد، ما در حال تلاش برای رفتن به google.com است. بنابراین این مقدار برای یک میزبان است. این یک نوع درخواست است که می تواند ارسال شود. و سپس یک نوع واکنش است که می تواند ارسال می شود، دوباره، بر اساس این پروتکل، دوباره، HTTP / 1.1. به طوری که دوباره نسخه HTTP است. 200 OK فقط کد وضعیت است. و OK فقط یک عبارت است بر اساس آن کد وضعیت. و پس از آن نوع محتوا اشاره به نوع است که به شما بازگردانده است برای آن صفحه وب که شما دریافت و که مرورگر خود را پس از آن می تواند رندر. و متن / HTML است. مخاطبان: چه 1.1 چیست؟ MARIA ZLATKOVA: که فقط نسخه of-- آه، چه 1.1 چیست؟ این تنها نسخه، HTTP است نسخه یک پروتکل است که ما با استفاده از. درخواست بزرگ است. سوال دیگر؟ رسید می توانید خلاصه نوع مطلب سریع واقعی است؟ MARIA ZLATKOVA: به طوری که چه سرور است. نوع information-- چه چیزی است نوع محتوا سوال بود. به طوری که نوع بود اطلاعاتی که شما به عقب بر گردیم از سرور، نوع داده هایی را که پس از آن می توانید مرورگر ارائه که شما با استفاده از. رسید این است که آنچه این پروتکل است به شما بگویند کاری انجام دهید؟ MARIA ZLATKOVA: با عرض پوزش. مخاطبان: این چیزی است که پروتکل می گویند؟ MARIA ZLATKOVA ها: protocol-- مخاطبان: --What نوع محتوا یا what-- MARIA ZLATKOVA: پروتکل بر اساس شماها چه پروتکل گفتن شما است؟ که تنها راه است که این اطلاعات بر اساس به شما تحویل داده شد اینکه از چه نوع پروتکل این اطلاعات رو شد برگشت به شما تحویل داده. آیا این را مرتب سازی بر حس؟ هانا بلومبرگ: شما می توانید از پروتکل فکر می کنم به عنوان a-- من فکر می کنم استاد مالان آن را توصیف در کلاس به عنوان نوع مانند a-- آن را مانند معادل دست دادن انسان است. می گویند، مانند، هی، من یک درخواست و من می دانم که چگونه مسئولیت رسیدگی به HTTP از نسخه 1.1. و پس از آن سرور می گوید، آه، OK، I-- و هر دو وجود داشته باشد. من هم می دانم چگونه به مقابله با HTTP / 1.1. و من قصد دارم به شما را به برخی از مطالب. در این مورد، آن را از نوع متن / html باشد. بنابراین این نوع از فقط یک راه از آنها برای communicating-- MARIA ZLATKOVA: این فقط تایید که شما هر دو یکسان زیر پروتکل و هر دو مشتری و server-- تا مرورگر شما و server-- مرتب کردن بر اساس دانید آنچه شما صحبت کردن در مورد و کنوانسیون عبور در داده ها. مخاطبان: بنابراین نوع محتوا part-- متن نوع مطلب / html-- که یک بخش جداگانه از همین پیام؟ و یا بخشی از اجازه دهید بگویم، 200 است؟ آیا 200 به آنها بگویید که یا is-- MARIA ZLATKOVA: 200 می گوید که تمام OK رفت. و پس از آن نوع محتوا مرتب کردن بر اساس است بخش جداگانه ای از همین پیام، و گفت که این چیزی که من بازگشته است این نوع از متن / HTML. آن را فقط به اطلاعات بیشتر. چیزی برای اضافه کنید؟ باشه. هر گونه سوال دیگر در این؟ عالی. بنابراین برخی از وضعیت های HTTP دیگر که ما می تواند علاوه بر 200 OK دریافت کنید، آنهایی که ما شاید دیده ام احتمالا بسیاری در فاصله 403 و 404. بنابراین 404، اگر شما در تلاش برای شد دسترسی به چیزی که وجود ندارد. بنابراین برای مثال، در خود psets CS50 امور مالی، اگر شما ارائه شده است quote.html و شما آن فایل را نداشته باشند، اما در عوض شما به حال quote.php، که در یک نتیجه یافت نشد 404 به این دلیل که فایل ممکن وجود ندارد. برای 403 ممنوع است، که اشاره به مجوز. بنابراین اگر برخی از فایل توسط قابل خواندن نیست جهان، شما ممکن است یک 403 بازگشت. برخی دیگر ممکن است که شما get-- 301، انتقال دائم؛ 302، یافت. 304، اصلاح. 400، درخواست بد؛ و پس از آن خطا در سرور داخلی برای 500 و 503، سرویس در دسترس نیست. بله. مخاطبان: آیا ما به انتظار حفظ تمام کسانی که وضعیت؟ MARIA ZLATKOVA: من می خواهم که آنها را در بازی ورق خود را. [خنده حضار] مخاطبان: آیا ما به انتظار مطمئن شوید که چه باعث هر یک؟ MARIA ZLATKOVA: آیا آنها؟ هانا بلومبرگ: برای آنهایی که ما را اجرا into-- بنابراین سوال این was-- MARIA ZLATKOVA: آیا آنها انتظار می رود به مطمئن شوید که چه هر یک از این وضعیت کد ممکن است توسط باعث؟ بنابراین برای آنهایی که ما استفاده کرده ایم و فرار را به من می گویند، بله. بنابراین ما قطعا دیده ام 200 OK و آن را در psets سخنرانی. ما را دیده ام 403، 404. برای آنهایی که دیگر؟ هانا بلومبرگ: من می گویند به نظر می رسد 500 بازی منصفانه است. MARIA ZLATKOVA: 500، آره. هانا بلومبرگ: آره. فقط یک مفهوم کلی دارند از آنچه به آنها باعث می شود. و همچنین فقط با این نام، شما می توانید نوع مانند را حدس عنوان به آنچه که آنها ایجاد می شود. به عنوان مثال، حرکت به طور دائم، احتمالا فایل به طور دائم منتقل شد. رسید اما در قبلی آزمون بود، به طوری که وجود دارد چگونه ما از شما انتظار برای پاسخ به این؟ هانا بلومبرگ: که ارزش صفر امتیاز بود. سوال در 418 در قوری از لحاظ فنی یک وضعیت HTTP است، اما ارزش صفر امتیاز بود. بدیهی است، شما نیست انتظار می رود که آنها را می دانیم. مخاطبان: آیا یک واقعی؟ هانا بلومبرگ: این یک واقعی است یکی است، اما آن چیزی نیست. این فقط یک شوخی است. افرادی که در اینترنت خنده دار هستند. MARIA ZLATKOVA: سوال بزرگ، بچه ها. هر سوال دیگری؟ مخاطبان: خطای داخلی سرور چیست؟ MARIA ZLATKOVA: داخلی خطای سرور فقط بدان معنی است که به شما شده است قادر به برقراری ارتباط با سرور برای برخی از دلیل. پس از آن لزوما چیزی است که به انجام با مشتری و یا چیزی شبیه به آن. من از هر مثال خاص نمی دانم که ما بیش از رفته به توضیح، اما آره. هانا بلومبرگ: حتما. بنابراین برای مثال، مانند اجازه دهید می گویند شما در ترکیب مشغول به کار بودند و سرور گوگل پایین برای برخی از رفت دلیل، قطع برق، اجازه دهید بگویم. این امر می تواند یک سرور داخلی خطا و یا نوعی of-- دوست دارید یک پاسخ می کنید تماس. MARIA ZLATKOVA: آره. آن را فقط زمانی که شما قادر به برقراری ارتباط با سرور برای برخی از دلیل دلیل از آن پایین و یا رفتن به دلایل دیگر. بنابراین پریدن به PHP. پی اچ پی، بر خلاف HTML، یک زبان برنامه نویسی. و ما شروع به استفاده از آن به دلیل آن بسیار مفید برای توسعه وب است. ما برای اولین بار آن را در CS50 مالی استفاده می شود. و آن را اساسا کمک می کند تا ما را با هم این نشانه گذاری، طراحی، و چگونه ما در واقع با استفاده از اطلاعات برای نمایش چیز در یک صفحه وب. بنابراین PHP خودی خود به معنی PHP پیش پردازنده مافوق متن، پس از آن یک backnorym بازگشتی به خودی خود است. و باز کردن برچسب ها برای PHP ما در سمت چپ و راست فلش با علامت سوال و پی اچ پی. بنابراین ما در حال حاضر دیده یک دسته از آن. در حال حاضر، ما فقط رفتن به بیش از برخی از کارهای اساسی در مورد آن. بنابراین با پی اچ پی، متغیر نام ها را با علامت دلار شروع می شود. ما مشخص نیست، دوباره، یک متغیر از نوع دیگر. درست مثل ما با C انجام داد، ما لازم نیست برای انجام این کار. ما می توانیم یک دسته از مختلف انجام مسائل با متغیرهای. ما می توانیم آنها را با هم توسط الحاق آنها با نماد نقطه، که ما نمی تواند در C انجام دوباره. باز هم، ما یک کمی بیشتر تطبیق پذیری با پی اچ پی در شرایط متغیر. باز هم، ما یک تابع اصلی ندارد. و PHP تفسیر است به عنوان وارد مخالف، پس فقط ما چگونه برای فایل های C را انجام داد، ما لازم نیست برای انجام این کار برای پی اچ پی. اما نه، این راه است که به زبان را توسط خود اجرا کنید، آن تعبیر شده است. و پس از آن قاعده فقط به این معنی است که ما لازم نیست که برای مشخص کردن یک متغیر نوع و انواع متغیر در زمان اجرا قابل درک باشد. رسید اما آنچه شما انجام منظور الحاق نقطه؟ MARIA ZLATKOVA: حتما. هنگامی که ما می خواهیم به قرار دادن همه چیز together-- بنابراین اگر ما برخی از متغیر بود که حال ارزش 3 و ما به حال یکی دیگر متغیر بود که ارزش رشته، ما می تواند متغیر را با هم با قرار دادن یک نقطه در بین آنها و آنها را الحاق. و یا ما می تواند یک ایجاد متغیر به نام نام و آن را با هم توسط الحاق دو رشته. بنابراین اگر ما یک رشته در دو حال نقل قول و ما یک نقطه را پس از آن، و پس از آن ما تا به حال یکی دیگر از رشته، که یک رشته در دسترس نباشد ایجاد کنید. رسید OK. MARIA لتونی: این بود که روشن است؟ مخاطبان: آره. MARIA ZLATKOVA: OK. بله. مخاطبان: هنگامی که به شما می گویند تفسیر به جای وارد شده، شما در مورد شما صحبت نمی باید به عنوان خاص در زمانی که که می آید به پی اچ پی در مقابل C؟ MARIA ZLATKOVA: وقتی می گوییم تفسیر به عنوان مخالف به وارد شده، چه چیزی ما؟ به طوری که بدان معنی است که ما لازم نیست فایل های اجرایی به اجرای پی اچ پی. این بدان معنی است که آن را اجرا به عنوان آن می رود. فرقی میکنه؟ کمی بیشتر. هانا بلومبرگ: بنابراین شما می توانید از یک مترجم فکر می کنم به عنوان یک برنامه دیگر است که مسئول برای رفتن خط به خط از طریق پی اچ پی و در واقع آن را اجرا، به عنوان مخالف به کامپایل کردن آن همه را به باینری است. این کار در واقع چیزی نیست در مورد چگونگی خاص ما نیاز به. ما هنوز هم باید دقیق، و نمی کنند فراموش نقطه و ویرگول خود را، و مطمئن شوید شما علامت دلار خود را، و مانند آن. سوال خوبی بود. MARIA ZLATKOVA: آره. بنابراین خط به خط، به عنوان مخالف با فایل های C، ما را به طیف نهایی قبل از اینکه ما در واقع می تواند آن را اجرا کنید. که تفاوت اصلی است. اما باز هم، ما می توانیم واقعا کمتر خاص باشد. بنابراین آرایه ها در PHP نمایندگی حقیقت یک نقشه ترتیبی. بنابراین ارزش آرایه وابسته به کلید. دو راه برای اعلام یک آرایه، بر اساس این نحو، ما می تواند صریح تر در گفت ما یک آرایه و ما باید این نقشه ها به key1 که این value1 عدد، key2 که VALUE2 نقشه. یا ما فقط می توانید ایجاد یک آرایه که حاوی مقادیر خود را و سپس کلید می باشد درک در راه است. هر گونه سوال در مورد این؟ رسید چه که از کلید های در مثال دوم می شود؟ 0، 1، 2، 3؟ MARIA ZLATKOVA: به عنوان مثال، آن را فقط کلید ها در این لزوما یک تفاوت ایجاد کن. آنها فقط تعریف چگونه شما می توانید استفاده از مقادیر داخل آن است. بنابراین اگر ما حلقه foreach حال حلقه در پی اچ پی که می ما اجازه می دهد تا از طریق تمام ارزش بروید، ما می توانیم از طریق تمام ارزش بروید، حتی اگر ما به حال و یا تعریف نشده بود یک کلید خاص در سایت ها در نحو قبلی. بنابراین حتی با این نوع از آرایه، ما هنوز هم می تواند یک حلقه foreach که می رود از طریق هر یک از مقادیر موجود در کلید در آرایه. بنابراین نحو حلقه foreach حلقه، ما با مجموعه ای شروع می شود. این متغیر $ ARR آرایه واقعی ما است که ما در اسلاید قبلی تعریف به عنوان ارزش که به معنای واقعی کلمه می رود از طریق هر یک از ارزش ها، صرف نظر از اینکه ما یک کلید بود یا نه. و پس از آن ما می توانیم چیزی را با انجام ارزش داخل حلقه foreach. پس دوباره، اگر ما یک آرایه حال مثل این در اینجا created-- بنابراین ما باید کلید foo و ارزش نوار، کلید باز و ارزش qux-- ما می توانیم یک حلقه foreach که می رود از طریق آرایه به عنوان مقدار کلید و پس از آن انجام کاری با کلید و / یا مقدار است. اما ما لزوما همیشه باید به یک حلقه foreach حلقه که می رود از طریق آرایه به عنوان نقشه کلید به ارزش. ما می توانید از طریق رفتن آرایه حلقه foreach به عنوان ارزش. هانا بلومبرگ: من فکر می کنم سوال خود را، چه بود to-- شاخص ضمنی است؟ مخاطبان: نیمه. MARIA ZLATKOVA: اوه. هانا بلومبرگ: آره، آره. بنابراین در واقع، اگر شما مشخص نیست یک کلید، آن را به 01. MARIA ZLATKOVA: آره. درست مانند C، آن را صفر نمایه اگر شما یک کلید مشخص نمی کند. مخاطبان: با عرض پوزش. می تواند شما سعی می کنید صحبت کمی بلندتر؟ من با داشتن یک کمی از مشکل همه چیز شنیدن. MARIA ZLATKOVA: خیلی متاسفم. آره، البته. به طوری که شما به من می خواهید به بیش از این دوباره؟ و یا this-- است مخاطبان: بنابراین در slide-- قبلی در صورت شما فقط می تواند به عقب برگردد برای یک ثانیه. MARIA ZLATKOVA: البته، با عرض پوزش. مخاطبان: بنابراین دوم آرایه در اینجا نیست به نظر می رسد که یک مقدار به کلید، مرتب کردن بر اساس [؟ علیت. ؟] MARIA ZLATKOVA: راست، سمت راست. رسید پس چگونه است که کار می کند وقتی به شما می گویند آن را به همه یا هیچ کدام. به من، که به نظر می رسد یک [؟ تولی؟] در حال حاضر. MARIA ZLATKOVA: آره، آره. پس دوباره، این است که نقشه دستور داد به این معنا که وجود دارد را درک می شوند، به عنوان مثال، شاخص در اینجا می توان به عنوان 0، 1، 2، 3 قابل درک باشد. دوباره، که داشتن آن شاخص معادل است داشتن کلید های نقشه برداری بر روی ارزش ها. بنابراین اگر کلیدی ما 0-- با عرض پوزش بود. هانا بلومبرگ: نه، در اینجا گچ وجود دارد. این در واقع واقعا خوب است. MARIA ZLATKOVA: بسیار عالی است. باشه. پس دوباره، $ ARR 0 می شود کلید برای ارزش 1. 0 خواهد بود کلیدی برای ارزش 1. مخاطبان: من متاسفم. آن را نامرئی. هانا بلومبرگ: همه حق، بی خیال. گچ یک ایده بد بود. من آن را به عقب. شما می توانید از کلید فکر می کنم به عنوان نقشه 0 به مقدار 1. MARIA ZLATKOVA: آره. بنابراین این 0 است، این 1، 2، 3 است. این می تواند کلید خود را. شما می توانید از آنها as-- فکر می کنم آره. بنابراین به جای داشتن کلید صریح و روشن، آنها مرتب کردن بر اساس عنوان درک شاخص از 0 شروع می. گچ کمک نمی کند. آره. رسید برای حلقه foreach، اگر ما می خواستیم برای مشاهده به عنوان ارزش، آن را فقط به طور خودکار به شاخص 0. MARIA ZLATKOVA: آره. آن را از طریق هر یک از مقادیر است. مخاطبان: [نامفهوم] عنوان 0 و یا می که فقط 0. MARIA ZLATKOVA: شما باید به عنوان علامت دلار و بعد می گویند برخی از نام متغیر، مقدار. مخاطبان: [نامفهوم]. MARIA ZLATKOVA: با عرض پوزش. مخاطبان: با عرض پوزش، من تنها در تلاش برای به یاد داشته باشید. چگونه کار می کنید که اگر شما می توانید آن را انجام دهید به طور خودکار نمایه سازی است که فقط از 0؟ MARIA ZLATKOVA: پس چگونه کار می کنید که اگر شما نام کلید خاص را نداشته باشند؟ مخاطبان: آره. MARIA ZLATKOVA: شما فقط define-- فقط خودتان می گویید به عنوان برخی از نام. بنابراین در psets خود را، شما بچه ها ممکن است به یاد داشته باشید حلقه foreach $ $ ردیف به عنوان ردیف، ما خودمان این $ ردیف گفت ایجاد ما می خواهیم به طریق ردیف عنوان $ ردیف. حتی اگر ما ندارد این $ صریح و روشن ردیف تعریف شده است، ما فقط می تواند برود و می گویند این می تواند کلیدی ما، و فقط از طریق هر یک از مقادیر است. مخاطبان: بنابراین ارزش یک متغیر جدید است ما در حال ایجاد برای ذخیره [نامفهوم]؟ MARIA ZLATKOVA: پس از آن نه ذاتا یک متغیر جدید. این یک متغیر که به اشاره است داخل آرایه را به هر یک از آنها. هانا بلومبرگ: این یک نام جدید متغیر است. MARIA ZLATKOVA: آره، آن را یک نام متغیر جدید، اما آن را نمی inherently-- آره. این فقط یک متغیر جدید که شما می توانید انجام دهید. پس فقط ما چگونه بود $ $ به عنوان ردیف، ردیف ردیف نام یک متغیر جدید این بود که ما می تواند در حلقه foreach ما ایجاد کنید. آن را ندارد به قبل از آن preexist. رسید می توانید از طریق رفتن منطق برای هر یک، با استفاده از مثال وجود دارد؟ MARIA ZLATKOVA: MHM. آه ببخشید. در اینجا مثال است. به روی چشم. بنابراین برای هر آرایه تا این بدان معناست که به این آرایه به عنوان کلید value-- که رفتن از طریق این آرایه و برای اولین بار بروید و تولی است، صنایع غذایی کلیدی و نوار ارزش. و سپس در دوم تکرار از حلقه، آن را از طریق رفتن و باز کلیدی و qux ارزش. و پس از آن شما می توانید چیزی را با انجام هر کدام از آنها یا هر دو آنها. مخاطبان: بنابراین ایده پشت داشتن یک نکته کلیدی برای ارزش، چه چیزی شما را تا پایان دسترسی؟ MARIA ZLATKOVA: این ایده است داشتن یک اشاره کلید ارزش است؟ این کنوانسیون فقط دیگر، یکی دیگر از راه رفتن را از طریق آرایه و قادر بودن برای دسترسی به هر یک از کلید یا مقدار و یا هر دو و استفاده از آنها. رسید چه نقش برای این سفارش که حلقه foreach اجرا می شود در؟ بنابراین اگر ما برای اضافه کردن عناصر به آرایه بعد، کسانی بود که اولین آنهایی که به نام در آرایه foreach را، و یا می شود آن را بعد از؟ MARIA ZLATKOVA: پس چه شده است ترتیب که حلقه foreach حلقه می رود از طریق یک آرایه در؟ آن را از طریق اولین بار می رود عنصر به آخرین عنصر، به آخرین عنصر اضافه شده است. اگر شما اضافه کردن عناصر بعد از آن، آنها را شود accessed-- عناصر برای اولین بار می به عنوان اولین دیده عناصر آرایه، و پس از آن شما می خواهم از طریق هر یک به عناصر به عنوان نوعی از ordered-- منظم نیست، اما راهی که آنها را به آرایه قرار داده شده است. مخاطبان: عناصر جدید بعدها اضافه شده است؟ بنابراین آنها added-- آنها خواهید بود آنهایی که در گذشته [؟ تکرار. ؟] MARIA ZLATKOVA: عناصر جدید can-- اساسا، هنگامی که عناصر جدید اضافه می شوند، آنها به انتهای آرایه اضافه شده است؟ مخاطبان: آره. MARIA ZLATKOVA: به اعتقاد من است. بله. و سپس با حلقه foreach خود را، پس عناصر جدید شما اضافه شده است و شما از طریق آنها، عناصر جدید accessed-- این عنصر جدید را داشته باشد، اگر آن را اضافه گذشته، این امر می تواند آخرین قابل دسترسی است. مخاطبان: آیا می توانید فقط یک مثال بزنم از چیزی که [نامفهوم] با چیزی با ارزش مانند [نامفهوم] و یا ارزش، دوست دارم که چگونه شما می خواهم فرمت است که؟ MARIA ZLATKOVA: حتما. آیا من می توانم یک نمونه از آنچه ما را با ارزش را انجام دهید؟ بنابراین آنچه که شما بچه ها ممکن است با آن آشنا این است که ما از طریق مجموعه ای رفته و اساسا چاپ هر یک از عناصر، برای مثال، به عنوان بخشی از لیست و یا چیزی است که دستور داد. آیا این را حس یا می خواهیم to-- مخاطبان: آیا ما می توانیم این ارزش ها را چاپ کنید؟ MARIA ZLATKOVA: آره، ما می تواند چاپ و سپس اساسا ارزش $ چرا که در که مقدار خاص، ما را چاپ ارزش داخل آن است. بنابراین اگر ما در اولین تکرار ما بودند از آن و ما چاپ $ ارزش، ما را چاپ نوار. رسید نیز برای وجود دارد حلقه ها در PHP و یا فقط حلقه حلقه foreach؟ MARIA ZLATKOVA: وجود دارد همچنین برای حلقه ها در PHP. و منطق خود است عمدتا همان چیزی است که شما شده است استفاده می شود. مخاطبان: بنابراین ارزش خود را تهی است. MARIA ZLATKOVA: مثل همان است. آره. مخاطبان: من فقط رفتن به بپرسید. بنابراین، هنگامی که شما یک اعلام آرایه، شما لازم نیست به چه اندازه آن را به باشد، که بدان معنی است که شما فقط می توانید اضافه کردن و به دور عناصر [نامفهوم]. MARIA ZLATKOVA: آره. آره. دقیقا. هنگامی که ما اعلام یک آرایه، ما لازم نیست به چه اندازه است، بنابراین ما فقط می توانید اضافه کردن عناصر بر روی آن بعد است. سوالات بیشتر؟ بنابراین آوردن PHP و HTML با هم، چه ما به خوبی دیده می شود، برای مثال، در این مثال، ما یک فرم HTML است که دارای یک فیلد ورودی. و میدان ورودی نام تنها است و سپس آن را دارای یک دکمه ارسال. و هنگامی که شما فشار ارسال را فشار دهید، در فایل hello.php ما، از آنجا که روش برای فرم است ، ما می توانید دسترسی به آنچه در نام توسط این متغیر جهانی که is-- نحو برای آن $ _GET است. و پس از آن ما می توانیم هر دسترسی ورودی کاربر در داخل آن شکل برای نام با مشخص کردن نام از این میدان. هر گونه سوال و یا هر سوال در مورد این مثال خاص؟ مخاطبان: پی اچ پی کجاست؟ MARIA ZLATKOVA: در اینجا. بنابراین این تگ باز ما را برای PHP است. مخاطبان: اوه، درست است. MARIA ZLATKOVA: بله. هانا بلومبرگ: این = مختصر است برای این پی اچ پی و اکو است. مخاطبان: اوه. MARIA ZLATKOVA: آره، ببخشید. من باید که روشن ساخته شده است. هانا بلومبرگ: چاپ. MARIA ZLATKOVA: این فقط تابع که به ما اجازه چاپ چیزی. درخواست بزرگ است. بنابراین going-- بله. مخاطبان: وجود دارد رفتن به کاملا شود یک بیت از برنامه نویسی دست PHP و HTML در مسابقه 1؟ MARIA ZLATKOVA: می تواند یک وجود دارد مقدار عادلانه از تفسیر از PHP و HTML، نه لزوما مانند مقدار زیادی از برنامه نویسی، هر چند شما ممکن است به ارسال حلقه foreach، هر چند، یک حلقه for. هر یک از حلقه که ما پوشش اینجا بازی منصفانه است. و آن را بیشتر. هانا بلومبرگ: من آماده می شود. در راه همان است که ما شما را به خواسته ارسال یک دسته از توابع C در امتحان 0، من خواهد بود آماده به کار یکسانی در PHP و جاوا اسکریپت. MARIA ZLATKOVA: آره. هانا بلومبرگ: به نظر من little-- مانند ما نیست رفتن به شما ارسال نامه HTML بزرگ صفحه فقط به خاطر اینکه که کمی است خسته کننده، اما شما ممکن است قطعات را داشته باشد. که بازی کاملا منصفانه است. مانند صفحه HTML کوچک، کاملا منصفانه است. رسید OK. چگونه در مورد در جاوا اسکریپت و همچنین؟ هانا بلومبرگ: آره. بازی منصفانه جاوا اسکریپت است. MARIA ZLATKOVA: آره. این بازی کاملا عادلانه است. هانا بلومبرگ: ما را دریافت کنید که در دقیقه 10 مانند. MARIA ZLATKOVA: SQL، دوباره، زبان پرس و جو ساخت یافته. این اساسا ما اجازه می دهد برای مدیریت داده ها در مدیریت پایگاه داده رابطه سیستم. که فقط اساسا به معنی که ما جایی برای ذخیره برخی از داده ها که ما ممکن است بخواهید استفاده در وب سایت و یا در بعضی از فرم های دیگر است. و بعد ما نمایش داده شد به اطلاعات از پایگاه داده، یا برای وارد کردن اطلاعات در آنها است. بسیاری از آنهایی که مشترک UPDATE، INSERT، انتخاب، و حذف کنید. بنابراین برای به روز رسانی، این نحو است برای به روز رسانی داده ها در پایگاه داده است. به روز رسانی این جدول به نام جدول با گفتن SET، ما می توانیم برخی ارزش ها در تمام مجموعه ردیف به چیزی برابر دیگری. بنابراین ما نیز می توانید برخی از خاص را مشخص کنید نوشته های است که ما می خواهیم برای تغییر و است که می تواند با استفاده از WHERE. و ما می توانید مشخص کنید که ما فقط می خواهید تغییر برخی از ردیف که در آن خانه برای، اگر ما یک جدول از دانش آموزان و همه دانش آموزان خانه داشت، بنابراین ما فقط تغییر برخی از ارزش که در آن خانه برابر Currier را، برای مثال. برای INSERT، ما می توانید وارد برخی از ارزش ها به یک جدول. بنابراین به جدول قرار دادن، و پس از آن ارزش ها، و سپس در پرانتز، ما را مشخص که ارزش شما به قرار دادن. بنابراین به جدول، col1 INSERT و col2، ارزش val1 و val2 است. بنابراین این اساسا درج یک ردیف جدید به یک جدول حاوی ارزش های 1 و 2 تحت ستون 1 و 2. و پس از آن ما قصد داریم تا بیش از یک مثال سریع از این به نظر می رسد مانند در بانک اطلاعاتی ما یک کمی. اما این پرسش نهایی که من فکر می کنم ما در حال رفتن به رفتن بیش از، انتخاب کنید، آن فقط به ما اجازه می دهد تا برای انتخاب داده ها از یک جدول احتمالا پس از آن استفاده کنید. و راه ما این کار ما است فقط آن را در برخی از متغیر ذخیره کنید. و پس از آن ما می توانیم احتمالا آن را دوباره استفاده کنید. بنابراین ستاره SELECT معنی انتخاب همه. که فقط یک مختصر برای انتخاب همه. از جدول که در آن، ما به دنبال برای برخی از شرایط خاص، طوری که در آن ستون برابر چیزی، به عنوان مثال. اگر ما فقط می خواستم از جدول انتخاب همه، این فقط انتخاب همه ستون ها و تمام ردیف از یک جدول. و سپس حذف از جدول مکانی که در آن ستون برابر است با چیزی، این فقط حذف برخی سطر از جدول ما که در آن ما باید برخی از شرایط خاص. در این مورد، شرایط ستون برابر است با چیزی. پس فقط یک مثال سریع از این. اگر ما این جدول سمت راست در اینجا و ما آن را وارد یک جدول، این ارزش ها، که یک ردیف جدید را وارد کنید. و اگر ما افزایش خودکار حال، این امر فقط افزایش ID ما را از 0 به 1 تا 2. اگر ما همه از دانش آموزان انتخاب آن، فقط تمام زمینه ها و تمام ردیف می گرداند. که در آن سال بیشتر است از یا برابر با سال 2016، که فقط بازگشت هانا و خودم. و پس از آن اگر ما فقط انتخاب شناسه سال جاری و سال از دانش آموزان که در آن خانه کابوت خانه است، که می، دوباره، بازگشت هانا و خودم. سپس اگر ما از دانش آموزان حذف که در آن نام به راب برابر است، که کل ردیف را حذف کنید. و سپس اگر ما مجموعه ای از نام و نام خانوادگی، دانش آموزان UPDATE نام مجموعه برابر است با Daven که در آن خانه برابر است کابوت خانه، که برای رفتن به آن ردیف و سپس نام به روز رسانی. و پس از آن چند نوع داده SQL هستند CHAR، VARCHAR، INT، و شناور. این بازی منصفانه است. من بیش از دوباره و مطمئن شوید که شما می دانید و آنها را در بازی ورق خود را، چه هر یک از کسانی که شخصیت برای استفاده شده است، چه شما آنها را در psets شما استفاده می شود، و مطمئن شوید که شما آشنا و با داشتن را انتخاب کنید از انواع داده های مختلف در pset خود را. بله. رسید چه که جدول ذخیره شده بود؟ آره، که در آن است این جدول ذخیره می شود؟ MARIA ZLATKOVA: خوب، در حال حاضر، آن را ذخیره نمی شود. به هر حال، که در آن است این جدول ذخیره می شود؟ اما می توان آن را در یک پایگاه داده SQL ذخیره می شود. رسید و که در آن پایگاه داده SQL است؟ در کامپیوتر، آنلاین در جایی، سرور؟ MARIA ZLATKOVA: این می تواند یک تعداد چیز متفاوت است. هانا بلومبرگ: ما با واسط ام جداول SQL عمدتا با phpMyAdmin به. بنابراین ما می تواند یک سرور بپرسید به آنها را ذخیره برای ما. ما می توانیم آنها را در کامپیوتر خود ما را ذخیره کنید. MARIA ZLATKOVA: این فقط بستگی دارد چگونه می خواهید به آن را برای خودتان. اما ما ذخیره شده است آنها، به عنوان هانا اشاره شد، در از phpMyAdmin، که آنلاین. و پس از آن راه استفاده می کنیم PHP و SQL، ما آن را ذخیره به برخی از متغیر آنچه که ما برای تردید است. بنابراین اگر ما همه را انتخاب کنید از تاریخ که در آن USER_ID برابر ID جلسه، که تمام ردیف را انتخاب کنید برای فرد خاص که در از تاریخ به سیستم وارد جدول و مرتب کردن آنها را به ردیف. نکته جالب این است که بدانیم است که تابع پرس و جو CS50 را محافظت در برابر دستورات تزریق SQL. که فقط بدان معناست که اطمینان حاصل می کند ورودی است که وارد کرده اید درست است و کسی که در حال ورود به ورودی در تلاش است تا ورودی برخی از مخرب کد را به هم رها کردن جدول ما و یا حذف همه چیز داخل بانک اطلاعاتی ما. مروری سریع از مدل مدل نمایش کنترل، این فقط یک راه برای سازماندهی است و فکر کردن در مورد کد. آن را دوباره، یک الگوی طراحی است. که ما این بدان معناست can-- و این تمرین خوبی است برای جدا کردن بخش های مختلف کد ما و آنچه را که کنترل را به این سه نمونه. بنابراین نظر ما این است که اغلب ما قالب، طرح ما، راه که ما مجموعه ای که چگونه کد ما به نظر می رسد. که عمدتا فایل های CSS و راه که ما طراحی از کد ما تعریف شده است، اساسا. کنترل ما عمدتا آنچه که ما شده ایم با فایل های پی اچ پی انجام می دهند. پس دوباره، کار با اطلاعات که ما و تعریف که اطلاعات استفاده شده است، و سپس با عبور از آن اطلاعات هم بر روی این دیدگاه و یا مدل. و مدل، راهی است که ما را شده است با استفاده است شده است بانک اطلاعاتی ما، طوری که در آن اطلاعات ما ذخیره شده پس از آن تا جایی برای زندگی، و هر یک از کد که مربوط به راه که ما که اطلاعات یا راه است که ما که این اطلاعات را به روز رسانی. بنابراین در مدل MVC، HTTP درخواست ها به یک وب سرور ارسال می شود. پس از آن، تفسیر کنترل درخواست از کاربران و سپس تایید ورودی کاربر است. آن را اختیاری که ما کنترل ارتباط برقرار با یک مدل، بنابراین چیزی مانند پایگاه داده ما و یا برخی از قابلیت های دیگر که اطلاعات رله. و سپس در نهایت، کنترل عبور اطلاعات بر روی این دیدگاه به طوری که می توان آن را ارائه و که می تواند به هر شخص قابل مشاهده است دسترسی به صفحه وب. هر گونه سؤال؟ عالی. پس دوباره، مدل، عملکرد آن، دوباره، ذخیره سازی مداوم از اطلاعات است، مدیریت و سازماندهی داده ها. و آنچه دیده ایم تا دور پایگاه داده MySQL است و هر فایل داده که ممکن است استفاده کنید. نمایش، ارائه اطلاعات به کاربر، UI، و یا رابط کاربر. و نمونه ای از این HTML است. و پس از آن ما ممکن است حداقل PHP را داشته باشد. بنابراین یک حلقه for می کند که بیش از داده است که به چاپ کردن بخشی از نمایش است، به عنوان مخالفت به کنترل. و پس از آن بسیاری از فایل های پی اچ پی ما سقوط به دسته کنترل. این فقط دسته درخواست کاربر و اطلاعات را از مدل. پریدن به داخل سند مدل شی، این فقط اشاره به راه HTML اسناد سازمان یافته هستند. و آنها را به یک درخت سازمان ساختار است که یک سلسله مراتب. بنابراین اگر ما به اینترنت دسترسی دارند [نامفهوم] نمایندگی از سند، ما می توانیم با سند کار می کنند، مانند ما دستکاری اشیاء اساسا. و به این کمی واضح تر، هنگامی که ما یک مقدار زیادی از ما برچسب ها مختلف پاسخ به مسیرهای مختلف در درخت. و سپس برای این مثال، ما اند گره سند شروع. ما، پس از آن، گره HTML ما که تقسیم به سر و بدن. سر تا عنوان و سپس عنوان شامل سلام جهان. و بدن ما فقط شامل سلام جهان است. بنابراین هر گونه سوال در هر یک از چیزهایی که ما تحت پوشش تا کنون؟ و اگر نه، هانا خواهد شد بیش از با جاوا اسکریپت. عالی. هانا بلومبرگ: OK، سرد است. اگر هر چیزی می آید تا با HTML و PHP، یا هر یک از مسائل ماریا تحت پوشش، ما همیشه می توانید مکث. ما در حال انجام بهتر در زمان دوباره، به طوری که بسیار جذاب است. و فقط برای رفتن به عقب واقعا به سرعت به این، اگر شما در هر نگاه آزمون سال گذشته، این می آید تا either-- در اینجا این است برخی از HTML، را در این نمودار. و یا اینجا این نمودار، برخی را HTML، پس قطعا تمرین است که. و پس از آن که یک تضمین درخواست که شما می توانید دریافت کنید. خنک. بنابراین اجازه دهید در مورد جاوا اسکریپت صحبت و چگونه آن را را کمی از زبان هایی مانند PHP و C، دو زبان ما از قبل دیدم. بنابراین شماره یک، آن را از نوع بی قاعده. است که مانند PHP، اما بر خلاف C. این یک زبان تفسیر شده است. باز هم، که مانند PHP بر خلاف C. و این در حال رفتن به ما اجازه می دهد به آن use-- کار می کند واقعا به خوبی با صفحات وب است. آن را به ما اجازه می دهد به دستکاری محتوا و چگونه آن را به نظر می رسد و آنچه در آن است. ما در حال رفتن به یک کمی از آژاکس. این اجازه می دهد ما برای برقراری ارتباط ناهمگام با سرور های مختلف و دریافت اطلاعات. و این چیزی است که واقعا جاوا اسکریپت PHP و C از هم جدا این است که آن سمت سرویس گیرنده است. PHP و C هستند معمولا در سمت سرور. در بیشتر قسمت ها و تقریبا به طور کامل چه ما دیده ایم، حداقل در این کلاس، جاوا اسکریپت عمل می کند در سمت سرویس گیرنده، که به معنی که مرورگر است که در واقع مسئول اجرای آن. و این بدان معناست که ما نمی نیاز به تعامل با سرور. پس به این معنی می توان آن را خیلی سریع تر دلیل آن در واقع فقط آن کروم، آن را سافاری، آن را فایرفاکس، هر آنچه شما استفاده واقع اجرای جاوا اسکریپت خود را. مخاطبان: چه معنی ناهمزمان؟ هانا بلومبرگ: آه، چه ناهمگام کند چیست؟ درخواست بزرگ است. ناهمگام means-- خوب، که در آن محتوای ما با استفاده از آن است، خوب، ما در حال ایجاد یک صفحه وب و ما نیاز به آوردن برخی از اطلاعات. بنابراین با نمونه ای از ترکیب، برخی از اطلاعاتی که ما ممکن است بخواهید عنوان مقاله است. در حال حاضر ما یک گزینه could-- است که آن را همزمان و این بدان معناست اجازه متوقف، به دریافت این مقاله، دریافت مقاله تماس، و پس از ارائه، اما این امر می تواند واقعا آهسته است. که می تواند یک تجربه کاربر بد چرا که شما فقط می نشستن انتظار برای چیزی واکنش نشان دهند. ناهمگام بدان معناست که ما ادامه مورد کسب و کار ما، صفحه ترجمه، و ما ارسال یک درخواست این نوع از رفتن به اتفاق می افتد در پس زمینه. من فکر می کنم ما با استفاده از به عنوان مثال در سخنرانی خواستار راب و گفت: با سلام، می تواند به شما این نگاه کردن برای من و به عقب بر گردیم به من، به عنوان مخالف فقط به من انتظار بر روی گوشی. بنابراین غیر همزمان به معنی آن اتفاق می افتد در پس زمینه از ما دور به موازات. درخواست بزرگ است. هر چیز دیگری؟ عالی. ما خیلی بیشتر پرش به درخواست ناهمزمان با آژاکس. مخاطبان: آیا JavaScript-- که در آن می کند آن را با مدل نمایش کنترل قرار می گیرند؟ هانا بلومبرگ: سوال بسیار خوبی. از کجا سقوط جاوا اسکریپت با استفاده از مدل نمایش کنترل؟ HM. من حدس می زنم آن را می توانید fall-- بنابراین ما معمولا نمی می خواهم به آن له به آن پارادایم، اما من حدس می زنم من می گفت، خوب، پس جاوا اسکریپت در واقع است که اجازه می دهد تا ما به جمع آوری داده ها، تفسیر داده ها، در واقع انجام همه چیز معنی دار با داده ها. در این راه، آن را بسیار کنترل مانند است. اما آن را نیز به ما اجازه می دهد به نمایش همه چیز و همه چیز چاپ. در این راه، آن را بسیار نظر مانند است. آره. پس از آن این نوع مانند PHP در که در آن به نوعی می تواند هر دو باشد. سوال خوبی بود. هر چیز دیگری؟ همه حق است، بسیار جذاب است. در حال حرکت حق همراه است. بنابراین اجازه دهید یک مثال را ببینید از ما چگونه می توانید استفاده کنید جاوا اسکریپت در یکی از برنامه وب سایت ما. بنابراین من این نظر index.html را با یک دسته از HTML. و چیزی که من می خواهید تمرکز بر روی این برچسب اسکریپت است. و این می گوید، OK، من می خواهم به اجرای برخی از جاوا اسکریپت و در اینجا این است که در آن زندگی می کند. آن را در hello.js زندگی می کند. و خیلی دوست دارم CSS، ما می تواند جاوا اسکریپت در HTML قرار. چرا ممکن است ما می خواهیم آن جدا کردن؟ آره. رسید راحت تر به بازنویسی؟ هانا بلومبرگ: آره. آن را آسان تر به استفاده از در سراسر صفحات وب مختلف. این چیز پاک نگه می دارد. این فقط عمل خوب است. عالی. جواب خوبی بود. خیلی خوب، پس این است که رفتن به index.html را ما است. و سپس در اینجا ما است کوچک فایل کمی جاوا اسکریپت. و همه آن را می گوید هشدار جهان است سلام،. بنابراین چه اتفاقی می افتد وقتی است که این صفحه renders-- بنابراین اگر شما به هر آنچه که وب سایت بروید این is-- که اتفاق خواهد افتاد است آن را به می گویند، خوب، من رفتن به اجرای این کد جاوا اسکریپت. و این کد جاوا اسکریپت فقط می گوید: هشدار سلام جهان. بنابراین من قصد دارم برای دریافت این دوستانه کمی پاپ آپ. خنک؟ که این نوع مانند ما اولین جاوا اسکریپت برنامه، خوش آمدید ما، جهان است. بیایید نگاه کمی بیشتر در مورد چه نحو جاوا اسکریپت به نظر می رسد. و به طور خاص، اجازه دهید آن را به مقایسه C و PHP، که ما قبل از دیده می شود. در جاوا اسکریپت، ما در حال رفتن به VAR، نام متغیر، و پس از آن ارزش واقعی آن است. و ما یک نوع مشخص نیست، فقط مانند PHP، اما بسیار بر خلاف C. بنابراین برای مثال، اگر ما می خواستیم برای ذخیره ارزش 50، در C، ما را به گفتن، با سلام، C، من می خواهم یک عدد صحیح، من قصد دارم به آن پاسخ من، و ارزش آن 50 است. در پی اچ پی، آن را کمی آسان تر است. ما می گویند، با سلام، من می خواهم یک متغیر به نام من و مقدار آن 50 است. بسیار مشابه، در جاوا اسکریپت، ما می گویند هی، من می خواهم یک متغیر به نام من، ارزش خود را 50 است. هر زمان پس از آن که من استفاده من، من لازم نیست به ارسال VAR. این فقط من از آن نقطه. در همان حال، در C، که در آن زمانی که ما اعضای هیات من می گویند، ما فقط من استفاده کنید. خنک؟ خیلی خوب. در حال حرکت به حلقه، خوشبختانه، این تقریبا نگاه exactly-- من فکر می کنم آنها دقیقا همان چیزی است که حلقه در حال رفتن به مانند نگاه چیزی شبیه به C که در آن خود را برای حلقه در حال رفتن به سه parts-- مقدار دهی اولیه، وضعیت، و به روز رسانی. یک حلقه در حالی که به نظر می رسد همان دقیق. ما فقط آن را یک بیماری است. و یک در حالی که حلقه، دوباره، دقیقا همان است. ما آن را یک بیماری است. بیایید می گویند من می خواستم به تکرار over-- من می خواستم برای انجام کاری پنج بار. در C، ما ممکن است ارسال برای init انجام من برابر با 0. من کمتر از 5 است، من + +. تنها تفاوت، در جاوا اسکریپت، به جای گفتن INT من برابر با 0، ما می گویند VAR من برابر با 0. خوشگل. این تنها تفاوت است. هر گونه سوال در هر یک از این؟ بله. مخاطبان: بنابراین در پی اچ پی، آن را همان چیزی، به جز اما مانند یک متغیر؟ و یا این بود که یک مثال var؟ هانا بلومبرگ: آره. بنابراین در پی اچ پی، آن را به یک علامت دلار. بنابراین آن را به من برابر با $ 0، $ من کمتر از 5 باشد، $ من + +. درخواست بزرگ است. حالا اجازه دهید بحث در مورد اظهارات تابع. در C، زمانی که ما اعلام کرد تابع، ما به آن نام و ما آن را برخی از پارامترهای داد. و در آغاز، ما نوع نوشت. در جاوا اسکریپت، همه ما مجبور به انجام آن ارسال تابع کلمه کلیدی که می گوید، هی، جاوا اسکریپت، من در مورد به تعریف یک تابع است. در این مورد، آن را تا نام مجموع. و آن دو استدلال، x و y طول می کشد. توجه داشته باشید که ما اهمیتی نمی در مورد انواع x و y. و درست مثل C، ما باید این بازگشت کلمات کلیدی، بنابراین ما می توانیم چیزی را انجام دهید مانند بازگشت x و y. و در حال حاضر زمانی که ما اولین بار از این نوشته ام تابع، ما می توانیم در هر نقطه جمع استفاده کنید. و این کاملا خوب است. یک چیز واقعا جالب در مورد جاوا اسکریپت است که بسیار بر خلاف C که توابع را می شود مانند ارزش درمان می شود. بنابراین ما می توانیم چیزی شبیه به اینجا انجام جایی که من گمان می کنم این پوشش up-- من تحت پوشش تا VAR مجموع part-- و ما فقط گفت عملکرد XY برابر بازگشت به علاوه Y X. این چیزی است که می شود به نام یک تابع بی نام. این یک تابع بدون نام است. در حالی که این تابع می گوید مجموع، اه، اه، اه، این فقط می گویند تابع. اما در حال حاضر حتی اگر من این تابع ناشناس، که تابع است که واقعا فقط یک مقدار است. ما می توانیم آن را مانند یک ارزش را درمان کنند. بنابراین ما می توانیم آن را در یک متغیر ذخیره کنید همان راه ما می تواند 50 در یک متغیر ذخیره کنید. بنابراین می توان گفت، OK، من می خواهم یک متغیر، آن را به نام مجموع، و آن این تابع است. لذا این دو چیز در واقع رفتن به انجام همان چیزی دقیق، اما نحو کمی است مختلف و نوع توجه داشته باشید سرگرم کننده است. آره. رسید بنابراین شما می تواند یک تابع است که با گفتن ناشناس بود، براکت مجموع 2، 5؟ هانا بلومبرگ: آره. شما می توانید این ناشناس پاسخ تابع در به همان شیوه. شما می مجموع انجام (2، 5)؛ این امر می تواند کاملا خوب است. اگر این کار را نکردم VAR مجموع برابر تابع، اگر من فقط حذف this-- من می دانم که آن را در دست من است، اما وانمود من this-- حذف و سپس که تابع نوع فقط رفته است. شما هرگز نمی توانید آن را بار دیگر به دلیل استفاده از شما یک نام برای آن ندارد. این سخت است برای اشاره به چیزی شما نمی دانید که چه به تماس. سوال خوبی بود. آره. رسید می توانید خلاصه شما مرجع در جاهای دیگر با مقدار x به علاوه Y؟ هانا بلومبرگ: شما می توانید مجموع مرجع در جاهای دیگر با X مقدار به اضافه Y؟ من کاملا مطمئن منظور شما چیست نیست. مخاطبان: بنابراین گذشته خود را نیمه ناشناس تابع است مجموع برای این برابر است با تابع بی نام، به طوری که جمع شده است در حال حاضر یک متغیر است که شما can-- هانا بلومبرگ: درست است. بنابراین مجموع متغیر است، اما آن را actually-- بنابراین مجموع یک متغیر است که است ارزش تابع است. پس از آن یک تابع است که نوع است یک چیز عجیب و غریب برای بسته بندی کردن سر خود را در اطراف از آنجایی که ما با بازی C و شما نمی توانید انجام دهید که در C. اما در حال حاضر ما می توانید تماس بگیرید جمع همان روشی که ما می تواند مبلغ اینجا تماس بگیرید. رسید OK. هانا بلومبرگ: آره. سوال خوبی بود. آره. مخاطبان: بنابراین ما استفاده نمی نمونه های اولیه در PHP یا جاوا اسکریپت؟ هانا بلومبرگ: نه، ما لازم نیست به استفاده از نمونه های اولیه، به خصوص در جاوا اسکریپت. بنابراین یک چیز بد عمل که من رفتن به می گویند که شما باید انجام دهید است که شما لازم نیست برای نوشتن VAR من = 50. شما می توانید فقط شروع به انجام I = 50. و فقط من یک متغیر جهانی است. این عمل بسیار بد است به می گویند هرگز صراحت VAR من، اما آن چیزی که میتوانید انجام دهید. مترجم نیست رفتن به فریاد زدن در شما. جاوا اسکریپت بسیار شبیه است، شما می توانید آنچه شما می خواهید. آه ببخشید. این دو وجود دارد. در شلوار نارنجی. برو جلو. مخاطبان: نه، شما برای اولین بار. مخاطبان: نه، من فقط می گفت من دست به من ندارد. باشه. بنابراین اگر شما به پاسخ که اولین بار، در حال حاضر خلاصه، ما آن را به همان شیوه پاسخ، X، Y، مانند هر زمان تنها؟ هانا بلومبرگ: آره. بنابراین این دو اساسا همین کار را. رسید و چه مزیت است استفاده از یکی یا دیگری؟ هانا بلومبرگ: هیچ مزیت استفاده از یکی یا دیگری. من فقط می خواستم به شما نشان می دهد دو تکه های مختلف از نحو. بسیاری از اوقات که در آن ناشناس توابع انجام یک هدف است اگر بحث را به دیگری تابع باید یک تابع باشد. و خواهیم دید که در فقط یک ثانیه با آژاکس. بنابراین در صورتی که به هیچ وجه احساس را ندارد، ذخیره آن را در پشت سر خود را. این که در آن ناشناس تابع ممکن است مفید باشد چرا که آن را واقعا ارزش به آن نام از ما فقط در حال قصد استفاده از آن یک بار. آره. مخاطبان: اگر x و y را تغییر دهید در، مبلغ به تغییر به عنوان؟ هانا بلومبرگ: اگر x و y را تغییر بعد از آن، مبلغ به تغییر به عنوان؟ پس این است که در واقع من فکر می کنم چیزی که، دوباره، آن را فقط احساس می کند بسیار متفاوت از C. این یک ارزش است. این 5 است. این فقط خود تابع است. بنابراین به محض اینکه شما آن را پارامترها، پس از آن واقع شما می خواهید یک مقدار را محاسبه کند. MARIA ZLATKOVA: و پس از آن شما می توانید تابع پاسخ و استفاده از آن برای به دست آوردن ارزش باشد. هانا بلومبرگ: درست است. دقیقا. آره. رسید بنابراین اگر شما فقط ذخیره آن را در متغیر، مانند VAR x برابر مجموع دو values-- هانا بلومبرگ: آره. بنابراین شما فقط می تواند انجام VAR مجموع برابر مجموع دو مقدار است. آره. هر سوال دیگری؟ آره. رسید اما که مبلغ و در مجموع اشتباه؟ مانند اگر شما مبلغ متغیر خود تماس بگیرید، می مجموع تابع با شما تماس؟ هانا بلومبرگ: MM. میلی متر. اگر شما چیزی مانند، مجموع برابر مجموع 2، 5؟ مخاطبان: آره. هانا بلومبرگ: من معتقدم که به ارزش مجموع بازنویسی. بنابراین یکی دیگر از جالب چیز در مورد جاوا اسکریپت این است که یک متغیر تنها می تواند به در یک دسته از انواع مختلف. عمل بد. شما باید چیزی نیست مانند آنچه که شما فقط می گفت. اما در C، اگر من قرار است به یک عدد صحیح برابر، ما می دانیم که آن را هرگز رفتن به تبدیل شدن به یک رشته است. این مورد در جاوا اسکریپت است. آره، سوال خوب است. هر چیز دیگری؟ خیلی خوب. انجام همه درست در زمان. نگه داشتن رفتن. خیلی خوب. اگر ما در یک آرایه نگاه در جاوا اسکریپت، در اینجا یک مثال سریع از آرایه ای از رشته. و آرایه ها به صورت پویا می تواند رشد کند. آنها یک ندارد اندازه ثابت به همان شیوه که آنها در C. انجام ما می توانید دسترسی به عناصر تنها با براکت مربع است. که به نظر می رسد بسیاری مانند PHP و بسیاری مانند C، که در آن می توان گفت، در این مورد، اگر من می خواستم کلمه جاوا اسکریپت، من می خواهم انجام ARR براکت با 0، 1، 2. و پس از آن اگر شما در C به یاد داشته باشید هنگامی که ما می خواستم به طول یک آرایه، آن را واقعا آزار دهنده بود. اما در جاوا اسکریپت، فوق العاده آسان است. همه ما، .length. آن را می دهد طول. خودشه. رسید که ساده است. هانا بلومبرگ: بله، باعث می شود زندگی شما را بسیار آسان تر است. OK، object-- وجود ندارد. اشیاء در احساس جاوا اسکریپت بسیاری مانند ساختمانها در C و آرایه های انجمنی در PHP. بنابراین آنچه که ما را دیده ام بسیاری از JSON است که مخفف JavaScript Object Notation انجام. و آن را اساسا یک راه از ساختار داده های ما. بنابراین اجازه دهید یک مثال را مشاهده کنید، احتمالا ساده ترین. بنابراین در اینجا یک مثال از یک شی که در فروشگاه کلاس، CS50. و وقتی که من می گویند کلاس، منظور من البته، like-- نمی آره، البته، CS50. و شما خواهید دید که همه چیز را در شی در حال رفتن به مهار شود در آکولاد. و ما شروع به معاشرت نام فیلد و یا کلید های با مقادیر مختلف. بنابراین شما می توانید شروع به دیدن چگونه این نوع از احساس می کند مانند یک آرایه انجمنی در PHP. بنابراین ما قصد داریم به معاشرت این زمینه و یا نام کلید، البته، با رشته، CS50. ما در حال رفتن به یک مربی. ما در حال رفتن به TFS. ما در حال رفتن به تعدادی از psets و ما قصد داریم به ثبت کرده اند. و یک چیز سرد به توجه داشته باشید همه است این چیزها انواع مختلف، و این کاملا خوب است. این خوب است برای یک شی، در واقع، آن را احتمالا برای یک شی انتظار می رود به ترکیبی از رشته و اعداد و booleans و آرایه و هر چیز دیگری که شما ممکن است می خواهم به داخل جسم خود را داشته باشد. و توجه داشته باشید که این در حال رفتن به نام و یا از کلید، و سپس ما فقط تنظیم آن را با روده بزرگ کمی برابر است. مخاطبان: دقیقا چه معنی JSON؟ هانا بلومبرگ: چه دقیقا به این معنا JSON؟ JSON فقط برای غرفه JavaScript Object Notation انجام. این فقط یک راه قالب بندی است. آره. این یک راه قالب بندی داده های ما است. در C، آن را ساختمانها. در پی اچ پی، آن را آرایه های انجمنی. در جاوا اسکریپت، ما باید اشیاء. مخاطبان: بنابراین CS50 یک شی؟ هانا بلومبرگ: CS50 است شی در این مورد. در حال حاضر، چگونه ما در واقع دسترسی این زمینه ها و یا تغییر این زمینه. برای مثال، فرض ما تصمیم گرفت که شما می خواستم یکی کمتر pset این ترم. به جای نه، ما فقط رفتن به هشت. چگونه تغییر خواهد کرد که ما؟ اوه، راه اشتباه است. دو راه که ما می توانیم این کار را انجام وجود دارد. شماره یک است با نقطه نماد و عدد دو با علامت کروشه مربع است. بنابراین، برای مثال، اگر من برای تغییر و یا دسترسی می خواستم زمینه psets در جسم CS50 ما، آنچه من می خواهم انجام CS50.psets است، پس به نام نقطه شی نام این زمینه و یا کلید. بسیار مشابه، آن را دقیقا معادل به انجام CS50، و پس از آن در پرانتز مربع، psets. خنک؟ آره. مخاطبان: بنابراین JSON است از لحاظ فنی جاوا اسکریپت هنوز هم، حتی اگر در psets ما آن جدا کردن [نامفهوم]؟ هانا بلومبرگ: حتما. بنابراین سوال این است، جاوا اسکریپت و JSON معادل؟ بنابراین JSON نماد است، اساسا راه است که ما نوشتن یک شی از جاوا اسکریپت. به طوری که آنها همان دقیقا نمی کند. من می خواهم بگویم جاوا اسکریپت، وجود دارد اشیاء در جاوا اسکریپت می باشد. JSON کسانی که اشیاء را می گیرد و آنها را چاپ و نمایش آنها و یا آنها را در یک راه خوب ذخیره می کند. بنابراین JSON است برنامه نویسی زبان راه است که جاوا اسکریپت است. این فقط نماد برای این اشیاء ما در جاوا اسکریپت. آره. مخاطبان: بنابراین آنچه که دقیقا [نامفهوم] کامل است؟ هانا بلومبرگ: حتما. بنابراین این در واقع هیچ کاری نمی کند. این فقط یک راه برای دسترسی به. بنابراین اجازه دهید می گویند که ما می خواست برای تغییر تعدادی از مجموعه های مشکل 9-8. آنچه که ما انجام است انجام کاری مانند CS50.psets = 8؛. آره، سوال بزرگ. این فقط نشان می دهد نحو شما. در واقع انجام هر کاری مفید است. هر گونه سؤال؟ در حال حرکت حق همراه است. بنابراین اجازه دهید یک مثال از نحوه نگاه جاوا اسکریپت کار می کند زیرا من به شما گفته آن می کند تمام این کارهای جالب و اجازه می دهد تا ما را به تغییر صفحات وب است. اجازه دهید در واقع آن را در عمل ببینید. بنابراین، برای مثال، این فایل HTML. و چیزی که من می خواهم شما را به تمرکز بر روی است این برچسب خاص، است که یک دکمه، با این شناسه search_button. فقط بر روی صفحه است. بنابراین در حال حاضر بیایید ببینید که چه ما در واقع می توانید انجام دهید. خب، فرض کنید وقتی شما با کلیک بر آن دکمه، ما می خواهیم را به alert-- شما دکمه کلیک شده است. بیایید ببینید که چگونه ما می توانیم این کار را انجام. بنابراین window.onload-- این چیزی نیست که شما در کلاس دیده می شود، در نتیجه نمی خواهد نیاز به آن را می دانم برای مسابقه. اما این اساسا می گوید، OK، پاسخ این تابع هنگامی که بارهای پنجره. به طوری که فقط نوع کد راه اندازی. نگران نباشید خیلی در مورد آن. چه من می خواهم شما را به تمرکز بر روی در اینجا است. ما می گویند VAR searchButton برابر کد document.getElementById search_button. به طوری که شما ممکن است حدس بزنید، چه می کند این است آن را می گوید، OK، به پیدا کردن عنصر با search_button ID. و در حال حاضر ما که عنصر واقعی و من رفتن به ذخیره آن در یک searchButton متغیر است. و در حال حاضر ما در واقع می توانید استفاده کنید که عنصر و آن را تغییر دهید، یا ارزش های آن دسترسی داشته باشید، چیزهایی مثل آن. ما در واقع می تواند به شروع تعامل با صفحه وب. بنابراین در اینجا من می گویم، خوب، حالا که من آن را آن دکمه، زمانی که آن را کلیک، این تابع ناشناس پاسخ. پس این است که ناشناس توابع مفید است. و چه تابع انجام دهد؟ خوب، آن را فقط به این فرا می خواند تابع هشدار و می گوید، شما دکمه جستجو کلیک. بنابراین چه اتفاقی خواهد افتاد اگر من به هر کجا بروید این HTML زندگی می کند و من دکمه کلیک کنید، من یک هشدار کمی فانتزی دریافت کنید که می گوید شما دکمه کلیک. بنابراین همه چیز را به تمرکز بر روی here-- کد document.getElementById می شود یک HTML خاص عنصر با ID داده شده است. و در حال حاضر ما می توانیم راه وقتی چه اتفاقی می افتد که عنصر خاص کلیک. مخاطبان: ما برای قرار دادن همه که در؟ هانا بلومبرگ: با عرض پوزش. مخاطبان: آیا ما به از لحاظ جسمی کد همه از آن؟ هانا بلومبرگ: آیا ما باید به از لحاظ جسمی کد همه از آن؟ بله. است این نوع از آزار دهنده نیست؟ این تعداد زیادی از کد است. مخاطبان: شما می توانید چیزی وارد کنید. هانا بلومبرگ: درست است. ما می تواند چیزی استفاده کنید. و در particular-- آه، آن را به من گفتن من برای یاد بخش. به طور خاص، اجازه دهید استفاده از کتابخانه جی کوئری، چرا که واقعا بود طولانی و واقعا آزار دهنده است و من می خواهم که قادر به آن را ساده و آن را کوتاه تر و آسان تر به نوشتن. بنابراین jQuery یک کتابخانه جاوا اسکریپت است. بنابراین جاوا اسکریپت برنامه نویسی است زبان؛ jQuery یک کتابخانه است. و آن را می سازد یک دسته از چیزهای ساده تر است. این باعث می شود در حال تغییر و رفتن در سراسر یک سند HTML بسیار ساده تر. این باعث می شود دست زدن به حوادث آسان تر است. این باعث می شود انیمیشن ساده تر و آن را می سازد آژاکس آسان تر است. بنابراین اجازه دهید به دو پرش کسانی که همه چیز در حال حاضر. ببخشید. قبل از اینکه ما را انجام دهید، برخی از نحو اساسی است. این چیزی است که بسیاری از تماس به کتابخانه جی کوئری شبیه. ما با استفاده از این دلار sign-- هیچ نشانه اتصال به پی اچ پی، فقط inconvenient-- نام یک انتخاب، نقطه، و پس از آن عمل است. بنابراین اجازه دهید که برخی نمونه های بتن از آن. بنابراین این در واقع همان است کد اسلاید از رویداد. بنابراین این مدت، چیزی زشت می شود این بسیار بهتر، چیزی کوچکتر است. بنابراین سعی کنید برای شکستن این پایین. این می گوید، OK، jQuery-- این دلار sign-- جی کوئری، پنجره پیدا کردن من. به طوری که انتخاب است. آن بارهای، پاسخ این تابع. طوری که همه چیز در داخل است. باشه. تا کنون خیلی خوب؟ خیلی خوب. در حال حاضر، جی کوئری، من پیدا چیزی که با search_button ID. و آنچه در آن است کلیک، این تابع پاسخ. و سپس این تابع دقیقا مثل هم. فقط یک کمی از هشدار، شما دکمه جستجو کلیک. پس از آن واقعا خوب است. واقعا متراکم می شود و ساده کد ما. چگونه نداشتم که آن search_button ID است و search_button کلاس را دوست ندارد؟ مخاطبان: هشتگ؟ هانا بلومبرگ: آره. این نماد هش، آن را درست مثل CSS. بنابراین به یاد داشته باشید، با CSS، زمانی که ما می خواستم چیزی را انتخاب کنید با ID، ما علامت پوند استفاده می شود. و هنگامی که ما می خواستیم به انتخاب چیزی با کلاس، ما با استفاده از نقطه. عالی. را حس؟ بنابراین جی کوئری است که به قرار فقط زندگی ما را آسان تر است. آره. مخاطبان: بنابراین من کمی گیج هستم به عنوان چگونه تابع ناشناس کار می کند. آیا شما این anonymouse نام تابع، تابع؟ چگونه آن را به نام است؟ هانا بلومبرگ: حتما. بنابراین تابع فقط یک کلمه کلیدی است که می گوید: من در مورد به تعریف یک تابع است. مخاطبان: آه، باشد. هانا بلومبرگ: OK؟ و سپس ما آن را به عنوان یک رمز عبور بحث to-- اجازه دهید این one-- داخلی به تابع را کلیک کنید. پس بله، به طوری که تابع، این تابع ناشناس، استدلال واقعی می گردد. بنابراین در جاوا اسکریپت به یاد داشته باشید، ما می توانید توابع به عنوان مقادیر را درمان کنند. مخاطبان: آه، باشد. هانا بلومبرگ: آره. من دوست دارم که "آه." خوب. سوال دیگر؟ زمان؟ MARIA ZLATKOVA: خوب. خوب است. هانا بلومبرگ: بسیار معروف است. برخی از jQuery سریع مفید است. من قصد ندارم به در تمام طول این. این اسلاید خواهد بود تا آنلاین کمی بعد، بنابراین شما می توانید آن را کمی بعد. اما اساسا، به طور کلی الگوی نگه می دارد که در آن ما می گویند، OK، هی، جی کوئری، در اینجا من انتخاب و پس از آن در اینجا یک عمل است. و شما می توانید چیزهایی مانند دسترسی انجام ارزش یک فرم، دسترسی به برخی از HTML، کنترل آنچه اتفاق می افتد زمانی که کاربر تسلیم فرم، مانند آن. بله. مخاطبان: بنابراین در آزمون، ما نیاز به رفتن به می دانم که بسیاری از کاملا مستندات jQuery. با توجه به این که ما کپی / چسباندن جی کوئری اسناد و مدارک به بازی ورق ما، جایی که خط کشیده شده؟ مانند چگونه بسیاری از ما نیاز به دانستن؟ هانا بلومبرگ: سوال بسیار خوبی. سوال این است که اساسا با توجه به اینکه شما می توانید مستندات jQuery دسترسی پیدا کنید در طول آزمون، چقدر باید به شما دانستن؟ ما انتظار نداریم که شما می آیند تا با برخی از تابع تصادفی که ما شما را به گوگل انتظار می رود. چیزهایی که بازی منصفانه است من می گویند فقط نوع نحو به طور کلی، قادر بودن به توسط ID را انتخاب کنید و توسط class-- بنابراین درست مانند CSS. و سپس توابع واقعی خودش همیشه، ما به احتمال زیاد به شما بگویم. آره. مخاطبان: بنابراین زمانی که شما انتخاب توسط کلاس می نقطه باشد. هانا بلومبرگ: بله، دقیقا. خوب است. زمانی که شما با کلاس را انتخاب کنید، آن را به جای علامت پوند نقطه است. بله. مخاطبان: آیا شما به بیش از تفاوت بین انتخاب های ID و کلاس؟ هانا بلومبرگ: حتما. تفاوت بین انتخاب ID و انتخاب توسط کلاس. بنابراین به عنوان ماریا گفت: کمی پیشتر، وجود دارد تنها می توانید یک عنصر HTML شود با ID داده می شود، در حالی که کلاس، آن را به ما اجازه می دهد تا به گروه یک دسته عناصر مختلف با هم، بنابراین چیزهایی که مرتبط هستند، اما نه دقیقا همان است. آیا این پاسخ به این سوال؟ عالی. بله. رسید چه اگر شما چند چیزهایی که در همان کلاس است؟ هانا بلومبرگ: چه اتفاقی می افتد اگر شما همه چیز های متعدد است که هستند همان کلاس؟ بنابراین، برای مثال، اگر ما فقط با استفاده از خالص جاوا اسکریپت، ما که چیزی شبیه به انجام document.getElementsByClass. و پس از آن چه که در واقع نشانی بازده آرایه ای از عناصر است. و شما باید به هم تکرار بیش از آنها و یا پیدا کردن که شما می خواهید. آن را به دادن شما یک عنصر واحد. آن را به شما بدهد آرایه ای از عناصر. درخواست بزرگ است. هر چیز دیگری؟ عالی. بنابراین من فکر می کنم اگر شما با آن آشنا هستید هر جی کوئری شما را دیدم در pset، شما باید خوب به آن بروید. سوال؟ اوه، نه. من واقعا برای تدریس. آروم باش. آن را خوب می شود. من وجود دارد را دریافت کنید. اجازه دهید در مورد آژاکس صحبت کنید. بنابراین آژاکس است برای رفتن به a-- خوب، اجازه دهید با آنچه از آن می ایستد شروع می شود. این مخفف است. آن را برای آسنکرون می ایستد جاوا اسکریپت و XML. و XML است که اساسا در حال رفتن به [نامفهوم] با یک نوع از داده های ما. اما ما در واقع XML استفاده نمی شود. در عوض، ما فقط استفاده از JSON. بنابراین اساسا، آن را برخی از data-- ناهمزمان، جاوا اسکریپت، و داده ها، در این مورد، JSON. و هدف ما، همچنان که اشاره شد کمی قبل از آن، است که قادر به ایجاد یک درخواست، درخواست کرده اند که انجام چیزی خود را در پس زمینه، اما ادامه انجام هر چه ما قصد داشتند برای انجام. و سپس هنگامی که این اطلاعات می باشد آماده، سپس ما آن را ترکیب کنید. بنابراین اجازه دهید این را ببینید در واقع به نظر می رسد. و این، شما باید کمی آشنا از pset8، فقط یکی از شما در تبدیل شده است. بنابراین در اینجا یک جی کوئری معتبر تابع که ما ممکن است می خواهم به about-- این علامت دلار مطمئن شوید. بنابراین آن را می گوید تابع jQuery، .getJson. و آنچه از این تابع می کند آن است یک URL و برخی از parameters-- طول می کشد بنابراین من فکر می کنم در مورد از pset8، آن را مانند، آدرس URL articles.php بود و پارامترهای رفتن = برخی از کد پستی بود. و آن را می گوید، OK، به یک درخواست به این URL با پارامترهای داده شده است. و این فقط اتفاق می افتد. هنگامی که آن را پس از اتمام، آن را هم رفتن به موفقیت کامل و یا آن را به شکست است. بنابراین این معادل است پاسخ راب و از او بخواهید برای انجام کاری. و پس از آن هنگامی که او می خواند، او هم رفتن به می گویند من انجام می شود و یا من شکست خورده است. بنابراین در مورد که در آن شما انجام می شود، به شما می گویند، OK، من انجام می شود. و سپس شما این تابع پاسخ. در این مورد، آن را به یک تابع طول می کشد که برخی از اطلاعات. یکی از ما معمولا در مورد مراقبت داده است، داده هایی را که ما در واقع بازگردانده شدند به عنوان یک نتیجه از تماس .getJSON. و شما می توانید چیزی را با آن انجام دهید. بنابراین در مورد pset8، ما آن را به عنوان یک لیست نمایش داده شود. شکست است برای رفتن به یک تابع است که به نام اگر درخواست با شکست مواجه به هر دلیلی. و در مورد pset8، ما فقط آن را console.log. هر گونه سوال در آن؟ آره. مخاطبان: آیا ما می توانیم فقط با استفاده از تابع تتا به جای تابع، textStatus، jqHXR. هانا بلومبرگ: حتما. بنابراین من در pset فکر می کنم، ما فقط دیدم تابع داده است. بنابراین آن را فقط the-- بله، خوب. این چیزی است که ما در pset دیدم. این کاملا خوب است. اینها فقط اگر شما می خواهید به جلو کردن اطلاعات بیشتر، این چیزایی هستند که شما می توانید از .getJSON دریافت کنید. سوال خوبی بود. هر چیز دیگری؟ آره. مخاطبان: بنابراین .getJSON آژاکس است؟ هانا بلومبرگ: OK. بنابراین این نوع از بخشی از مشکل است. این یک تابع جی کوئری است که اجازه می دهد تا است شما را به انجام تماس های ناهمزمان. و کسانی که تماس موتورهای آسنکرون، برق که چه ما شده است با اشاره به عنوان آژاکس. آره. که واقعا زمان طولانی من در زمان به از هم جدا زمانی که من یک دانش آموز بود. مخاطبان: می توانید بگویید که دوباره؟ هانا بلومبرگ: آره. می توانم بگویم که دوباره؟ این تابع .getJSON، این یک تابع jQuery است. و آن را به تماس ناهمزمان. و این تماس آسنکرون، ما شده است با اشاره به کسانی که به عنوان آژاکس. هر سوال دیگری؟ ما فقط یک دقیقه چند باقی مانده است. و ماریا رفتن به بسته بندی با امنیت و سپس ما در حال رفتن به توان فقط در مورد انجام شده است. MARIA ZLATKOVA: بسیار معروف، OK. بنابراین این is-- فقط چند را از ثانیه به بیش از این است. و این چیزی واقعا بزرگ است. و کسی که می تواند به من بگو چرا؟ آنچه در جریان است در foo و ممکن است می تواند به طور بالقوه در چیزی بد در نتیجه، و آنچه که به نام؟ آره. مخاطبان: اگر این استدلال که این گذشت در بیش از 12 کاراکتر است، آن می تواند سرریز است. MARIA ZLATKOVA: درست است. کامل. به آن چه گفته می شود؟ شما فقط آن را ذکر شده است. مخاطبان: سرریز بافر. MARIA ZLATKOVA: آره، سرریز بافر. پس این چیزی است که ما به عنوان سرریز بافر مراجعه کنید. و ما می بینیم که در داخل تولی، بافر ما، C تعریف، با اندازه 12. با این حال، در اصلی، ما نمی در همه به هیچ وجه بررسی آیا argv1-- به طوری که آرگومان دوم بود. ما که آیا بررسی نمی اندازه آن مناسب است. بنابراین اگر ما یک حال کاربران ویژه مخرب که در برخی از این استدلال که بود قرار بیش از 12، و سپس به طور بالقوه فراتر از مرزهای که بحث، برخی از کد اجرایی حال که او در تلاش بود برای انجام کاری بد با آن؛ پس از این، چه اتفاقی خواهد افتاد، از بازگشت نادیده گرفتن آدرس تابع تولی، باعث عملکرد به هنگام بازگشت به اجرای این کد. و پس از آن همه چیز بد می تواند رخ دهد. آیا این حس را به همه؟ و چگونه می تواند ما را در برابر این محافظت می کند؟ هر گونه پیشنهاد؟ در واقع، در داخل به طور بالقوه تولی، چگونه می توانید ما را بررسی کنید تا مطمئن شوید که که است که می تواند اتفاق می افتد؟ مخاطبان: اگر به اندازه 12 فراتر رود، شما می حافظه اضافی اختصاص؟ MARIA ZLATKOVA: پیشنهاد این است، اختصاص حافظه اضافی از اندازه بیش از حد. در واقع، ما می توانیم چیزی را انجام بسیار ساده تر از آن نیز هست. ما فقط می توانید طول رشته از استدلال این است که وارد شده، بررسی کنید که که کمتر است از یا برابر با 12-- است که آنچه ما آن را می خواهم به این دلیل که ما نمی خواهیم آن را به بیش از مرزهای بافر ما. و سپس اگر آن را نمی کند، ما می توانید با این استدلال است. و پس از آن اگر آن را، ما در واقع می خواهم به YELLO به طور بالقوه در کاربر. اما این است که چگونه ما را انجام دهد که. بله. رسید می توانید توضیح سریع واقعی memcpy؟ MARIA ZLATKOVA: اوه، ببخشید. بله. Memcpy طول می کشد هر is-- با عرض پوزش، OK. Memcpy طول می کشد آنچه در نوار، هر آنچه که به تصویب می رسد بر روی تولی به عنوان آرگومان خط فرمان. طوری که آن را به argv1. Argv1 است که به نام نوار در اینجا. طوری که آن را به نوار و آن را به کپی آن را به C. رسید OK. MARIA ZLATKOVA: و آن را به copy-- آرگومان سوم فقط اشاره به چه مقدار آن را به کپی کنید به ج. مخاطبان: آه. بنابراین کپی این یکی همه آن را پس از آن. MARIA ZLATKOVA: آره، آن را کپی کردن همه آن را. بله. اول، ما مطمئن شوید که نوار است به تهی برابر این دلیل که یک اشاره گر است. سپس ما طول رشته از نوار است. ما مطمئن شوید که آن را کمتر از یا برابر 12. و سپس به دلیل ایم مطمئن ساخته شده، ما در واقع می توانید memcpy و مطمئن باشید که این خوب است. هر گونه سؤال؟ عالی. من دو سوال درست یا نادرست است. هر کسی می تواند به من بگو حق دور اگر این درست است یا نادرست؟ بله، آن را نادرست است. دقیقا. هر دو آنها نادرست است. بنابراین با استفاده از یک رمز عبور ایده واقعا خوب است هرگز چرا که اگر کسی می داند رمز عبور خود، آنها فقط می توانید دسترسی به تمام حساب های دیگر خود را. و سپس آیکون های انجام هیچ چیز برای اطمینان از امنیت. ما باید معمولا برای HTTPS نگاه به جای HTTP و URL. و برخی از انواع دیگر حملات که ما ذکر کرده ام، که دیوید در ذکر کرده است سخنرانی، حملات تزریق SQL. ما در حال حاضر شاهد است که اگر ما don't-- تابع پرس و جو CS50 مطمئن می سازد که SQL حملات تزریق رخ نمی دهد. اما اگر ما با استفاده از CS50 نیست، نقل قول، تمام کردن "در پرس و جو،" ما را به مطمئن شوید که ورودی کاربر است که در واقع برخی از SQL پرس و جو که باعث می شود همه جدول ما به کاهش یافته و یا چیزی بد به اتفاق می افتد با بانک اطلاعاتی ما. ربودن نشست است نوع دیگری از حمله که اتفاق می افتد زمانی که برخی از بد فرد با استفاده از جلسه برخی قربانی ID برای دسترسی به اطلاعات ورود به سیستم. بنابراین یک مثال بسیار پیش پا افتاده از آن است اگر ما یک کامپیوتر عمومی، پس از آن فرد بد در و سپس از سیستم آنها کوکی هایی که ذخیره شده است. و کوکی ها برای جلسه را تغییر دهید. پس ما باید قربانی رفتن در و سپس به وب سایت وارد شوید. کوکی ها را تغییر دهید برای یک جلسه خاص است. و سپس قربانی سیاهههای مربوط به وب سایت و سپس ترک می کند. و پس از آن کسی که می رود پس از آن هنوز هم می تواند جلسه ID خود استفاده کنید برای دسترسی به اطلاعات است. به طوری که یک مثال از چگونه است که می تواند رخ دهد. و پس از آن من نمی بیش از حد نگران در مورد کد های خاص و یا هر چیز که که می تواند این می شود، اما داشتن نوعی از ایده چه متغیرهای درگیر در این است. و سپس دستکاری هدر داده نوع دیگری از حمله است است که دیوید در مورد صحبت کردیم. و آن را فقط به اشاره چه اتفاقی می افتد زمانی که پاسخ، HTTP پاسخ داخل هدر ما به درستی بررسی نمی شود، و هر یک از fields-- برای مثال، اگر کسی یکی از هدر رونویسی مقادیر را به هر چیزی را شامل بیش از آنچه که باید contain-- و در واقع شامل، برای مثال، 200 کد وضعیت OK، سپس آنها به طور بالقوه می تواند انجام مخرب همه چیز زمانی که آنها قرار نیست. اما من نمی نگرانی بیش از حد زیادی در مورد کد خاص است که می تواند این علت، فقط نوع فهم همه چیز در سطح بالا شبیه به آن. من فکر می کنم این است که همه که ما را پوشش دهد. حیرت آور. هر کسی هر گونه سوال در هر از چیزهایی که ما تحت پوشش؟ بله. مخاطبان: بنابراین یکی از درخواست تدارکات را تحت پوشش است. محتوای عمدتا متمرکز در همه چیز پس از مسابقه 1؟ MARIA ZLATKOVA: پس سوال این است که، محتوای به طور عمده در همه چیز پس از مسابقه 1 متمرکز شده است؟ بنابراین تمرکز بر است پس مسابقه 1، به استثنای که ما نیاز به تمرکز بر روی همه چیز در pset5 و بسیاری از ساختارهای داده که ما پوشیده شده است. و ما نمی توانیم بگوییم که ما می توانید هر چیزی را نادیده قبل که به دلیل آن را بر آن را می سازد و همچنین. بنابراین بر روی آن تمرکز، به علاوه مواد pset5 مانند جمله مرتبط لیست ها، پشته، صف، و همه چیز هانا که بیش از رفت. هانا بلومبرگ: درست است. آره، ما بیش از همه چیز C رفت در همان ابتدا بسیار به سرعت. اما مطمئن شوید که به بررسی این. برو و به تماشای مسابقه 0 بررسی. زن و شوهر یادداشت تدارکات را تحت پوشش بیشتر، فقط در حالی که ما باید توجه خود را. ما می رویم به ساعات اداری هر دو در روز دوشنبه و سه شنبه شب. آنها در حال رفتن به در MD 119 باشد. این است که همه در وب سایت، به طوری که اگر شما آن را، هیچ نگرانی را نمی شنوند. MARIA ZLATKOVA: 8:30-11:00. هانا بلومبرگ: بله، 8:30-11:00. ما آنجا خواهیم بود. ما آنجا خواهد بود برای پاسخ به سوالات. این لرز زیبا و سرگرم کننده است. شما بچه ها می توانید هر گونه سوال بپرسید که شما در مسابقه 1 داشته باشد. و مسابقه 1 است چهارشنبه، شانس خیلی خوب. اگر شما هر گونه سوال، شاید آمده به بحث ما تا اینجا یک در یک. خنک. خیلی ممنون. MARIA ZLATKOVA: با تشکر بسیار، بچه ها. مخاطبان: ماهواره. [تشویق حضار]