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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

MDN文档基础知识搜集

發(fā)布時(shí)間:2023/12/10 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MDN文档基础知识搜集 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Array
數(shù)組,一種允許你存儲(chǔ)多個(gè)值在一個(gè)引用里的結(jié)構(gòu)。var myVariable = [1,'Bob','Steve',10];
引用數(shù)組的元素只需:myVariable[0],?myVariable[1], 等等.

發(fā)布工具:?FTP?客戶(hù)端

你還需要一種將文件從本地硬盤(pán)上傳到遠(yuǎn)程Web服務(wù)器的方法。 為了做到這一點(diǎn),你必須使用FTP客戶(hù)端。

每個(gè)系統(tǒng)都包含一個(gè)FTP客戶(hù)端作為文件管理器的一部分。 Windows資源管理器,Nautilus(一個(gè)常見(jiàn)的Linux文件管理器)和Mac Finder都包含該功能。 然而,人們更經(jīng)常選擇專(zhuān)門(mén)的FTP客戶(hù)端,可以存儲(chǔ)密碼并且并行顯示本地和遠(yuǎn)程目錄。

如果你需要安裝一個(gè)FTP客戶(hù)端,這里有很多免費(fèi)的選擇:例如, 可以全平臺(tái)使用的?FileZilla?, windows上使用的WinSCP?, Mac和 windows上都能使用的?Cyberduck?,還有很多)。

注意:還有其他方法可以在遠(yuǎn)程服務(wù)器上發(fā)布內(nèi)容,如rsync和git,但并不像FTP那樣簡(jiǎn)單,我們不會(huì)在這里討論。(一定看git教程!!)

使用在線工具如 GitHub 或 Google App Engine

有一些工具能使你在線發(fā)布網(wǎng)站?:

  • GitHub?是一個(gè)“社交編程”網(wǎng)站。它允許你上傳代碼庫(kù)并儲(chǔ)存在?Git?版本控制系統(tǒng)里。?然后你可以協(xié)作代碼項(xiàng)目,系統(tǒng)是默認(rèn)開(kāi)源的,意味著世界上任何人都可以找到你 GitHub 上的代碼。去使用 GitHub,從中學(xué)習(xí)并且提高自己吧!?你也可以對(duì)別人的代碼那樣做! 這是一個(gè)非常重要、有用的社區(qū),而且?Git/GitHub 是非常流行的?version control system?— 大部分科技公司在工作中使用它。?GitHub 有一個(gè)非常有用的特點(diǎn)叫?GitHub pages,允許你將網(wǎng)站代碼放在網(wǎng)上。
  • Google App Engine

不像大部分其它主機(jī)服務(wù),這類(lèi)工具通常是免費(fèi)的,不過(guò)你只能使用有限的功能。

使用像 Thimble 的基于 Web 的集成開(kāi)發(fā)環(huán)境

有許多web應(yīng)用能夠仿真一個(gè)網(wǎng)站開(kāi)發(fā)環(huán)境,允許你輸入 HTML、CSS 和 JavaScript 然后顯示代碼的結(jié)果 —— 全部在一個(gè)標(biāo)簽頁(yè)里!通常這些工具都很簡(jiǎn)單,對(duì)學(xué)習(xí)很有幫助,而且是免費(fèi)的(基本功能),它們?cè)谝粋€(gè)獨(dú)特的地址顯示你提交的網(wǎng)頁(yè)。不過(guò),基礎(chǔ)功能是很有限的,而且這些應(yīng)用通常不提供如圖像的內(nèi)容的主機(jī)空間。

使用一下以下幾種工具,看看你最喜歡哪一個(gè):

  • JSFiddle
  • Thimble
  • JSBin
  • CodePen

?通過(guò)GitHub發(fā)布簡(jiǎn)單。

現(xiàn)在,讓我們通過(guò)Github頁(yè)面告訴你公布的你的代碼是如此的

  • 首先,?注冊(cè)一個(gè)GitHub賬號(hào),?并確認(rèn)你的郵箱地址。
  • 接下來(lái),你需要?jiǎng)?chuàng)建一個(gè)新的資源庫(kù)( repository )來(lái)存放你的文件。
  • 在這個(gè)頁(yè)面上,在?Repository name?輸入框里輸入??username.github.io,username 是你的用戶(hù)名。比如,我們的朋友 bobsmith 會(huì)輸入??bobsmith.github.io。同時(shí)勾選?Initialize this repository with a README?,然后點(diǎn)擊?Create repository。
  • 然后,將你的網(wǎng)頁(yè)文件夾拖拽到你的資源庫(kù)( repository ),再點(diǎn)擊?Commit changes?。

    提示: 確保你的文件夾有一個(gè)?index.html?文件.

  • 現(xiàn)在將你的瀏覽器轉(zhuǎn)到?username.github.io 來(lái)在線查看你的網(wǎng)站。比如,如果用戶(hù)名為chrisdavidmills, 請(qǐng)轉(zhuǎn)到?chrisdavidmills.github.io。

    提示: 你的網(wǎng)站可能需要幾分鐘的時(shí)間才能投入使用。 如果它不能立即工作,你可能需要等待幾分鐘,然后再試一次。

  • 想要了解更多,請(qǐng)看?GitHub Pages Help.


    關(guān)于變量命名的規(guī)則

    你可以給你的變量賦任何你喜歡的名字,但有一些限制。 一般你應(yīng)當(dāng)堅(jiān)持使用拉丁字符(0-9,a-z,A-Z)和下劃線字符。

    • 你不應(yīng)當(dāng)使用規(guī)則之外的其他字符,因?yàn)樗鼈兛赡芤l(fā)錯(cuò)誤,或?qū)?guó)際用戶(hù)來(lái)說(shuō)難以理解。
    • 變量名不要以下劃線開(kāi)頭——?以下劃線開(kāi)頭的被某些JavaScript設(shè)計(jì)為特殊的含義,因此可能讓人迷惑。
    • 變量名不要以數(shù)字開(kāi)頭。這種行為是不被允許的,并且將引發(fā)一個(gè)錯(cuò)誤。
    • 一個(gè)可靠的命名約定叫做?"小寫(xiě)駝峰命名法",用來(lái)將多個(gè)單詞組在一起,小寫(xiě)整個(gè)命名的第一個(gè)字母然后大寫(xiě)剩下單詞的首字符。我們已經(jīng)在文章中使用了這種命名方法。
    • 讓變量名直觀,它們描述了所包含的數(shù)據(jù)。不要只使用單一的字母/數(shù)字,或者長(zhǎng)句。
    • 變量名大小寫(xiě)敏感——因此myage與myAge是2個(gè)不同的變量。
    • 最后也是最重要的一點(diǎn)—— 你應(yīng)當(dāng)避免使用JavaScript的保留字給變量命名。保留字,即是組成JavaScript的實(shí)際語(yǔ)法的單詞!因此諸如?var,?function,?let和?for等,都不能被作為變量名使用。瀏覽器將把它們識(shí)別為不同的代碼項(xiàng),因此你將得到錯(cuò)誤。

    Note: 你能從詞匯語(yǔ)法—關(guān)鍵字找到一個(gè)相當(dāng)完整的保留關(guān)鍵字列表來(lái)避免使用關(guān)鍵字當(dāng)作變量。

    好的命名示例:

    age myAge init initialColor finalOutputValue audio1 audio2

    差的命名示例:

    1 a _12 myage MYAGE var Document skjfndskjfnbdskjfb thisisareallylongstupidvariablenameman

    現(xiàn)在嘗試創(chuàng)建更多的變量,請(qǐng)將上面的指導(dǎo)泯記于心。


    有用的字符串方法(記住,字符串本值是不可變的!,你要另外把變化后的值賦給新的變量)

    數(shù)組(數(shù)組可變)

    事件介紹

    JavaScript事件代理

    JavaScript 事件委托 以及jQuery對(duì)事件委托的支持

    Event delegation

    適合初學(xué)者的JavaScript面向?qū)ο?/p>

    對(duì)象原型

    JavaScript 中的繼承

    使用JSON?

    客戶(hù)端 Web API(未完!,翻譯!)

    從服務(wù)器獲取數(shù)據(jù)

    語(yǔ)法和數(shù)據(jù)類(lèi)型

    流程控制與錯(cuò)誤處理

    函數(shù)

    箭頭函數(shù)


    delete

    delete操作符,刪除一個(gè)對(duì)象或一個(gè)對(duì)象的屬性或者一個(gè)數(shù)組中某一個(gè)鍵值。語(yǔ)法如下:

    delete objectName; delete objectName.property; delete objectName[index]; delete property; // legal only within a with statement

    objectName是一個(gè)對(duì)象名,property?是一個(gè)已經(jīng)存在的屬性,index是數(shù)組中的一個(gè)已經(jīng)存在的鍵值的索引值。

    第四行的形式只在with聲明的狀態(tài)下是合法的, 從對(duì)象中刪除一個(gè)屬性。

    你能使用?delete?刪除各種各樣的隱式聲明, 但是被var聲明的除外。

    如果?delete?操作成功,屬性或者元素會(huì)變成?undefined。如果?delete可行會(huì)返回true,如果不成功返回false。

    x = 42; var y = 43; myobj = new Number(); myobj.h = 4; // create property h delete x; // returns true (can delete if declared implicitly) delete y; // returns false (cannot delete if declared with var) delete Math.PI; // returns false (cannot delete predefined properties) delete myobj.h; // returns true (can delete user-defined properties) delete myobj; // returns true (can delete if declared implicitly)

    ?


    void

    void 運(yùn)算符運(yùn)用方法如下:

    void (expression) void expression

    void運(yùn)算符,表明一個(gè)運(yùn)算沒(méi)有返回值。expression是javaScript表達(dá)式,括號(hào)中的表達(dá)式是一個(gè)可選項(xiàng),當(dāng)然使用該方式是一種好的形式。

    你可以使用void運(yùn)算符指明一個(gè)超文本鏈接。該表達(dá)式是有效的,但是并不會(huì)在當(dāng)前文檔中進(jìn)行加載。

    如下創(chuàng)建了一個(gè)超鏈接文本,當(dāng)用戶(hù)單擊該文本時(shí),不會(huì)有任何效果。

    <a href="javascript:void(0)">Click here to do nothing</a>

    下面的代碼創(chuàng)建了一個(gè)超鏈接,當(dāng)用戶(hù)單擊它時(shí),提交一個(gè)表單。

    <a href="javascript:void(document.form.submit())"> Click here to submit</a>

    ?

    in

    in操作符,如果所指定的屬性確實(shí)存在于所指定的對(duì)象中,則會(huì)返回true,語(yǔ)法如下:

    propNameOrNumber in objectName

    在這里?propNameOrNumber可以是一個(gè)代表著屬性名的字符串或者是一個(gè)代表著數(shù)組索引的數(shù)值表達(dá)式,而objectName則是一個(gè)對(duì)象名。

    下面的例子是?in?操作的常見(jiàn)用法。

    // Arrays var trees = new Array("redwood", "bay", "cedar", "oak", "maple"); 0 in trees; // returns true 3 in trees; // returns true 6 in trees; // returns false "bay" in trees; // returns false (you must specify the index number,// not the value at that index) "length" in trees; // returns true (length is an Array property)// Predefined objects "PI" in Math; // returns true var myString = new String("coral"); "length" in myString; // returns true// Custom objects var mycar = {make: "Honda", model: "Accord", year: 1998}; "make" in mycar; // returns true "model" in mycar; // returns true

    ?

    左值表達(dá)式

    左值可以作為賦值的目標(biāo)。

    new

    你可以使用new?operator?創(chuàng)建一個(gè)自定義類(lèi)型或者是預(yù)置類(lèi)型的對(duì)象實(shí)例。用法如下:

    var objectName = new objectType([param1, param2, ..., paramN]);

    super

    super?關(guān)鍵字可以用來(lái)調(diào)用一個(gè)對(duì)象父類(lèi)的函數(shù),它在用來(lái)調(diào)用一個(gè)類(lèi)的父類(lèi)的構(gòu)造函數(shù)時(shí)非常有用,比如:

    super([arguments]); // calls the parent constructor. super.functionOnParent([arguments]);

    ?

    擴(kuò)展語(yǔ)句

    擴(kuò)展語(yǔ)句符允許一個(gè)表達(dá)式在原地展開(kāi), 當(dāng)需要多個(gè)參數(shù) (比如函數(shù)調(diào)用時(shí)) 或者多個(gè)值(比如字面量數(shù)組) 。

    例如:現(xiàn)在你有一個(gè)數(shù)組,你想創(chuàng)建一個(gè)新數(shù)組,并將剛才那個(gè)作為它的一部分,用array的字面語(yǔ)法是不夠的,你不得不寫(xiě)一些代碼實(shí)現(xiàn)它,比如用些push,?splice,?concat等等。但是用spread syntax就沒(méi)問(wèn)題了:

    var parts = ['shoulder', 'knees']; var lyrics = ['head', ...parts, 'and', 'toes'];

    類(lèi)似的,擴(kuò)展語(yǔ)句也可以用在函數(shù)調(diào)用的時(shí)候:

    function f(x, y, z) { } var args = [0, 1, 2]; f(...args);

    數(shù)字對(duì)象

    內(nèi)置的Number對(duì)象有一些有關(guān)數(shù)字的常量屬性,如最大值、不是一個(gè)數(shù)字和無(wú)窮大的。你不能改變這些屬性,但可以按下邊的方式使用它們:

    <span style="color:#333333"><code class="language-html">var biggestNum = Number.MAX_VALUE; var smallestNum = Number.MIN_VALUE; var infiniteNum = Number.POSITIVE_INFINITY; var negInfiniteNum = Number.NEGATIVE_INFINITY; var notANum = Number.NaN;</code></span>

    你永遠(yuǎn)只用從Number對(duì)象引用上邊顯示的屬性,而不是你自己創(chuàng)建的Number對(duì)象的屬性。

    下面的表格匯總了數(shù)字對(duì)象的屬性:

    數(shù)字的屬性

    屬性描述
    Number.MAX_VALUE可表示的最大值
    Number.MIN_VALUE可表示的最小值
    Number.NaN特指”非數(shù)字“
    Number.NEGATIVE_INFINITY特指“負(fù)無(wú)窮”;在溢出時(shí)返回
    Number.POSITIVE_INFINITY特指“正無(wú)窮”;在溢出時(shí)返回
    Number.EPSILON

    表示1和比最接近1且大于1的最小Number之間的差別

    Number.MIN_SAFE_INTEGERJavaScript最小安全整數(shù).
    Number.MAX_SAFE_INTEGERJavaScript最大安全整數(shù).
    數(shù)字的方法方法描述
    Number.parseFloat()把字符串參數(shù)解析成浮點(diǎn)數(shù),
    和全局方法?parseFloat()?作用一致.
    Number.parseInt()

    把字符串解析成特定基數(shù)對(duì)應(yīng)的整型數(shù)字,和全局方法?parseInt()?作用一致.

    Number.isFinite()判斷傳遞的值是否為有限數(shù)字。
    Number.isInteger()判斷傳遞的值是否為整數(shù)。
    Number.isNaN()判斷傳遞的值是否為?NaN. More robust version of the original global?isNaN().
    Number.isSafeInteger()判斷傳遞的值是否為安全整數(shù)。

    數(shù)字的類(lèi)型提供了不同格式的方法以從數(shù)字對(duì)象中檢索信息。以下表格總結(jié)了?數(shù)字類(lèi)型原型上的方法。

    數(shù)字類(lèi)型原型上的一些方法方法描述
    toExponential()返回一個(gè)數(shù)字的指數(shù)形式的字符串,形如:1.23e+2
    toFixed()

    返回指定小數(shù)位數(shù)的表示形式,

    var a=123,b=a.toFixed(2)//b="123.00"

    toPrecision()

    返回一個(gè)指定精度的數(shù)字。如下例子中,a=123中,3會(huì)由于精度限制消失

    var a=123,b=a.toPrecision(2)//b="1.2e+2"


    Math的方法

    方法描述
    abs()絕對(duì)值
    sin(),?cos(),?tan()標(biāo)準(zhǔn)三角函數(shù);參數(shù)為弧度
    asin(),?acos(),?atan(),?atan2()反三角函數(shù); 返回值為弧度
    sinh(),?cosh(),?tanh()雙曲三角函數(shù); 返回值為弧度.
    asinh(),?acosh(),?atanh()反雙曲三角函數(shù);返回值為弧度.

    pow(),?exp(),?expm1(),?log10(),?log1p(),?log2()

    指數(shù)與對(duì)數(shù)函數(shù)
    floor(),?ceil()返回最大/最小整數(shù)小于/大于或等于參數(shù)
    min(),?max()

    ?

    返回一個(gè)以逗號(hào)間隔的數(shù)字參數(shù)列表中的較小或較大值(分別地)

    random()返回0和1之間的隨機(jī)數(shù)。
    round(),?fround(),?trunc(),四舍五入和截?cái)嗪瘮?shù)
    sqrt(),?cbrt(),?hypot()

    平方根,立方根,平方參數(shù)的和的平方根?

    兩個(gè)參數(shù)平方和的平方根

    sign()數(shù)字的符號(hào), 說(shuō)明數(shù)字是否為正、負(fù)、零。
    clz32(),
    imul()

    在32位2進(jìn)制表示中,開(kāi)頭的0的數(shù)量.

    返回傳入的兩個(gè)參數(shù)相乘結(jié)果的類(lèi)C的32位表現(xiàn)形式

    和其他對(duì)象不同,你不能夠創(chuàng)建一個(gè)自己的Math對(duì)象。你只能使用內(nèi)置的Math對(duì)象。

    ?


    日期對(duì)象

    JavaScript沒(méi)有日期數(shù)據(jù)類(lèi)型。但是你可以在你的程序里使用?Date?對(duì)象和其方法來(lái)處理日期和時(shí)間。Date對(duì)象有大量的設(shè)置、獲取和操作日期的方法。?它并不含有任何屬性。

    JavaScript 處理日期數(shù)據(jù)類(lèi)似于Java。這兩種語(yǔ)言有許多一樣的處理日期的方法,也都是以1970年1月1日00:00:00以來(lái)的毫秒數(shù)來(lái)儲(chǔ)存數(shù)據(jù)類(lèi)型的。

    Date?對(duì)象的范圍是相對(duì)距離 UTC 1970年1月1日 的前后 100,000,000 天。

    創(chuàng)建一個(gè)日期對(duì)象:

    <span style="color:#333333"><code class="language-html">var dateObjectName = new Date([parameters]);</code></span>

    這里的 dateObjectName 對(duì)象是所創(chuàng)建的Date對(duì)象的一個(gè)名字,它可以成為一個(gè)新的對(duì)象或者已存在的其他對(duì)象的一個(gè)屬性。

    不使用?new?關(guān)鍵字來(lái)調(diào)用Date對(duì)象將返回當(dāng)前時(shí)間和日期的字符串

    前邊的語(yǔ)法中的參數(shù)(parameters)可以是一下任何一種:

    • 無(wú)參數(shù) : 創(chuàng)建今天的日期和時(shí)間,例如:?today = new Date();.
    • 一個(gè)符合以下格式的表示日期的字符串: "月 日, 年?時(shí):分:秒." 例如:?var Xmas95 = new Date("December 25, 1995 13:30:00")。如果你省略時(shí)、分、秒,那么他們的值將被設(shè)置為0。
    • 一個(gè)年,月,日的整型值的集合,例如:?var Xmas95 = new Date(1995, 11, 25)。
    • 一個(gè)年,月,日,時(shí),分,秒的集合,例如:?var Xmas95 = new Date(1995, 11, 25, 9, 30, 0);.

    Date對(duì)象的方法

    處理日期時(shí)間的Date對(duì)象方法可分為以下幾類(lèi):

    • "set" 方法, 用于設(shè)置Date對(duì)象的日期和時(shí)間的值。
    • "get" 方法,用于獲取Date對(duì)象的日期和時(shí)間的值。
    • "to" 方法,用于返回Date對(duì)象的字符串格式的值。
    • parse 和UTC 方法, 用于解析Date字符串。

    通過(guò)“get”和“set”方法,你可以分別設(shè)置和獲取秒,分,時(shí),日,星期,月份,年。這里有個(gè)getDay方法可以返回星期,但是沒(méi)有相應(yīng)的setDay方法用來(lái)設(shè)置星期,因?yàn)樾瞧谑亲詣?dòng)設(shè)置的。這些方法用整數(shù)來(lái)代表以下這些值:

    • 秒,分:?0 至?59
    • 時(shí):?0 至?23
    • 星期:?0 (周日) 至?6 (周六)
    • 日期:1 至?31?
    • 月份:?0 (一月) to 11 (十二月)
    • 年份:?從1900開(kāi)始的年數(shù)

    例如, 假設(shè)你定義了如下日期:

    var Xmas95 = new Date("December 25, 1995");

    Then?Xmas95.getMonth()?返回 11, and?Xmas95.getFullYear()?返回 1995.

    getTime?和?setTime?方法對(duì)于比較日期是非常有用的。getTime方法返回從1970年1月1日00:00:00的毫秒數(shù)。

    例如,以下代碼展示了今年剩下的天數(shù):

    var today = new Date(); var endYear = new Date(1995, 11, 31, 23, 59, 59, 999); // 設(shè)置日和月,注意,月份是0-11 endYear.setFullYear(today.getFullYear()); // 把年設(shè)置為今年 var msPerDay = 24 * 60 * 60 * 1000; // 每天的毫秒數(shù) var daysLeft = (endYear.getTime() - today.getTime()) / msPerDay; var daysLeft = Math.round(daysLeft); //返回今年剩下的天數(shù)

    這個(gè)例子中,創(chuàng)建了一個(gè)包含今天的日期的Date對(duì)象,并命名為today,然后創(chuàng)建了一個(gè)名為endYear的Date對(duì)象,并把年份設(shè)置為當(dāng)前年份,接著使用每天的毫秒數(shù)和getTime分別獲取今天和年底的毫秒數(shù),計(jì)算出了今天到年底的天數(shù),最后四舍五入得到今年剩下的天數(shù)。

    parse方法對(duì)于從日期字符串賦值給現(xiàn)有的Date對(duì)象很有用,例如:以下代碼使用parse和setTime分配了一個(gè)日期值給IPOdate對(duì)象:

    var IPOdate = new Date(); IPOdate.setTime(Date.parse("Aug 9, 1995"));

    例子:

    在下邊的例子中,JSClock()函數(shù)返回了用數(shù)字時(shí)鐘格式的時(shí)間:

    function JSClock() {var time = new Date();var hour = time.getHours();var minute = time.getMinutes();var second = time.getSeconds();var temp = "" + ((hour > 12) ? hour - 12 : hour);if (hour == 0)temp = "12";temp += ((minute < 10) ? ":0" : ":") + minute;temp += ((second < 10) ? ":0" : ":") + second;temp += (hour >= 12) ? " P.M." : " A.M.";return temp; }

    JSClock函數(shù)首先創(chuàng)建了一個(gè)叫做time的新的Date對(duì)象,因?yàn)闆](méi)有參數(shù),所以time代表了當(dāng)前日期和時(shí)間。然后調(diào)用了getHours,?getMinutes以及getSeconds方法把當(dāng)前的時(shí)分秒分別賦值給了hour,?minute,second。

    接下來(lái)的4句在time的基礎(chǔ)上創(chuàng)建了一個(gè)字符串,第一句創(chuàng)建了一個(gè)變量temp,并通過(guò)一個(gè)條件表達(dá)式進(jìn)行了賦值,如果小時(shí)大于12,就為?(hour - 12), 其他情況就為 hour, 除非 hour 為?0, 這種情況下,它會(huì)變成 12.

    接下來(lái)的語(yǔ)句拼接了minute的值到temp后。如果minute小于10,條件表達(dá)式就會(huì)在minute前邊加個(gè)0,其他情況下加一個(gè)分號(hào)。然后按同樣的方式在temp后拼接上了秒。

    最后,如果hour是12或者更大,條件表達(dá)式會(huì)在temp后拼接"P.M.",否則拼接"A.M." 。

    ?


    國(guó)際化轉(zhuǎn)換時(shí)間及日期(Intl.DateTimeFormat是根據(jù)語(yǔ)言來(lái)格式化日期和時(shí)間的對(duì)象的構(gòu)造器)

    國(guó)際化數(shù)字轉(zhuǎn)換(Intl.NumberFormat是對(duì)語(yǔ)言敏感的格式化數(shù)字類(lèi)的構(gòu)造器類(lèi)

    字符串


    String對(duì)象方法

    方法 描述 charAt,?charCodeAt,?codePointAt 返回字符串指定位置的字符或者字符編碼。 indexOf,?lastIndexOf 分別返回字符串中指定子串的位置或最后位置。 startsWith,?endsWith,?includes 返回字符串是否以指定字符串開(kāi)始、結(jié)束或包含指定字符串。 concat 連接兩個(gè)字符串并返回新的字符串。 fromCharCode,?fromCodePoint 從指定的Unicode值序列構(gòu)造一個(gè)字符串。這是一個(gè)String類(lèi)方法,不是實(shí)例方法。 split 通過(guò)將字符串分離成一個(gè)個(gè)子串來(lái)把一個(gè)String對(duì)象分裂到一個(gè)字符串?dāng)?shù)組中。 slice 從一個(gè)字符串提取片段并作為新字符串返回。 substring,?substr 分別通過(guò)指定起始和結(jié)束位置,起始位置和長(zhǎng)度來(lái)返回字符串的指定子集。 match,?replace,?search 通過(guò)正則表達(dá)式來(lái)工作. toLowerCase,?toUpperCase

    分別返回字符串的小寫(xiě)表示和大寫(xiě)表示。

    normalize 按照指定的一種 Unicode 正規(guī)形式將當(dāng)前字符串正規(guī)化。 repeat 將字符串內(nèi)容重復(fù)指定次數(shù)后返回。 trim 去掉字符串開(kāi)頭和結(jié)尾的空白字符。


    多行模板字符串

    模板字符串是一種允許內(nèi)嵌表達(dá)式的String字面值. 可以用它實(shí)現(xiàn)多行字符串或者字符串內(nèi)插等特性.

    模板字符串使用反勾號(hào) (` `) (grave accent) 包裹內(nèi)容而不是單引號(hào)或雙引號(hào). 模板字符串可以包含占位符. 占位符用美元符號(hào)和花括號(hào)標(biāo)識(shí) (${expression}).

    多行

    源代碼中插入的任何新行開(kāi)始字符都作為模板字符串的內(nèi)容. 使用一般的字符串時(shí), 為了創(chuàng)建多行的字符串不得不用如下語(yǔ)法:

    console.log("string text line 1\n\ string text line 2"); // "string text line 1 // string text line 2"

    為了實(shí)現(xiàn)同樣效果的多行字符串, 現(xiàn)在可以寫(xiě)成如下形式:

    console.log(`string text line 1 string text line 2`); // "string text line 1 // string text line 2"

    嵌入表達(dá)式

    為了在一般的字符串中嵌入表達(dá)式, 需要使用如下語(yǔ)法:

    var a = 5; var b = 10; console.log("Fifteen is " + (a + b) + " and\nnot " + (2 * a + b) + "."); // "Fifteen is 15 and // not 20."

    現(xiàn)在, 使用模板字符串, 可以使用語(yǔ)法糖讓類(lèi)似功能的實(shí)現(xiàn)代碼更具可讀性:

    var a = 5; var b = 10; console.log(`Fifteen is ${a + b} and\nnot ${2 * a + b}.`); // "Fifteen is 15 and // not 20."

    更多信息, 請(qǐng)閱讀?JavaScript reference?中的?Template strings。


    索引集合類(lèi) (Indexed collections)

    ?

    數(shù)組的方法(array methods)

    Array?對(duì)象具有下列方法:

    concat()?連接兩個(gè)數(shù)組并返回一個(gè)新的數(shù)組。

    var myArray = new Array("1", "2", "3"); myArray = myArray.concat("a", "b", "c"); // myArray is now ["1", "2", "3", "a", "b", "c"]

    join(deliminator = ',')?將數(shù)組的所有元素連接成一個(gè)字符串。

    var myArray = new Array("Wind", "Rain", "Fire"); var list = myArray.join(" - "); // list is "Wind - Rain - Fire"

    push()?在數(shù)組末尾添加一個(gè)或多個(gè)元素,并返回?cái)?shù)組操作后的長(zhǎng)度。

    var myArray = new Array("1", "2"); myArray.push("3"); // myArray is now ["1", "2", "3"]

    pop()?從數(shù)組移出最后一個(gè)元素,并返回該元素。

    var myArray = new Array("1", "2", "3"); var last = myArray.pop(); // myArray is now ["1", "2"], last = "3"

    shift()?從數(shù)組移出第一個(gè)元素,并返回該元素。

    var myArray = new Array ("1", "2", "3"); var first = myArray.shift(); // myArray is now ["2", "3"], first is "1"

    unshift()?在數(shù)組開(kāi)頭添加一個(gè)或多個(gè)元素,并返回?cái)?shù)組的新長(zhǎng)度。

    var myArray = new Array ("1", "2", "3"); myArray.unshift("4", "5"); // myArray becomes ["4", "5", "1", "2", "3"]

    slice(start_index, upto_index)?從數(shù)組提取一個(gè)片段,并作為一個(gè)新數(shù)組返回。

    var myArray = new Array ("a", "b", "c", "d", "e"); myArray = myArray.slice(1, 4); // starts at index 1 and extracts all elements// until index 3, returning [ "b", "c", "d"]

    splice(index, count_to_remove, addElement1, addElement2, ...)從數(shù)組移出一些元素,(可選)并替換它們。

    var myArray = new Array ("1", "2", "3", "4", "5"); myArray.splice(1, 3, "a", "b", "c", "d"); // myArray is now ["1", "a", "b", "c", "d", "5"] // This code started at index one (or where the "2" was), // removed 3 elements there, and then inserted all consecutive // elements in its place.

    reverse()?顛倒數(shù)組元素的順序:第一個(gè)變成最后一個(gè),最后一個(gè)變成第一個(gè)。

    var myArray = new Array ("1", "2", "3"); myArray.reverse(); // transposes the array so that myArray = [ "3", "2", "1" ]

    sort()?給數(shù)組元素排序。

    var myArray = new Array("Wind", "Rain", "Fire"); myArray.sort(); // sorts the array so that myArray = [ "Fire", "Rain", "Wind" ]

    sort()?也可以帶一個(gè)回調(diào)函數(shù)來(lái)決定怎么比較數(shù)組元素。這個(gè)回調(diào)函數(shù)比較兩個(gè)值,并返回3個(gè)值中的一個(gè):

    例如,下面的代碼通過(guò)字符串的最后一個(gè)字母進(jìn)行排序:

    var sortFn = function(a, b){if (a[a.length - 1] < b[b.length - 1]) return -1;if (a[a.length - 1] > b[b.length - 1]) return 1;if (a[a.length - 1] == b[b.length - 1]) return 0; } myArray.sort(sortFn); // sorts the array so that myArray = ["Wind","Fire","Rain"]
    • 如果 a 小于 b ,返回 -1(或任何負(fù)數(shù))
    • 如果?a?大于?b?,返回 1 (或任何正數(shù))
    • 如果?a?和?b?相等,返回?0。

    indexOf(searchElement[, fromIndex])?在數(shù)組中搜索searchElement?并返回第一個(gè)匹配的索引。

    var a = ['a', 'b', 'a', 'b', 'a']; console.log(a.indexOf('b')); // logs 1 // Now try again, starting from after the last match console.log(a.indexOf('b', 2)); // logs 3 console.log(a.indexOf('z')); // logs -1, because 'z' was not found

    lastIndexOf(searchElement[, fromIndex])?和?indexOf 差不多,但這是從結(jié)尾開(kāi)始,并且是反向搜索。

    var a = ['a', 'b', 'c', 'd', 'a', 'b']; console.log(a.lastIndexOf('b')); // logs 5 // Now try again, starting from before the last match console.log(a.lastIndexOf('b', 4)); // logs 1 console.log(a.lastIndexOf('z')); // logs -1

    forEach(callback[, thisObject])?在數(shù)組每個(gè)元素項(xiàng)上執(zhí)行callback。

    var a = ['a', 'b', 'c']; a.forEach(function(element) { console.log(element);} ); // logs each item in turn

    map(callback[, thisObject])?在數(shù)組的每個(gè)單元項(xiàng)上執(zhí)行callback函數(shù),并把返回包含回調(diào)函數(shù)返回值的新數(shù)組(譯者注:也就是遍歷數(shù)組,并通過(guò)callback對(duì)數(shù)組元素進(jìn)行操作,并將所有操作結(jié)果放入數(shù)組中并返回該數(shù)組)。

    var a1 = ['a', 'b', 'c']; var a2 = a1.map(function(item) { return item.toUpperCase(); }); console.log(a2); // logs A,B,C

    filter(callback[, thisObject])?返回一個(gè)包含所有在回調(diào)函數(shù)上返回為true的元素的新數(shù)組(譯者注:callback在這里擔(dān)任的是過(guò)濾器的角色,當(dāng)元素符合條件,過(guò)濾器就返回true,而filter則會(huì)返回所有符合過(guò)濾條件的元素)。

    var a1 = ['a', 10, 'b', 20, 'c', 30]; var a2 = a1.filter(function(item) { return typeof item == 'number'; }); console.log(a2); // logs 10,20,30

    every(callback[, thisObject])?當(dāng)數(shù)組中每一個(gè)元素在callback上被返回true時(shí)就返回true(譯者注:同上,every其實(shí)類(lèi)似filter,只不過(guò)它的功能是判斷是不是數(shù)組中的所有元素都符合條件,并且返回的是布爾值)。

    function isNumber(value){return typeof value == 'number'; } var a1 = [1, 2, 3]; console.log(a1.every(isNumber)); // logs true var a2 = [1, '2', 3]; console.log(a2.every(isNumber)); // logs false

    some(callback[, thisObject])?只要數(shù)組中有一項(xiàng)在callback上被返回true,就返回true(譯者注:同上,類(lèi)似every,不過(guò)前者要求都符合篩選條件才返回true,后者只要有符合條件的就返回true)。

    function isNumber(value){return typeof value == 'number'; } var a1 = [1, 2, 3]; console.log(a1.some(isNumber)); // logs true var a2 = [1, '2', 3]; console.log(a2.some(isNumber)); // logs true var a3 = ['1', '2', '3']; console.log(a3.some(isNumber)); // logs false

    以上方法都帶一個(gè)被稱(chēng)為迭代方法的的回調(diào)函數(shù),因?yàn)樗麄円阅撤N方式迭代整個(gè)數(shù)組。都有一個(gè)可選的第二參數(shù)?thisObject,如果提供了這個(gè)參數(shù),thisObject?變成回調(diào)函數(shù)內(nèi)部的 this 關(guān)鍵字的值。如果沒(méi)有提供,例如函數(shù)在一個(gè)顯示的對(duì)象上下文外被調(diào)用時(shí),this 將引用全局對(duì)象(window).

    實(shí)際上在調(diào)用回調(diào)函數(shù)時(shí)傳入了3個(gè)參數(shù)。第一個(gè)是當(dāng)前元素項(xiàng)的值,第二個(gè)是它在數(shù)組中的索引,第三個(gè)是數(shù)組本身的一個(gè)引用。?JavaScript 函數(shù)忽略任何沒(méi)有在參數(shù)列表中命名的參數(shù),因此提供一個(gè)只有一個(gè)參數(shù)的回調(diào)函數(shù)是安全的,例如?alert?。

    reduce(callback[, initialValue])?使用回調(diào)函數(shù)?callback(firstValue, secondValue)?把數(shù)組列表計(jì)算成一個(gè)單一值(譯者注:他數(shù)組元素兩兩遞歸處理的方式把數(shù)組計(jì)算成一個(gè)值)

    var a = [10, 20, 30]; var total = a.reduce(function(first, second) { return first + second; }, 0); console.log(total) // Prints 60

    reduceRight(callback[, initalvalue])?和?reduce()相似,但這從最后一個(gè)元素開(kāi)始的。

    reduce?和?reduceRight?是迭代數(shù)組方法中最不被人熟知的兩個(gè)函數(shù).。他們應(yīng)該使用在那些需要把數(shù)組的元素兩兩遞歸處理,并最終計(jì)算成一個(gè)單一結(jié)果的算法。

    使用類(lèi)數(shù)組對(duì)象(array-like objects)

    一些 JavaScript 對(duì)象, 例如?document.getElementsByTagName()?返回的?NodeList?或者函數(shù)內(nèi)部可用的?arguments?對(duì)象,他們表面上看起來(lái),外觀和行為像數(shù)組,但是不共享他們所有的方法。arguments?對(duì)象提供一個(gè)?length?屬性,但是不實(shí)現(xiàn)?forEach()?方法, 例如:

    Array的原生(prototype)方法可以用來(lái)處理類(lèi)似數(shù)組行為的對(duì)象,例如: :

    function printArguments() {Array.prototype.forEach.call(arguments, function(item) {console.log(item);}); }

    Array的常規(guī)方法也可以用于處理字符串,因?yàn)樗峁┝诵蛄性L問(wèn)字符轉(zhuǎn)為數(shù)組的簡(jiǎn)單方法:

    Array.prototype.forEach.call("a string", function(chr) {console.log(chr); });

    數(shù)組和正則表達(dá)式

    當(dāng)一個(gè)數(shù)組作為字符串和正則表達(dá)式的匹配結(jié)果時(shí),該數(shù)組將會(huì)返回相關(guān)匹配信息的屬性和元素。?RegExp.exec(),?String.match()?和?String.split()?的返回值是一個(gè)數(shù)組。?使用數(shù)組和正則表達(dá)式的的更多信息, 請(qǐng)看?Regular Expressions.


    帶鍵的集合

    使用對(duì)象

    對(duì)象模型的細(xì)節(jié)

    繼承與原型鏈

    總結(jié)

    以上是生活随笔為你收集整理的MDN文档基础知识搜集的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。