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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2017.3.9 对象 函数

發布時間:2025/5/22 编程问答 68 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2017.3.9 对象 函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 Javascript擁有七種數據類型,其中分為兩類。原始數據和復雜數據類型。原始數據類型:包括 字符串,數組,數字,布爾值,Null,Undefined。復雜數據類型:包括 對象。

對象是Javascript的核心概念,也是最重要的數據類型。Javascript所有數據都可以視為對象。都可以使用內置的方法。但是除了兩個例外,就是Null和Undefined。因此就會有例如length的屬性,如false.length,'1abc'.length 都不報錯。實際情況是通過包裝對象的方式變換,例如 str是string(基本類型),本身是沒有方法的。
當嘗試把基本類型的str當做對象一樣訪問時,例如:str.length;
解釋器會創建一個臨時的包裝對象,偽代碼:
[[tempObj]] = new String(str);
[[tempObj]].length; // 返回具體的length;
delete [[tempObj]]; // 銷毀臨時對象
重復訪問str.length會重復創建這個臨時對象。
所以str.t賦值可以成功(臨時對象賦值),但再次訪問str.t返回undefined(另外的臨時對象的值),因為每次創建的臨時包裝對象都是不同的。

任何對象都繼承Object.prototype,所以都有Object.prototype中的方法

?

2 舉例表示 (字符串類型)‘123’ 并不是 String(引用)類型的實例

3 創建對象的方法有

(1) var o1 = {};
(2) var o2 = new Object();
(3) var o3 = Object.create(null); null表明不繼承任何對象,
  如要繼承某對象oT,則要改為 var o3 = Object.create(oT.prototype) 此時查看o3.__proto__ == oT.prototype ,表明o3 繼承了oT;因此Object.create可表示克隆一份oT.prototype的內容賦值給o3;


4 對象的所有鍵名都是字符串,加不加雙引號都可以。對象的鍵值如果是英文,則必須加引號,否則會當成變量處理。如果是數字,加了引號則當成字符串處理,不加引號當成數字類型處理。

5 Javascript使用delete來刪除屬性。delete操作符只能用來刪除對象本身的屬性,而不能用于刪除繼承自原型的屬性。delele也可以用于刪除一個不存在的屬性,不過也不會報錯,會返回true

6 ?for...in循環用來遍歷一個對象的所有屬性。(es 6 中用強大的for-of循環

                          for (var value of myArray) {console.log(value);}

7 ?查看一個對象本身的所有屬性,可以使用Object.keys 方法。

8 ?JavaScript中的傳值分為兩種方式,按值傳遞 與 按引用傳遞。基本類型都是按值傳遞,引用類型是按引用傳遞。在函數中用的較為明顯。

  a 基本類型按值  

    var a = 1;

    function fn(num) {
      num = 5;
    }
    fn(a);
    console.log(a); //1

  b 引用類型按引用

    var arr = [2, 5];

    function fn(Arr) {
      Arr[0] = 3;
    }
    fn(arr);
    console.log(arr[0]); //3

    注意,如果函數內部修改的,不是參數對象的某個屬性,而是替換掉整個參數,這時不會影響到原始值。

    var arr = [2, 3, 5];

    function fn(Arr) {
      Arr = [1, 2, 3];
    }
    fn(arr);
    console.log(arr); // [2,3,5]

上面的問題可按照函數執行時的AO(VO)對象考慮,

AO = {

  arguments:{

    Arr:傳來的為arr,但是后來替換為了[1,2,3],所以不影響變量arr

}

?

?

函數:

1 ? ? 如果有同名參數,則取最后面出現的那個值,如果未提供最后一個參數的值,則取值變成undefined。

function keith(a, a) {
  return a;
}

console.log(keith(1, 3)); ?//3
console.log(keith(1)); ? //undefined

此時arguments.length同樣是2,但是變量a取第二個

?

http://www.cnblogs.com/Uncle-Keith/p/5776159.html
http://www.cnblogs.com/Uncle-Keith/p/5792485.html

?

轉載于:https://www.cnblogs.com/FineDay/articles/6525331.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的2017.3.9 对象 函数的全部內容,希望文章能夠幫你解決所遇到的問題。

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