日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JS篇 学习笔记

發布時間:2023/12/9 javascript 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JS篇 学习笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

ECMA Script API:

Array.prototype.splice(start, deleteCount, value ...)

  數組操作中有:push、pop、unshift左移入、shift左進出;splice不僅可以完成刪除操作,而且還可以從中間插入:當deleteCount參數為0時就可以將后面的多個參數添加進來;

?

  正則表達式中,匹配分為兩類:

  1) 匹配字符

  如:\s, \d, \w等

  2) 匹配位置

  如:\b,^, $, (?=...), (?!...)

  這類往往用于斷言:如果匹配的話,則要滿足這樣的規則,匹配的指針不會向前進或者后退。如:/\w(?=\d)/g表示匹配字母后跟隨一個數字的子串。

// 斷言:匹配字母下一位是非1的數字;
"a1b2cd3ef".match(/[a-zA-Z](?=\d)(?!1)/g)    // ["b", "d"]
// 矛盾了:要求匹配項的以數字開頭,還的是:[a-zA-Z]
"a1b2cd3ef".match(/(?=\d)[a-zA-Z]/g)       // null

// 將數字串,轉換為每3位用逗號分隔的國際化表示
"0123456789".replace(/\d{1,3}(?=(\d{3})+$)/g, "$&,")  // "0,123,456,789"

?

String.prototype.match(regexp)

  分兩類情況:

  1) 正則含有g選項,如果不匹配返回null,否則返回所有匹配的字符串。(不包括Group匹配子串)

  2) 正則不含有g選項,如果不匹配返回null,否則返回一個數組,元素0為匹配的字符串片段,后面的元素為匹配的Group子串。該數組含有兩個屬性:index代表匹配的位置,input代表被匹配的字符串本身。

?

String.prototype.replace(string or?regexp, replacement)

  如果是字符串,則不轉換為正則;如果是正則,則replacement可以是以下:

  1) 字符串:其中的$代表特殊含義:$1, $2, ...代表多個Group匹配子串, $&代表匹配的整串,$`代表匹配左側、$'代表匹配右側;

// 因為/\d/匹配了a1b,所以1被a1b替換
"a1b".replace(/\d/, "$`$'")      // "aabb"
// 此時/\d/匹配a1b
"a1b".replace(/\d/, "$`-$'")     // "aa-bb"

  2) 函數:參數如下:參數0為匹配的整串,然后為Group子串,然后為Group子串的位置index,最后為被匹配的字符串。

?

?

即時編譯的幾種方式:

1. eval(' ... ')

2. new Function(' ... ')

3. setTimeout(' ... ', 0)              // 不推薦

4. <script type='text/javascript'> ... </script>  // 通過JS創建script節點,append到head節點中

/* eval: 1. 在當前的function context中執行,可以修改值; 2. 字符串中的最后一句表達式可以作為eval的返回值; 3. 返回值如果不是簡單類型,需要用"(...)"小括號圍繞起來; */ (function(){var o1 = eval('var s1 = "test"; ({ a1: s1 }) ');console.log(o1, s1); })(); /* new Function(): 1. 執行時將全局作用域作為function context; */ var a1 = "outer";
(
function(){var a1 = 'test';var f1 = new Function('console.log(this === window);'); // truevar f2 = new Function('return a1;'); // a1 is not defined console.log(f1(), f2()); })();

?

轉載于:https://www.cnblogs.com/diydyq/p/4277500.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的JS篇 学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。