javascript
JavaScript基础07-day09【嵌套for循环、break和continue、对象、数据类型、对象字面量、函数】
學(xué)習(xí)地址:
JavaScript基礎(chǔ)、高級(jí)學(xué)習(xí)筆記匯總表【尚硅谷最新版JavaScript基礎(chǔ)全套教程完整版(140集實(shí)戰(zhàn)教學(xué),JS從入門到精通)】
目? ?錄
P41?41.尚硅谷_JS基礎(chǔ)_嵌套的for循環(huán)?18:50
P42?42.尚硅谷_JS基礎(chǔ)_練習(xí)?05:47
P43?43.尚硅谷_JS基礎(chǔ)_for循環(huán)練習(xí)?18:37
嵌套循環(huán)練習(xí)1:打印九九乘法表
嵌套循環(huán)練習(xí)2:打印出1-100之間所有的質(zhì)數(shù)
P44?44.尚硅谷_JS基礎(chǔ)_break和continue?28:00
break關(guān)鍵字
label: 循環(huán)語(yǔ)句
continue關(guān)鍵字
計(jì)時(shí)器:console.time()、console.timeEnd()
P45?45.尚硅谷_JS基礎(chǔ)_質(zhì)數(shù)練習(xí)的改進(jìn)?08:38
P46?46.尚硅谷_JS基礎(chǔ)_對(duì)象的簡(jiǎn)介?11:51
P47?47.尚硅谷_JS基礎(chǔ)_對(duì)象的基本操作?13:10
1、創(chuàng)建空對(duì)象【var obj = new Object(); // 構(gòu)造方法】
2、向?qū)ο筇砑訉傩浴菊Z(yǔ)法:對(duì)象.屬性名 = 屬性值;】
3、讀取對(duì)象中的屬性【語(yǔ)法:對(duì)象.屬性名】
4、修改對(duì)象的屬性值【語(yǔ)法:對(duì)象.屬性名 = 新值;】
5、刪除對(duì)象的屬性【語(yǔ)法:delete 對(duì)象.屬性名;】
P48?48.尚硅谷_JS基礎(chǔ)_屬性名和屬性值?16:34
屬性名
向?qū)ο笾刑砑訉傩?/p>
特殊的屬性名【語(yǔ)法:對(duì)象["屬性名"] = 屬性值】
屬性值
in 運(yùn)算符:檢查一個(gè)對(duì)象中是否含有指定的屬性。
P49?49.尚硅谷_JS基礎(chǔ)_基本數(shù)據(jù)類型和引用數(shù)據(jù)類型?26:38
P50?50.尚硅谷_JS基礎(chǔ)_對(duì)象字面量?08:20
P51?51.尚硅谷_JS基礎(chǔ)_函數(shù)的簡(jiǎn)介?23:02
函數(shù)簡(jiǎn)介
給函數(shù)添加屬性
函數(shù)創(chuàng)建方式1:字符串封裝代碼創(chuàng)建函數(shù)
函數(shù)創(chuàng)建方式2:函數(shù)聲明
函數(shù)創(chuàng)建方式3:函數(shù)表達(dá)式
P52?52.尚硅谷_JS基礎(chǔ)_函數(shù)的參數(shù)?11:35
P41?41.尚硅谷_JS基礎(chǔ)_嵌套的for循環(huán)?18:50
/*
?? ?通過(guò)程序,在頁(yè)面中輸出如下的圖形:
?? ?* ? ? ?1 ? <1 ? i=0
?? ?** ? ? 2 ? <2 ? i=1
?? ?*** ? ?3 ? <3 ? i=2
?? ?**** ? 4 ? <4 ? i=3
?? ?***** ?5 ? <5 ? i=4
?? ?
?? ?*****
?? ?*****
?? ?*****
?? ?*****
?? ?*****
?? ?
?? ?***** 1 ? j<5(5-0) ?i=0
?? ?**** ?2?? ? ?j<4(5-1) ?i=1
?? ?*** ? 3 ? j<3(5-2) ?i=2
?? ?** ? ?4 ? j<2(5-3) ?i=3
?? ?* ? ? 5 ? j<1(5-4) ?i=4
?*/
P42?42.尚硅谷_JS基礎(chǔ)_練習(xí)?05:47
P43?43.尚硅谷_JS基礎(chǔ)_for循環(huán)練習(xí)?18:37
嵌套循環(huán)練習(xí)1:打印九九乘法表
?* 1.打印99乘法表
?* ?? ? 1*1=1
?* ?? ? 1*2=2 2*2=4
?* ?? ? 1*3=3 2*3=6 3*3=9
?* ?? ? 1*4=4 2*4=8 3*4=12 4*4=16?? ?
?* ?? ??? ??? ??? ??? ??? ?....9*9=81
<span></span>用來(lái)對(duì)齊元素。
<!DOCTYPE html> <html><head><meta charset="UTF-8"><title></title><script type="text/javascript">for (var i = 1; i <= 9; i++) { //創(chuàng)建外層循環(huán),用來(lái)控制乘法表的高度f(wàn)or (var j = 1; j <= i; j++) { //創(chuàng)建一個(gè)內(nèi)層循環(huán)來(lái)控制圖形的寬度document.write("<span>" + j + "*" + i + "=" + i * j + "</span>");}document.write("<br />"); //輸出一個(gè)換行}</script><style type="text/css">body {width: 2000px;background-color: #87CEEB;}span {display: inline-block; /*轉(zhuǎn)為行內(nèi)元素*/width: 80px; /*span是塊元素*/background-color: #FCD410;}</style></head><body></body> </html>嵌套循環(huán)練習(xí)2:打印出1-100之間所有的質(zhì)數(shù)
<!DOCTYPE html> <html><head><meta charset="UTF-8"><title></title><script type="text/javascript">//打印2-100之間所有的數(shù)for (var i = 2; i <= 100; i++) {//創(chuàng)建一個(gè)布爾值,用來(lái)保存結(jié)果,默認(rèn)i是質(zhì)數(shù)var flag = true;//判斷i是否是質(zhì)數(shù)//獲取到2-i之間的所有的數(shù)for (var j = 2; j < i; j++) {//判斷i是否能被j整除if (i % j == 0) {//如果進(jìn)入判斷則證明i不是質(zhì)數(shù),修改flag值為falseflag = false;}}//如果是質(zhì)數(shù),則打印i的值if (flag) {console.log(i);}}</script></head><body></body> </html>P44?44.尚硅谷_JS基礎(chǔ)_break和continue?28:00
break關(guān)鍵字
break關(guān)鍵字,可以用來(lái)退出switch或循環(huán)語(yǔ)句,不能在if語(yǔ)句中使用break和continue。
break關(guān)鍵字,會(huì)立即終止離它最近的那個(gè)循環(huán)語(yǔ)句。
label: 循環(huán)語(yǔ)句
可以為循環(huán)語(yǔ)句創(chuàng)建一個(gè)label,來(lái)標(biāo)識(shí)當(dāng)前的循環(huán)。
label: 循環(huán)語(yǔ)句
使用break語(yǔ)句時(shí),可以在break后跟著一個(gè)label,這樣break將會(huì)結(jié)束指定的循環(huán),而不是最近的。
??
continue關(guān)鍵字
continue關(guān)鍵字可以用來(lái)跳過(guò)當(dāng)次循環(huán),同樣continue也是默認(rèn)只會(huì)對(duì)離它最近的循環(huán)循環(huán)起作用。
?
計(jì)時(shí)器:console.time()、console.timeEnd()
P45?45.尚硅谷_JS基礎(chǔ)_質(zhì)數(shù)練習(xí)的改進(jìn)?08:38
19 / 2 = 9.5,10之后的數(shù)字與誰(shuí)乘都不可能得19了,9.5之后的值沒(méi)必要再去檢查。
除了2,所有的質(zhì)數(shù)都是奇數(shù)。質(zhì)數(shù):prime number。
<!DOCTYPE html> <html><head><meta charset="UTF-8"><title></title><script type="text/javascript">//測(cè)試如下的程序的性能//在程序執(zhí)行前,開(kāi)啟計(jì)時(shí)器//console.time("計(jì)時(shí)器的名字") // 可以用來(lái)開(kāi)啟一個(gè)計(jì)時(shí)器//它需要一個(gè)字符串作為參數(shù),這個(gè)字符串將會(huì)作為計(jì)時(shí)器的標(biāo)識(shí)console.time("test");//打印2-100之間所有的數(shù)for (var i = 2; i <= 100000; i++) {var flag = true;for (var j = 2; j <= Math.sqrt(i); j++) {if (i % j == 0) {//如果進(jìn)入判斷則證明i不是質(zhì)數(shù),修改flag值為falseflag = false;//一旦進(jìn)入判斷,則證明i不可能是質(zhì)數(shù)了,此時(shí)循環(huán)再執(zhí)行已經(jīng)沒(méi)有任何意義了//使用break來(lái)結(jié)束循環(huán)break;//不加break 215ms//加break 25ms//修改j<=后 2.6}}//如果是質(zhì)數(shù),則打印i的值if (flag) {//console.log(i);}}//終止計(jì)時(shí)器//console.timeEnd()用來(lái)停止一個(gè)計(jì)時(shí)器,需要一個(gè)計(jì)時(shí)器的名字作為參數(shù)console.timeEnd("test");/** 36* 1 36* 2 18* 3 12* 4 9* 6 6*///可以通過(guò)Math.sqrt()對(duì)一個(gè)數(shù)進(jìn)行開(kāi)方var result = Math.sqrt(97);console.log("result = " + result)</script></head><body></body> </html>P46?46.尚硅谷_JS基礎(chǔ)_對(duì)象的簡(jiǎn)介?11:51
JavaScript中的數(shù)據(jù)類型(6種):
1、String 字符串
2、Number 數(shù)值
3、Boolean 布爾值
4、Null 空值
5、Undefined 未定義
? ?- 以上這五種類型屬于基本數(shù)據(jù)類型,以后我們看到的值,只要不是上邊的5種,全都是對(duì)象。
6、Object 對(duì)象(引用數(shù)據(jù)類型)
基本數(shù)據(jù)類型都是單一的值"hello"、123、true,值和值之間沒(méi)有任何的聯(lián)系。
在JS中來(lái)表示一個(gè)人的信息(name gender age):
?* ?? ?var name = "孫悟空";
?* ?? ?var gender = "男";
?* ?? ?var age = 18;
如果使用基本數(shù)據(jù)類型的數(shù)據(jù),我們所創(chuàng)建的變量都是獨(dú)立,不能成為一個(gè)整體。
對(duì)象屬于一種復(fù)合的數(shù)據(jù)類型,在對(duì)象中可以保存多個(gè)不同數(shù)據(jù)類型的屬性。
對(duì)象的分類:
P47?47.尚硅谷_JS基礎(chǔ)_對(duì)象的基本操作?13:10
1、創(chuàng)建空對(duì)象【var obj = new Object(); // 構(gòu)造方法】
??
2、向?qū)ο筇砑訉傩浴菊Z(yǔ)法:對(duì)象.屬性名 = 屬性值;】
?
3、讀取對(duì)象中的屬性【語(yǔ)法:對(duì)象.屬性名】
4、修改對(duì)象的屬性值【語(yǔ)法:對(duì)象.屬性名 = 新值;】
5、刪除對(duì)象的屬性【語(yǔ)法:delete 對(duì)象.屬性名;】
P48?48.尚硅谷_JS基礎(chǔ)_屬性名和屬性值?16:34
屬性名
向?qū)ο笾刑砑訉傩?/span>
屬性名:對(duì)象的屬性名不強(qiáng)制要求遵守標(biāo)識(shí)符的規(guī)范,什么亂七八糟的名字都可以使用,但是我們使用是還是盡量按照標(biāo)識(shí)符的規(guī)范去做。
特殊的屬性名【語(yǔ)法:對(duì)象["屬性名"] = 屬性值】
如果要使用特殊的屬性名,不能采用.的方式來(lái)操作,需要使用另一種方式:語(yǔ)法:對(duì)象["屬性名"] = 屬性值。
讀取時(shí)也需要采用這種方式,使用[]這種形式去操作屬性,更加的靈活,在[]中可以直接傳遞一個(gè)變量,這樣變量值是多少就會(huì)讀取那個(gè)屬性。
??
屬性值
屬性值:JS對(duì)象的屬性值,可以是任意的數(shù)據(jù)類型,甚至也可以是一個(gè)對(duì)象。
in 運(yùn)算符:檢查一個(gè)對(duì)象中是否含有指定的屬性。
in運(yùn)算符:通過(guò)該運(yùn)算符可以檢查一個(gè)對(duì)象中是否含有指定的屬性,如果有則返回true,沒(méi)有則返回false。
語(yǔ)法:"屬性名" in 對(duì)象
P49?49.尚硅谷_JS基礎(chǔ)_基本數(shù)據(jù)類型和引用數(shù)據(jù)類型?26:38
- 基本數(shù)據(jù)類型:String Number Boolean Null Undefined
- 引用數(shù)據(jù)類型:Object
- JS中的變量都是保存到棧內(nèi)存中的,基本數(shù)據(jù)類型的值直接在棧內(nèi)存中存儲(chǔ),值與值之間是獨(dú)立存在,修改一個(gè)變量不會(huì)影響其他的變量。
- 對(duì)象是保存到堆內(nèi)存中的,每創(chuàng)建一個(gè)新的對(duì)象,就會(huì)在堆內(nèi)存中開(kāi)辟出一個(gè)新的空間,而變量保存的是對(duì)象的內(nèi)存地址(對(duì)象的引用),如果兩個(gè)變量保存的是同一個(gè)對(duì)象引用,當(dāng)一個(gè)通過(guò)一個(gè)變量修改屬性時(shí),另一個(gè)也會(huì)受到影響。
?值與值獨(dú)立!
??
- 當(dāng)比較兩個(gè)基本數(shù)據(jù)類型的值時(shí),就是比較值。
- 而比較兩個(gè)引用數(shù)據(jù)類型時(shí),它是比較的對(duì)象的內(nèi)存地址,如果兩個(gè)對(duì)象是一摸一樣的,但是地址不同,它也會(huì)返回false。
??
P50?50.尚硅谷_JS基礎(chǔ)_對(duì)象字面量?08:20
使用對(duì)象字面量,可以在創(chuàng)建對(duì)象時(shí),直接指定對(duì)象中的屬性,語(yǔ)法:{屬性名:屬性值,屬性名:屬性值....}。
對(duì)象字面量的屬性名可以加引號(hào)也可以不加,建議不加,如果要使用一些特殊的名字,則必須加引號(hào)。
屬性名和屬性值是一組一組的名值對(duì)結(jié)構(gòu),名和值之間使用“:”連接,多個(gè)名值對(duì)之間使用“,”隔開(kāi),如果一個(gè)屬性之后沒(méi)有其他的屬性了,就不要寫“,”。
??
P51?51.尚硅谷_JS基礎(chǔ)_函數(shù)的簡(jiǎn)介?23:02
函數(shù)簡(jiǎn)介
函數(shù) function:
??
給函數(shù)添加屬性
函數(shù)創(chuàng)建方式1:字符串封裝代碼創(chuàng)建函數(shù)
函數(shù)創(chuàng)建方式2:函數(shù)聲明
使用 函數(shù)聲明 來(lái)創(chuàng)建一個(gè)函數(shù):
語(yǔ)法:
function 函數(shù)名([形參1, 形參2...形參N]) { // []表示“可選”
? ?語(yǔ)句...
}
與構(gòu)造函數(shù)方式一樣,函數(shù)聲明的方式更清楚。聲明函數(shù),末尾不用寫“;”。
函數(shù)創(chuàng)建方式3:函數(shù)表達(dá)式
使用 函數(shù)表達(dá)式 來(lái)創(chuàng)建一個(gè)函數(shù):創(chuàng)建一個(gè)匿名函數(shù),將此匿名函數(shù)賦值給一個(gè)變量(賦值語(yǔ)句,最好在末尾寫“;”)。
var 函數(shù)名 ?= function([形參1,形參2...形參N]) {
? ?語(yǔ)句....
}
P52?52.尚硅谷_JS基礎(chǔ)_函數(shù)的參數(shù)?11:35
定義一個(gè)用來(lái)求兩個(gè)數(shù)和的函數(shù)。
可以在函數(shù)的()中來(lái)指定一個(gè)或多個(gè)形參(形式參數(shù)),多個(gè)形參之間使用,隔開(kāi),聲明形參就相當(dāng)于在函數(shù)內(nèi)部聲明了對(duì)應(yīng)的變量,但是并不賦值。
總結(jié)
以上是生活随笔為你收集整理的JavaScript基础07-day09【嵌套for循环、break和continue、对象、数据类型、对象字面量、函数】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: JavaScript基础06-day08
- 下一篇: JavaScript基础08-day10