国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JavaScript的類型小記

lykops / 938人閱讀

摘要:原始類型引用類型中沒有類但是有類型類型分兩種原始類型和引用類型保存對象的引用原始類型的復制是直接復制多個副本互不干擾引用類型中只保存引用對象實例只有一份解除引用使用會觸發自動垃圾回收還提供了種內建類型內建類型可以用來實例化他們也是保存

https://icbd.github.io/wiki/web/2016/10/07/js%E7%B1%BB%E5%9E%8B.html

原始類型 && 引用類型

JavaScript中沒有但是有類型.
類型分兩種--原始類型(string,number,boolean,null,undefined)和引用類型(保存對象的引用).

原始類型的復制是直接復制,多個副本互不干擾.
var a = "haha";
var b = a;

a = "hehe";

console.log(a); //hehe
console.log(b); //haha
引用類型中只保存引用,對象實例只有一份.
var arr = ["haha","hehe"];
var arr2 = arr;
arr.push("heihei");

console.log(arr); //["haha", "hehe", "heihei"]
console.log(arr2); //["haha", "hehe", "heihei"]

解除引用使用null,會觸發自動垃圾回收.

arr = null;

JavaScript還提供了6種內建類型-Object,Array,Function,Date,Error,RegExp.

內建類型可以用new來實例化,他們也是保存對象引用.

判斷類型

typeof鑒別類型.

console.log(typeof true);//"boolean"
console.log(typeof "你好!");//"string"
console.log(typeof 2016);//"number"
console.log(typeof undefined);//"undefined"
console.log(typeof null);//"object" 這個是特例,應該用 n === null 來判定


console.log(typeof [1, 2, 3]);//"object"

var obj = {
    name: "haha",
    age: 123

};
console.log(typeof obj);//"object"

var add = function (a, b) {
    return a + b;
};
console.log(typeof add);//"function"

對于引用類型, 可以用instanceof來判定構造來源.
instanceof可判定繼承, 所有對象都是Object的實例.

var arr = [1, 2, 3, 4];
console.log(arr instanceof Array); //true
console.log(arr instanceof Object); //true

function Person(name) {
    this.name = name;
}
var xiaoMing = new Person("小明");

console.log(xiaoMing instanceof Person); //true
console.log(xiaoMing instanceof Object); //true

console.log(Person instanceof Function); //true
console.log(Person instanceof Object); //true
靈異現象1

在原始類型上調用方法???

var str = "hello world";
console.log(str.toUpperCase());//HELLO WORLD

實際上,js引擎做了些額外工作:

var str = "hello world";
var temporary = new String(str);
var _temporary = temporary.toUpperCase();
temporary = null;

console.log(_temporary);

這里的String叫原始封裝類型.
這個過程叫自動打包,在原始對象的值被讀取的時候進行.

console.log(str instanceof String);// false

instanceof 沒有涉及到str值的讀取,所以不會生成臨時對象,str也就不會被判定為String.

靈異現象2
var f = new Boolean(false);
if (f) {
    console.log("it is true.");
} else {
    console.log("it is false.");
}

// "it is true."

f在這里是一個Boolean的對象,對象總會判為真.即使他的內容是false.

JavaScript的false只有以下幾種:

false
0
""

undefined
null
NaN

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/80636.html

相關文章

  • JavaScript使用小記

    摘要:簡單地說程序就是數據和方法計算機能做的就是計算這個數據可以是字符串各種類型的數值整數小數等類內的屬性根本上是還是的基本數據類型布爾類型的東東為了更加快速地寫出代碼現在的語言都是高層次的抽象即所謂的高級編程語言了高級編程語言中的一些特性如訪問 簡單地說, 程序就是數據和方法, 計算機能做的就是計算, 這個數據可以是: 1.字符串, 2.各種類型的數值(整數, 小數等), 3.Java類內...

    stefan 評論0 收藏0
  • javascript數組小記

    摘要:它們的參數是一個回調函數,所有數組成員依次執行該回調函數,直到找出第一個返回值為的成員,然后方法會返回該成員,返回該成員的位置。 幾乎所有的編程語言都原生支持數組類型,因為數組是最簡單的內存數據結構。 它存儲一系列同一種數據類型的值,但是在javascript里可以在數組里保存不同類型的值,但是我們最好還是要遵守最佳實踐,不要那么做。 創建和初始化,javascript聲明,創建和...

    smartlion 評論0 收藏0
  • JS編譯之 LHS RHS(你不知道JavaScript 小記一)

    摘要:關于兩個專業術語的討論起自對你不知道的一書的閱讀學習。遇到,編譯器會詢問作用域是否已經有一個該名稱的變量存在于同一個作用域的集合中。摘錄來自你不知道的。 JS 編譯之 LHS RHS 一、前言 最近和朋友聊技術的時候,聊到 LHS RHS,我竟然沒聽說過 沒聽說過。。。 于是成功引起了我的好奇心。 關于兩個專業術語的討論起自對《你不知道的JavaScript》一書的閱讀學習。 二、編譯...

    Cristic 評論0 收藏0
  • 父子組件通信爬坑小記

    摘要:的大小寫事件的名字沒有自動化的大小寫轉換,觸發的事件名必須和見提供的事件名完全匹配的情況下才能正常運行。父組件向子組件傳參時,無論何種命名方式,必須使用同一名字進行接收。 kebab-case:短橫線命名法,多個單詞之間使用短橫線-進行連接,單詞全部小寫。如:first-name,user-info,create-order。camelCased:駝峰命名法,第一個單詞小寫,從第二個單...

    wslongchen 評論0 收藏0
  • 前端小白面經小記

    摘要:前端小白最近面試幾家公司,寫點面經分享給大家,同時記錄下自己的缺點以供后期補足,各個公司的開發方向不同,請各位理性看待。直接現場手敲觸發的樣式。數組去重如何實現如果用的話,里面如何寫排序算法。對象何時被修改心態需要調整好,不緊張不匆忙。 前端小白最近面試幾家公司,寫點面經分享給大家,同時記錄下自己的缺點以供后期補足,各個公司的開發方向不同,請各位理性看待。 問題相關 Css 布局方式有...

    FuisonDesign 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<