亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

ES6基礎之字符串和函數的拓展詳解

2019-11-19 10:59:54
字體:
來源:轉載
供稿:網友

本文實例講述了ES6基礎之字符串和函數的拓展。分享給大家供大家參考,具體如下:

字符串的拓展

1.ES6為字符串添加了遍歷器接口,因此可以使用for...of循環遍歷字符串

2.字符串新增的 includes()、startsWith()、endsWidth() 三個方法用于判斷某一字符串是否包含于另一字符串

  • includes():返回布爾值,表示源字符串中是否包含參數字符串。
  • startsWith():返回布爾值,表示參數字符串是否在源字符串的頭部。
  • endsWith():返回布爾值,表示參數字符串是否在源字符串的尾部。

3.新增 repeat() 方法, 該方法返回一個新字符串,不是對原字符串操作,表示將原字符串重復n次。

let str = 'abc';str.repeat(3) //abcabcabc str //abc

ps:該方法參數為正整數,如果為負數會報錯,小數向下取整;

4.新增 padStart(),padEnd() 方法,用于補全字符串,該方法返回一個新字符串,不是對原字符串操作,傳入兩個參數,第一個參數用來指定字符串的最小長度,第二個參數是用來補全的字符串(缺省的話默認空格補全)。(ps:如果原字符串的長度,等于或大于指定的最小長度,則返回原字符串);

let str = 'abc';str.padStart(2, 'abc') // 'abc'str.padEnd(2, 'abc') // 'abc'

5.模板字符串??(esc下面的那個按鍵),可以擺脫傳統的字符串拼接的模式,直接將變量(表達式,對象的引用,函數等)寫在模板字符串中輸出

let str = 'world';let html = `hello ${str}`;html //hello wrold

ps:所有模板字符串的空格和換行,都是被保留的,可以使用trim方法消除換行。

6.標簽模板,即模板字符串緊跟在一個函數名后面,該函數將被調用來處理這個模板字符串,這中方式被稱為“標簽模板”,“標簽”指的就是函數,緊跟在后面的模板字符串就是它的參數

console.log `123`// 等同于console.log (123)

7.如果模板字符里面有變量,會將模板字符串先處理成多個參數,再調用函數;

var a = 5;var b = 10;function tag(s, v1, v2) { console.log(s) console.log(v1); console.log(v2);}tag`Hello ${ a + b } world ${ a * b }`;//['Hello','world','']//15//50

可以看出,tag函數第一個參數是一個數組,數組的成員是模板字符串中那些沒有變量替換的部分,其他參數,都是模板字符串各個變量被替換后的值;

8.再來一個例子,看看標簽模板的使用方法:

var total = 30;var msg = passthru`The total is ${total} (${total*1.05} with tax)`;function passthru(literals) { var result = ''; var i = 0; while (i < literals.length) {  result += literals[i++];  if (i < arguments.length) {   result += arguments[i];  } } return result;}

上述例子中,參數 literals 實際上是 <code> ["The total is "," ("," with tax)"] </code> , 函數內部 arguments 的值是 <code>{ "0" : ["The total is "," ("," with tax)"] , "1" : 30 , "2" : 31.5 }</code>,通過以上梳理,可以將各個參數按照原來的位置拼合回去,最終得到輸出為<code>"The total is 30 (31.5 with tax)"</code>

ps:在使用標簽模板的時候,要注意參數的位置,可根據自己實際的需求進行修改,返回正確的結果;

函數的拓展

1.ES6 允許為函數的參數設置默認值,即直接寫在參數定義的后面,一目了然,十分實用

function say( x , y = 'World') {  console.log( x , y);}say('Hello') // Hello Worldsay('Hello','Kite') //Hello Kite

2.函數參數默認已經聲明,不能再用 let 或者 const 聲明,而且不能有同名參數

3.一旦設置了參數的默認值,函數進行聲明初始化時,參數會形成一個單獨的作用域(context)。等到初始化結束,這個作用域就會消失;

var x = 1;function f(x, y = x) { console.log(y);}f(2) // 2

上面例子中,參數y的默認值等于變量x。調用函數f時,參數形成一個單獨的作用域。在這個作用域里面,默認值變量x指向第一個參數x,而不是全局變量x,所以輸出是2;

let x = 1;function f( y = x ) { let x = 2; console.log(y);}f() // 1

上面例子中,函數f調用時,參數y=x形成一個單獨的作用域。這個作用域里面,變量x本身沒有定義,所以指向外層的全局變量x。函數調用時,函數體內部的局部變量x影響不到默認值變量x;

4.函數聲明時,可以將某個參數默認值設為undefined,表明這個參數是可以省略的;

5.rest 參數(形式為...變量名),用于獲取函數的多余參數,該變量是一個數組,用于將多余的參數放入該數組中。(rest 參數之后不能再有其他參數,它只能是函數的最后一個參數,否則會報錯)

function func(...params){  console.log(params)}func(1,2,3) // [1,2,3]function func( x , ...params){  console.log(params)}func(1,2,3) // [2,3]

6.箭頭函數(=>),ES6 允許使用“箭頭”(=>)定義函數,這種寫法相比較 ES5 定義 function 看起來簡潔得多;

var func = x => x //等同于var func = function func(x) {  return x;};

7.如果箭頭函數沒有參數或者有多個參數的話,則需要加上()來進行聲明;

var func = () => 'Hello World';//等同于var func = function func() { return 'Hello World';};var func = ( x , y ) => x + y//等同于var func = function func(x, y) { return x + y;};

8.如果箭頭函數的代碼塊部分多于一條語句,就要使用大括號將它們括起來,并且使用return語句返回;

var func = ( x , y ) => { return x + y; }

9.如果箭頭函數直接返回一個對象,必須在對象外面加上括號;

var func = ( x , y ) => ({ x : x , y : y })

10.箭頭函數使用時必須注意以下幾個問題:

函數體內的this對象,就是定義時所在的對象,而不是使用時所在的對象;

function foo() { setTimeout(() => {  console.log('id:', this.id); }, 100);}var id = 21;foo.call({ id: 42 }); //42

上面代碼中,setTimeout的參數是一個箭頭函數,這個箭頭函數的定義生效是在foo函數生成時,而它的真正執行要等到100毫秒后。如果是普通函數,執行時this應該指向全局對象window,這時應該輸出21。但是,箭頭函數導致this總是指向函數定義生效時所在的對象(本例是{id: 42}),所以輸出的是42。

  • 箭頭函數不可以當作構造函數,也就是說,不可以使用new命令,否則會拋出一個錯誤;
  • 不可以使用arguments對象,該對象在函數體內不存在。如果要用,可以用 rest 參數代替
  • 不可以使用yield命令,因此箭頭函數不能用作 Generator 函數。

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具http://tools.VeVB.COm/code/HtmlJsRun測試上述代碼運行效果。

更多關于JavaScript相關內容可查看本站專題:《javascript面向對象入門教程》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結

希望本文所述對大家JavaScript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
午夜精品一区二区三区在线| 亚洲a在线观看| 国产欧美日韩丝袜精品一区| 亚洲国产成人精品一区二区| 欧美日韩视频免费播放| 中文字幕亚洲欧美日韩在线不卡| 日韩在线视频观看| 精品国产老师黑色丝袜高跟鞋| 久久亚洲综合国产精品99麻豆精品福利| 国色天香2019中文字幕在线观看| 国产日本欧美在线观看| www亚洲精品| 国产视频精品久久久| 久久久久久亚洲精品中文字幕| 亚洲国产精品人久久电影| 国产日本欧美视频| 亚洲色图35p| 日韩电视剧免费观看网站| 久久亚洲欧美日韩精品专区| 中文字幕日韩精品在线| 亚洲一区二区三区乱码aⅴ| 午夜欧美不卡精品aaaaa| 国产成人高清激情视频在线观看| 韩曰欧美视频免费观看| 久久精品免费电影| 亚洲香蕉伊综合在人在线视看| 国产精品入口日韩视频大尺度| 欧美黑人又粗大| 欧美日韩免费在线观看| 欧美最猛性xxxxx免费| 国产精品一区久久久| 国产极品精品在线观看| 热久久免费国产视频| 国产日韩欧美在线观看| 午夜精品一区二区三区视频免费看| 欧美美女18p| 国内精品久久影院| 欧美日韩亚洲网| 538国产精品视频一区二区| 欧美国产日韩精品| 久久艳片www.17c.com| 亚洲欧美一区二区三区情侣bbw| 欧美日韩中文在线观看| 福利一区视频在线观看| 精品国产一区二区在线| 日韩激情av在线免费观看| 欧美丰满少妇xxxxx做受| 精品国偷自产在线视频99| 成人国产精品一区| 亚洲精品国产电影| 亚洲深夜福利视频| 4k岛国日韩精品**专区| 欧美激情第三页| 国产精品久久久久77777| 中文字幕亚洲综合久久筱田步美| 国产精品海角社区在线观看| 国产欧美va欧美va香蕉在线| 欧美有码在线观看视频| 亚洲精品久久视频| 川上优av一区二区线观看| 日韩免费精品视频| 欧美激情欧美激情| 黑人巨大精品欧美一区二区三区| 91精品国产91久久久久久不卡| 啊v视频在线一区二区三区| 国产一区二区三区丝袜| 亚洲高清一二三区| 97在线观看视频| 91日韩在线视频| 高潮白浆女日韩av免费看| 亚洲黄色av女优在线观看| 日韩欧美在线第一页| 奇米四色中文综合久久| 日韩av电影中文字幕| 亚洲欧美国产精品专区久久| 久久久精品免费| 亚洲91精品在线| 中文字幕成人在线| 亚洲激情在线观看视频免费| 在线观看日韩www视频免费| 日韩精品在线观看一区| 中文字幕在线视频日韩| 久久久久久久爱| 国产精品网址在线| 色妞色视频一区二区三区四区| 欧美日韩亚洲一区二区| 91精品久久久久久综合乱菊| 欧美自拍大量在线观看| 色综合伊人色综合网站| 一区二区亚洲精品国产| 欧美黑人视频一区| 91精品久久久久久久久久久久久久| 日韩欧美在线播放| 在线中文字幕日韩| 久久精品国产成人精品| 57pao成人永久免费视频| 精品香蕉一区二区三区| 国产精品96久久久久久| 777777777亚洲妇女| 精品亚洲国产视频| 国产精品第一页在线| 国产精品jizz在线观看麻豆| 日韩福利伦理影院免费| 精品视频9999| 日韩av片永久免费网站| 欧美精品videosex性欧美| 欧美日韩国产丝袜另类| 国语自产精品视频在线看抢先版图片| 久久视频在线观看免费| 一区二区欧美日韩视频| 亚洲天堂开心观看| 国产伊人精品在线| 成人国产精品日本在线| 久久99视频免费| 精品国产一区二区三区四区在线观看| 日韩一级裸体免费视频| 午夜美女久久久久爽久久| 欧美亚洲另类视频| 欧美成人黑人xx视频免费观看| 亚洲国产高清自拍| 欧美午夜丰满在线18影院| 欧美日韩国产在线播放| 国产精品第一视频| 日韩电影免费在线观看中文字幕| 亚洲成人精品视频在线观看| 精品视频偷偷看在线观看| 一本久久综合亚洲鲁鲁| 国产精品大片wwwwww| 91亚洲一区精品| 97精品欧美一区二区三区| 伊人男人综合视频网| 国产精品日韩一区| 欧美性猛交xxxx偷拍洗澡| 综合网日日天干夜夜久久| 欧美精品videossex性护士| 精品亚洲一区二区三区在线播放| 91成人在线播放| 成人黄色av播放免费| 欧美第一淫aaasss性| www.亚洲男人天堂| 日韩精品在线电影| 国产欧美日韩中文| 日韩美女视频免费看| 亚洲男人天堂2024| 97视频在线观看播放| 国产精品欧美日韩一区二区| 日韩中文字幕在线视频| 国产精品久久久久久久电影| 国产精品高清免费在线观看| 亚洲永久免费观看| 国产精品久久久久av免费| 亚洲欧美变态国产另类| 色天天综合狠狠色| 国产精品1区2区在线观看| www.日韩.com| 午夜精品久久久久久99热| 国产亚洲精品日韩| 国产欧美一区二区| 久久久精品在线观看| 久久精品中文字幕免费mv| 精品视频—区二区三区免费| 欧美一级片一区| 亚洲韩国欧洲国产日产av| 国产日韩在线免费|