64ES6_流程控制-創(chuàng)新互聯(lián)

目錄

創(chuàng)新互聯(lián)建站專注于寧強(qiáng)網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供寧強(qiáng)營銷型網(wǎng)站建設(shè),寧強(qiáng)網(wǎng)站制作、寧強(qiáng)網(wǎng)頁設(shè)計(jì)、寧強(qiáng)網(wǎng)站官網(wǎng)定制、小程序開發(fā)服務(wù),打造寧強(qiáng)網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供寧強(qiáng)網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

語法:...1

流程控制:...2

for循環(huán):...3

while循環(huán)、do...while循環(huán):...4

for ... in循環(huán):...5

for ... of循環(huán):...6

三種for迭代的差別:...7

break、continue:...8

語法:

語句塊:

js使用大括號(hào)構(gòu)成語句塊;

ES6之前語句塊是沒有作用域的,從ES6開始支持作用域,let只能在塊作用域中可見;

函數(shù)內(nèi)的let、var、隱式聲明都對(duì)外不可見;

塊作用僅對(duì)let有效(即用let定義的對(duì)外不可見,var和隱式聲明的對(duì)外可見);

例:

function hello() {?? //函數(shù)內(nèi)的let、var、隱式聲明都對(duì)外不可見

let a =1;

var b =2;

c =3;

}

// let d =100;

if (1) {?? //塊作用域僅對(duì)let有效(即用let定義的對(duì)外不可見,var和隱式聲明的對(duì)外可見)

let d =4;

var e =5;

f =6;

if (true) {

console.log(d,e,f);

g =7;

var h =8;

}

}

// console.log(a);?? //error

// console.log(b);?? //error

// console.log(c);?? //error

// console.log(d);?? //error,塊作用域中的不可見;最外層的可見

console.log(e);

console.log(f);

console.log(g);

console.log(h);

輸出:

4 5 6

100

5

6

7

8

流程控制:

條件分支:

if (cond) {

}

else if (cond2) {

}

else if (cond3) {

}

else {

}

條件的false等效:undefined、null、0、NaN、''(空字串);其它值都被視為true;

switch...case分支語句:

所有的switch...case都能轉(zhuǎn)為if...else;

另switch...case支持模式;

穿透問題,要恰當(dāng)?shù)氖褂胋reak,如果沒有break,會(huì)一直走下去,直至碰到break;

default段不是必須;

switch (expression) {

case label_1:

statement1

[break;]

case label_2:

statement2

[break;]

...

default:?? //不是必須

statement_def

[break;]

}

例:

let a =1;

switch (a) {

case 1:

console.log('1');

// break;

case 2:

console.log('2');

break;

default:

console.log('null');

break;

}

輸出:

1

2

for循環(huán):

C風(fēng)格;

大括號(hào)中只1條語句時(shí),大括號(hào)可省,如if (1) return;等價(jià)于if (1) {return ;};

for ([initialExpression]);[condition];[incrementExpression]) {?

statement

}

for (let i=0;i<arr.length;) {}?? //死循環(huán)

for (;;) {}?? //死循環(huán)

例:

let arr = [10,20,30,40,50];

for (let i=0;i<arr.length;i++) {

console.log(i,arr[i])

}

輸出:

0 10

1 20

2 30

3 40

4 50

while循環(huán)、do...while循環(huán):

一般用while (true) {},有條件退出用for;

while (condition) {?? //條件滿足,進(jìn)入循環(huán),條件為真,繼續(xù)循環(huán);大括號(hào)內(nèi)語句只有一句,大括號(hào)可省

statement

}

do { ??//先進(jìn)入循環(huán),然后判斷,為真就繼續(xù)循環(huán)

statement

} while (condition);

例:

let i =10;

while (i--) {

console.log(i);

}

do {

console.log(i)

}while (i++ <10)

例,99乘法表:

for (let x=1;x<10;x++) {

line ='';

for (let y=1;y<=x;y++) {

line +=`${y}*${x}=${x*y} `;?? //插值

if (x ==y)

console.log(line);

}

}

for ... in循環(huán):

對(duì)象操作語句,用來遍歷對(duì)象的屬性,另數(shù)組中索引也是屬性;

數(shù)組用for ... in返回的是索引;

對(duì)象用for ... in返回的是key;

根據(jù)個(gè)人喜好,或用C風(fēng)格的for循環(huán),或用for ... in都可;

注:

js的對(duì)象,與py的字典類似;

例:

let arr = [10,20,30,40,50];

// let arr = {?? //數(shù)組可理解為像對(duì)象這種定義方式,但不能用arr.0這樣訪問,不能這樣操作

//???? 0:10,

//???? 1:20,

//???? 2:30

// }

for (i in arr) {

console.log(i,arr[i]);

}

輸出:

0 10

1 20

2 30

3 40

4 50

例:

function add(x,y) {

return x +y

}

var obj = {?? //與py字典訪問一樣

p1 : 100,

p2 : 'abc',

p3 : [1,2,3],

p4 : add

}

console.log(obj['p4'](4,5));?? //屬性要用字符串,obj['p4'];obj[p4]不可以,p4 is not defined

for (let key in obj) {

console.log(`${key} :${obj[key]}`);?? //插值

}

輸出:

9

p1 : 100

p2 : abc

p3 : 1,2,3

p4 : function add(x,y) {

return x + y

}

for ... of循環(huán):

ES6新語法,for ... of不能迭代對(duì)象,of后面必須是一個(gè)迭代器,可類比py的for in,如for i in [];

遍歷數(shù)組中的values,即數(shù)組中的元素,適合取數(shù)組的所有元素,若有條件在for ... in中作判斷;

例:

let arr = [10,20,30,40,50];

let obj = {

p1 : 100,

p2 : 'abc',

p3 : [1,2,3]

}

for (let i of arr) {

console.log(i);?? //返回?cái)?shù)組元素,而不是索引

}

// for (let i of obj) {?? //error,ReferenceError: obj is not defined,不能迭代對(duì)象,of后必須是迭代器

//???? console.log(i);

// }

console.log(typeof(obj));?? //object

輸出:

10

20

30

40

50

object

三種for迭代的差別:

function sum(arr) {

for (let x in arr) {?? //遍歷index或?qū)ο髮傩?/p>

console.log(x,typeof(x),arr[x]);

}

for (let x of arr) {?? //遍歷元素

console.log(x,typeof(x));

}

for (let x=0;x<arr.length;x++) {?? //自定義索引數(shù)值遍歷

console.log(x,typeof(x),arr[x]);

}

}

sum([3,6,9]);

輸出:

0 string 3

1 string 6

2 string 9

3 'number'

6 'number'

9 'number'

0 'number' 3

1 'number' 6

2 'number' 9

break、continue:

break,結(jié)束當(dāng)前循環(huán);

continue,中斷當(dāng)前循環(huán),直接進(jìn)入下一次循環(huán);

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

分享文章:64ES6_流程控制-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://muchs.cn/article10/dchggo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、品牌網(wǎng)站制作、品牌網(wǎng)站建設(shè)、全網(wǎng)營銷推廣動(dòng)態(tài)網(wǎng)站、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)