js中宣告Number的五種方式

2022-05-29 06:18:13 字數 2107 閱讀 9913

**自:

1

doctype html

>

2<

html

>

3<

head

>

4<

meta

charset

="utf-8"

>

5<

title

>js中宣告number的五種方式

title

>

6head

>

7<

body

>

8<

script

>9/*

10方式一:最常見的方式,通過數字字面量方式宣告

11var num = 123;

121.解析變數的值,比如說取出整數部分、小數部分等,因為數字宣告方式還可以為num = .123,num = 123e4等形式

132.對解析出來的值取近似值,比如num = 123.33333333333333...3333333333333333333333333....,

14這個時候就要取近似值了,具體取近似則規則不展開

153.此種方式宣告的變數,只是個簡單的數字字面量,並不是物件(至於為什麼可以在上面呼叫tostring等方法,後文講解)

1617

方式二:偶爾使用方式,大部分情況下是將字串轉成數字

18var num = number(123);

191.此處只是將number當作乙個普通的函式來呼叫,而不是構造方法,因此返回的不是物件,而是乙個簡單的數值

202.本質與方式一相同;相對於方式一的區別在於,需要針對傳入引數的型別,執行不同的型別轉換過程,試圖將引數解析成對應的數值

2122

方式三:很少使用,各神書,包括犀牛書,都將其列入不推薦方式

23var num = new number(123);

241.此處將number作用構造方法呼叫,返回的是number型別的物件,該物件能夠訪問number的原型屬性以及方法;

25這樣說可能有些迷惑,後面會說到

2627

*/28

varnum

=new

number(

123);

29console.log(

typeof

num);

//輸出:object

30console.log(object.prototype.tostring.call(num));

//輸出:[object number]

31/*

323.返回的number型別物件內部的原始值( [[primitivevalue]]),為經過型別轉換後獲得的數字值,具體轉換規則與方式二提到的一致

3334

方式四:神方式,目前還沒見過人使用

35var num = new object(123);

361.傳遞了引數,且引數是乙個數字,則建立並返回乙個number型別的物件 —— 沒錯,其實等同於方式三

372.該number物件的值等於傳入的引數,內部的[[prototype]]屬性指向number.prototype

3839

方式五:更離奇,更詭異

40var num = object(123);

411.當傳入的引數為空、undefined或null時,等同於 new object(param),param為使用者傳入的引數

422.否則,返回乙個物件,至於具體轉換成的物件型別,可參見下表;具體到上面的例子,本質等同於new number(123):

43*/

44/*

45* 不是說字面量方式宣告的只是普通的數值型別,不是物件嗎?但不是物件哪來的tostring方法呼叫?

46* 當使用者通過字面量方式宣告乙個變數,並在該變數上呼叫如tostring等方法,js指令碼引擎會偷偷地建立該變數對應的包裝物件,

47* 並在該物件上呼叫對應的方法;

48* 當呼叫結束,則銷毀該物件;這個過程對於使用者來說是不可見的

49*/

50script

>

51body

>

52html

>

js中的number型別

nan有兩個特點 1 任何涉及nan的操作都會返回nan 這個特點在多步計算中可能有問題 2nan與任何值都不相等,包括它本身,例如下面的 也是返回false alert nan nan 針對nan的這兩個特點,ecmascript定義了isnan 這個函式,該函式接收乙個引數,該引數可以是任意資料...

JS中THIS的五種情況

一 事件繫結 this1 給元素的某個事件行為繫結方法,事件觸發,方法執行,此時方法中的this一般都是當前元素本身 在 中,有乙個button 點我一下 二 普通函式執行 this2 普通函式執行,它裡面的this是誰,取決於方法執行前面是否有 點,有的話,點 前面是誰this就是誰,沒有this...

js中的Number物件操作

把數字轉為字串並保留小數點後x位 var num 3.1415926 console.log typeof num 資料型別為number num num.tofixed 2 保留2位但結果為乙個string型別 console.log typeof num 資料型別為string num pars...