7_JavaScript_函數_對象數組_日期

函數

  1. 基本概念

    • 函數是由事件驅動的或者當它被調用時執行的可重復使用的代碼塊。
    • JavaScript 函數語法:函數就是包裹在花括號中的代碼塊:
    function 函數名()
    {
    這里是要執行的代碼
    }
    
  2. 函數的聲明和調用:

    • 使用了關鍵詞 function來聲明函數
    • 關鍵詞 function 必須是小寫的,并且必須以與函數名稱相同的大小寫來調用函數。
    • 函數本身不會自動運行,只有當調用該函數時,才會執行函數內的代碼。
    • 函數可以通過其名字加上括號中的參數進行調用
    • 可以在某事件發生時直接調用函數(比如當用戶點擊按鈕時),并且可由 JavaScript 在任何位置進行調用。
    • 在調用函數時,您可以向其傳遞值,這些值被稱為參數。帶有參數的函數也被稱為有參函數。
  3. 帶有返回值的函數:

    • 有時,我們會希望函數將值返回調用它的地方。通過使用 return 語句就可以實現。
    • 在使用 return 語句時,函數會停止執行,并返回指定的值。
    • 可以將返回值賦值給一個變量,然后對變量進行操作
    • 當函數遇到第一個return后將終止執行函數后邊的語句,直接跳出函數
  4. arguments 對象:

    • 在函數代碼中,使用特殊對象 arguments存儲函數調用傳遞給該函數的所以參數。
    • 還可以用 arguments 對象檢測函數的參數個數,引用屬性 arguments.length 即可。
    • arguments [0]表示函數的第一個參數,arguments [1]表示函數的第二個參數......
    • 通過arguments可以動態的添加參數。
      return arguments[0];
    <script type="text/javascript">
        function draw() {
        var c=document.getElementById("myCanvas");
        var con=c.getContext("2d");
            for (var i = 0; i < 6; i++) {
                for (var j = 0; j < 6; j++) {
                    con.fillStyle="rgb(212, "+Math.floor(255-11.5*i)+", "+Math.floor(255-11.5*j)+")";
                    con.beginPath();
                    con.arc(20+j*50,20+i*50,15,0,Math.PI*2,true);
                    con.closePath();
                    con.fill();
                }
            }
        }
    </script>
    

對象和數組

對象:Object

  1. JavaScript 中的所有事物都是對象:字符串、數值、數組、函數...
  • 對象是屬性的集合,每個屬性都有名字和值,對象可以通過屬性的名字存取屬性的值。
  • 對象的屬性既可以存放基本數據類型也可以存放其他對象的引用值或者函數的引用值,如果存儲的是函數的的引用值則該屬性稱為方法
  • 對象可以看做帶有屬性和方法的特殊數據類型。
  • 對象包含兩個基本要素:屬性-值,也稱作鍵-值/名-值;當屬性值為方法時也稱作:屬性(字段)和方法(函數)
  • 對象的創建方法
    • 通過new運算符創建
    • new關鍵字可以省略
    • 屬性可以用引號包含也可以不用
  • 可以用點符號訪問對象屬性值也可以通過數組的方式,即用["屬性名稱"]
  • 可以使用delete運算符刪除對象的屬性。
// var person=new Object();
// var person={};
//      person.name="木木";
//      person.age=18;
var person={name:"木木",age:"18"};
document.write(person.name);
document.write(person["age"]);

數組:Array

數組的聲明(創建)方法:
  1. new關鍵字創建空數組
  • new關鍵字創建包含元素的數組
  • new關鍵字創建指定元素個數的數組
  • 也可以使用[]直接創建數組
  • 可以使用length屬性獲取數組的長度;并且可以給一個數組賦值。

數組元素的基本操作程序運行時通常需要讀取數組中的數據,有時候需要對數據進行修改。

  1. 讀取數據:可以使用索引查詢獲取數組元素和添加數組元素
  • 添加數據:使用push方法將新元素添加到數組尾部.

  • 刪除數據:可以使用delete運算符刪除指定的元素。

  • 刪除末尾元素(更新數據)pop()方法:該方法會返回刪除的元素。

  • 刪除頂端的元素 shift方法:

  • 在數組頂端添加元素 unshift方法:返回值為新數組的長度,但不建議使用,IE會出錯。

  • 字符轉換:toString方法將數組表示為字符串。

  • join方法輸出數組元素。(輸出結果會轉換成字符串)

  • 數組逆序reverse:顛倒數組元素的順序;返回值為逆序后的新數組。

    var fruit=new Array('香蕉','蘋果','橘子');
    fruit.push('芒果');
    document.write(fruit+'<br>');
    // delete fruit[0];
    // document.write(fruit.pop()+'<br>');
    // document.write(fruit.shift()+'<br>');
    fruit.unshift(1);
    document.write(typeof fruit[0].toString()+'<br>');
    document.write(fruit.join('-')+'<br>');
    document.write(fruit.reverse());
    
  • 數組排序 sort:

    • 語法 數組名.sort(sortfunction)
    • sortfunction若省略,默認為從按照ASII字符順序進行升序排列
    • sortfunction必須返回:正值、零、負值三者之一。賦值表示第一個值大于第二個值,負值反之,零則相等。
    // var fruit=new Array('5個香蕉','2個蘋果','3個橘子');
    // document.write(fruit.sort()+'<br>');
    var arr=[31,45,52,12,4]
    document.write(arr.sort(sortFun));
    function sortFun(a,b) {
        if (a>b) {
            return 1;
        }else if (a<b) {
            return-1;
        }else {
            return 0;
        }
    }
    
  • 擴充數組 concat:將多個數組的元素合并為一個新的數組。var arr=arr1.concat(arr2);也可以寫多個元素

  • splice方法:刪除、替換、插入元素(返回值是切取得元素)

    • 會更改原數組
    • 第一參數為起始位置索引
    • 第二參數為切取元素個數
    • 第三個參數為插入元素,可選項
  • 切取數組的一段元素 slice:

    • 切取部分作為新數組返回,不會對原數組改變。
    • 第一參數為起始位置索引
    • 第二參數為結束位置索引,注意區分splice
    • 若省略第二個參數則直接切取到結尾
    var arr=new Array('元素0','元素1','元素2','元素3','元素4','元素5','元素6');
    document.write(arr+'</br>')
    var arr1=arr.splice(1,4)
    document.write(arr+'</br>')
    document.write(arr1+'</br></br>')


    var arr=new Array('元素0','元素1','元素2','元素3','元素4','元素5','元素6');
    document.write(arr+'</br>')
    var arr1=arr.slice(1,4)
    document.write(arr+'</br>')
    document.write(arr1+'</br>')

in 運算符和 for in循環語句

  1. in 運算符用來檢測對象中是否具有某一特定屬性,通常用于遍歷集合中的所有元素。
  • 通常我們使用for/in 語句循環遍歷對象的屬性,在數組中可以遍歷數組中的所有元素。
階乘
function test(n) {
    if (n==1) {
        return 1;
    }else {
        return n*test(n-1);
    }
}
document.write(test(5));
輸出1000--9999直接的所有回文
var arr=new Array();
function test() {
    for (var i = 1000; i < 9999; i++) {
        var gw=i%10;
        var sw=Math.floor(i/10)%10;
        var bw=Math.floor(i/100)%10;
        var qw=Math.floor(i/1000)%10;
        if (gw==qw&&sw==bw) {
            arr.push(i);
        }
    }
}
test();
document.write(arr);

日期

創建Date對象四種方法:

  1. var date= new Date();
  • 無參數的情況下返回值為當前時間。
  • 不同瀏覽器顯示的時間格式會有細微差異
  • var date = new Date(milliseconds);
  • var date = new Date(dateString);
  • var date = new Date(year, month, day, hours, minutes, seconds, milliseconds);

時間相關的兩個方法(這兩種方法了解一下就可以了):

  1. Date.parse()返回1970年1月1日午夜到指定日期(字符串)的毫秒數。
  • Date.parse()參數支持的時間格式如下:

    • 1/24/2016;
    • January 24,2016;
    • Sun Jan 24 2016 10:10:10 GMT+0800
    • 格式不正確會返回NaN
  • Date.UTC()根據世界時返回 1970 年 1 月 1 日 到指定日期的毫秒數。

  • Date.UTC()參數支持的時間格式如下:

    • 2016,1(前兩個參數是必須的);
    • 2016,1,24,10,10,10
    • 數值含義為年/月/日/時/分/秒;格式不正確會返回NaN
    • 月份和日期是從0開始
    • 注意UTC時間和時區的換算,如東八區和標準時間是八小時時差
    var date = new Date();
    // var date = new Date(1435929394854);
    // var date = new Date('2016,12,13');
    // var date = new Date(2012,12,13,16,10,10);
    document.write(Date.parse('1/11/2011')+'<br>');
    

Date實例相關的字符串表示方法(了解即可):

  1. toSting()獲取Date實例的字符串表示
  • toDateSting()獲取Dater的日期部分字符串表示
  • toTimeSting()獲取Dater的時間部分字符串表示
  • toLocaleString() 據本地時間格式,把 Date 對象轉換為字符串。
  • toLocaleDateString() 根據本地時間格式,把 Date 對象的日期部分轉換為字符串。
  • toLocaleTimeString() 根據本地時間格式,把 Date 對象的時間部分轉換為字符串。
  • valueOf():轉換為毫秒數
var date = new Date();
document.write(date.toDateString());

Date 對象方法

通過使用針對日期對象的方法,我們可以很容易地對日期進行操作。

  1. getDate() 從 Date 對象返回一個月中的某一天 (1 ~ 31)。
  • getDay() 從 Date 對象返回一周中的某一天 (0 ~ 6)。
  • getFullYear() 從 Date 對象以四位數字返回年份。
  • getHours() 返回 Date 對象的小時 (0 ~ 23)。
  • getMilliseconds() 返回 Date 對象的毫秒(0 ~ 999)。
  • getMinutes() 返回 Date 對象的分鐘 (0 ~ 59)。
  • getMonth() 從 Date 對象返回月份 (0 ~ 11)。
  • getSeconds() 返回 Date 對象的秒數 (0 ~ 59)。
  • getTime() 返回 1970 年 1 月 1 日至今的毫秒數。
  • getTimezoneOffset() 返回本地時間與格林威治標準時間 (GMT) 的分鐘差
  • getUTCDate() 根據世界時從 Date 對象返回月中的一天 (1 ~ 31)。
  • getUTCDay() 根據世界時從 Date 對象返回周中的一天 (0 ~ 6)。
  • getUTCFullYear() 根據世界時從 Date 對象返回四位數的年份。
  • getUTCHours() 根據世界時返回 Date 對象的小時 (0 ~ 23)。
  • getUTCMilliseconds() 根據世界時返回 Date 對象的毫秒(0 ~ 999)。
  • getUTCMinutes() 根據世界時返回 Date 對象的分鐘 (0 ~ 59)。
  • getUTCMonth() 根據世界時從 Date 對象返回月份 (0 ~ 11)。
  • getUTCSeconds() 根據世界時返回 Date 對象的秒鐘 (0 ~ 59)。
  • parse() 返回1970年1月1日午夜到指定日期(字符串)的毫秒數。
  • setDate() 設置 Date 對象中月的某一天 (1 ~ 31)。
  • setFullYear() 設置 Date 對象中的年份(四位數字)。
  • setHours() 設置 Date 對象中的小時 (0 ~ 23)。
  • setMilliseconds() 設置 Date 對象中的毫秒 (0 ~ 999)。
  • setMinutes() 設置 Date 對象中的分鐘 (0 ~ 59)。
  • setMonth() 設置 Date 對象中月份 (0 ~ 11)。
  • setSeconds() 設置 Date 對象中的秒鐘 (0 ~ 59)。
  • setTime() setTime() 方法以毫秒設置 Date 對象。
  • setUTCDate() 根據世界時設置 Date 對象中月份的一天 (1 ~ 31)。
  • setUTCFullYear() 根據世界時設置 Date 對象中的年份(四位數字)。
  • setUTCHours() 根據世界時設置 Date 對象中的小時 (0 ~ 23)。
  • setUTCMilliseconds() 根據世界時設置 Date 對象中的毫秒 (0 ~ 999)。
  • setUTCMinutes() 根據世界時設置 Date 對象中的分鐘 (0 ~ 59)。
  • setUTCMonth() 根據世界時設置 Date 對象中的月份 (0 ~ 11)。
  • setUTCSeconds() setUTCSeconds() 方法用于根據世界時 (UTC) 設置指定時間的秒字段。
  • toDateString() 把 Date 對象的日期部分轉換為字符串。
  • toGMTString() 已廢棄。請使用 toUTCString() 方法代替。
  • toISOString() 使用 ISO 標準返回字符串的日期格式。
  • toJSON() 以 JSON 數據格式返回日期字符串。
  • toLocaleDateString() 根據本地時間格式,把 Date 對象的日期部分轉換為字符串。
  • toLocaleTimeString() 根據本地時間格式,把 Date 對象的時間部分轉換為字符串。
  • toLocaleString() 據本地時間格式,把 Date 對象轉換為字符串。
  • toString() 把 Date 對象轉換為字符串。
  • toTimeString() 把 Date 對象的時間部分轉換為字符串。
  • toUTCString() 根據世界時,把 Date 對象轉換為字符串。
  • UTC() 根據世界時返回 1970 年 1 月 1 日 到指定日期的毫秒數。
  • valueOf() 返回 Date 對象的原始值。
var date = new Date();
date.setFullYear(2000);
document.write(date.getDate()+'<br>');
document.write(date.getFullYear()+'<br>');
document.write();
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,527評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,687評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,640評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,957評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,682評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,011評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,009評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,183評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,714評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,435評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,665評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,148評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,838評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,251評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,588評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,379評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,627評論 2 380

推薦閱讀更多精彩內容

  • 第5章 引用類型(返回首頁) 本章內容 使用對象 創建并操作數組 理解基本的JavaScript類型 使用基本類型...
    大學一百閱讀 3,264評論 0 4
  • php usleep() 函數延遲代碼執行若干微秒。 unpack() 函數從二進制字符串對數據進行解包。 uni...
    思夢PHP閱讀 2,001評論 1 24
  • PHP常用函數大全 usleep() 函數延遲代碼執行若干微秒。 unpack() 函數從二進制字符串對數據進行解...
    上街買菜丶迷倒老太閱讀 1,381評論 0 20
  • 曾經熟悉的面孔如今已經變得越來越模糊,可是與你在一起的感動卻永遠無法隨時間而磨滅。曾經以為時間可以帶走一切,撫平心...
    z馨閱讀 459評論 6 3
  • 在這樣一個看臉的社會,長得好看有著巨大的優勢。但現在,帥哥美女顯然已經不是長相的問題,而演變成了性別問題。在這樣的...
    pena_shan閱讀 623評論 0 1