整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          JavaScript 數字

          avaScript 數字

          • JS 字符串方法
          • JS 數字方法

          JavaScript 只有一種數值類型。

          書寫數值時帶不帶小數點均可。

          JavaScript 數值

          書寫 JavaScript 數值既可以帶小數點,也可以不帶:

          實例

          var x = 3.14;    // 帶小數點的數值
          var y = 3;       // 不帶小數點的數值
          

          親自試一試

          超大或超小的數可通過科學計數法來寫:

          實例

          var x = 123e5;    // 12300000
          var y = 123e-5;   // 0.00123
          

          JavaScript 數值始終是 64 位的浮點數

          與許多其他編程語言不同,JavaScript 不會定義不同類型的數,比如整數、短的、長的、浮點的等等。

          JavaScript 數值始終以雙精度浮點數來存儲,根據國際 IEEE 754 標準。

          此格式用 64 位存儲數值,其中 0 到 51 存儲數字(片段),52 到 62 存儲指數,63 位存儲符號:

          值(aka Fraction/Mantissa)指數符號52 bits(0 - 51)11 bits (52 - 62)1 bit (63)

          精度

          整數(不使用指數或科學計數法)會被精確到 15 位。

          實例

          var x = 999999999999999;   // x 將是 999999999999999
          var y = 9999999999999999;  // y 將是 10000000000000000
          

          小數的最大數是 17 位,但是浮點的算數并不總是 100% 精準:

          實例

          var x = 0.2 + 0.1;         // x 將是 0.30000000000000004

          使用乘除法有助于解決上面的問題:

          實例

          var x = (0.2 * 10 + 0.1 * 10) / 10;       // x 將是 0.3

          親自試一試

          數字和字符串相加

          警告!!

          JavaScript 的加法和級聯(concatenation)都使用 + 運算符。

          數字用加法。字符串用級聯。

          如果您對兩個數相加,結果將是一個數:

          實例

          var x = 10;
          var y = 20;
          var z = x + y;           // z 將是 30(一個數)
          

          如果對兩個字符串相加,結果將是一個字符串的級聯:

          實例

          var x = "10";
          var y = "20";
          var z = x + y;           // z 將是 1020(字符串)
          

          如果您對一個數和一個字符串相加,結果也是字符串級聯:

          實例

          var x = 10;
          var y = "20";
          var z = x + y;           // z 將是 1020(一個字符串)
          

          如果您對一個字符串和一個數字相加,結果也是字符串級聯:

          實例

          var x = "10";
          var y = 20;
          var z = x + y;           // z 將是 1020(字符串)
          

          常見的錯誤是認為結果應該是 30:

          實例

          var x = 10;
          var y = 20;
          var z = "The result is: " + x + y;
          

          親自試一試

          常見的錯誤是認為結果應該是 102030:

          實例

          var x = 10;
          var y = 20;
          var z = "30";
          var result = x + y + z;
          

          JavaScript 從左向右進行編譯。

          因為 x 和 y 都是數,10 + 20 將被相加。

          因為 z 是字符串,30 + "30" 被級聯。

          數字字符串

          JavaScript 字符串可以擁有數字內容:

          var x = 100;         // x 是數字
          
          var y = "100";       // y 是字符串
          

          在所有數字運算中,JavaScript 會嘗試將字符串轉換為數字:

          該例如此運行:

          var x = "100";
          var y = "10";
          var z = x / y;       // z 將是 10
          

          該例也將如此運行:

          var x = "100";
          var y = "10";
          var z = x * y;       // z 將是 1000
          

          該例如此運行:

          var x = "100";
          var y = "10";
          var z = x - y;       // z 將是 90
          

          但是該例不會如上例般運行:

          var x = "100";
          var y = "10";
          var z = x + y;       // z 不會是 110(而是 10010)
          

          在最后一個例子中,JavaScript 用 + 運算符對字符串進行了級聯。

          NaN - 非數值

          NaN 屬于 JavaScript 保留詞,指示某個數不是合法數。

          嘗試用一個非數字字符串進行除法會得到 NaN(Not a Number):

          實例

          var x = 100 / "Apple";  // x 將是 NaN(Not a Number)

          不過,假如字符串包含數值,則結果將是數:

          實例

          var x = 100 / "10";     // x 將是 10

          您可使用全局 JavaScript 函數 isNaN() 來確定某個值是否是數:

          實例

          var x = 100 / "Apple";
          isNaN(x);               // 返回 true,因為 x 不是數
          

          要小心 NaN。假如您在數學運算中使用了 NaN,則結果也將是 NaN:

          實例

          var x = NaN;
          var y = 5;
          var z = x + y;         // z 將是 NaN
          

          結果也許是串連接:

          實例

          var x = NaN;
          var y = "5";
          var z = x + y;         // z 將是 NaN5
          

          NaN 是數,typeof NaN 返回 number:

          實例

          typeof NaN;             // 返回 "number"

          親自試一試

          Infinity

          Infinity (或 -Infinity)是 JavaScript 在計算數時超出最大可能數范圍時返回的值。

          實例

          var myNumber = 2;
          
          while (myNumber != Infinity) {          // 執行直到 Infinity
              myNumber = myNumber * myNumber;
          }
          

          除以 0(零)也會生成 Infinity:

          實例

          var x =  2 / 0;          // x 將是 Infinity
          var y = -2 / 0;          // y 將是 -Infinity
          

          親自試一試

          Infinity 是數:typeOf Infinity 返回 number。

          實例

          typeof Infinity;        // 返回 "number"

          十六進制

          JavaScript 會把前綴為 0x 的數值常量解釋為十六進制。

          實例

          var x = 0xFF;             // x 將是 255

          絕不要用前導零寫數字(比如 07)。

          一些 JavaScript 版本會把帶有前導零的數解釋為八進制。

          默認地,Javascript 把數顯示為十進制小數。

          但是您能夠使用 toString() 方法把數輸出為十六進制、八進制或二進制。

          實例

          var myNumber = 128;
          myNumber.toString(16);     // 返回 80
          myNumber.toString(8);      // 返回 200
          myNumber.toString(2);      // 返回 10000000
          

          數值可以是對象

          通常 JavaScript 數值是通過字面量創建的原始值:var x = 123

          但是也可以通過關鍵詞 new 定義為對象:var y = new Number(123)

          實例

          var x = 123;
          var y = new Number(123);
          
          // typeof x 返回 number
          // typeof y 返回 object
          

          請不要創建數值對象。這樣會拖慢執行速度。

          new 關鍵詞使代碼復雜化,并產生某些無法預料的結果:

          當使用 == 相等運算符時,相等的數看上去相等:

          實例

          var x = 500;             
          var y = new Number(500);
          
          // (x == y) 為 true,因為 x 和 y 有相等的值
          

          親自試一試 當使用 === 相等運算符后,相等的數變為不相等,因為 === 運算符需要類型和值同時相等。

          實例

          var x = 500;             
          var y = new Number(500);
          
          // (x === y) 為 false,因為 x 和 y 的類型不同
          

          甚至更糟。對象無法進行對比:

          實例

          var x = new Number(500);             
          var y = new Number(500);
          
          // (x == y) 為 false,因為對象無法比較
          

          JavaScript 對象無法進行比較。

          日常開發中,我們有時候需要判斷用戶輸入的是數字還是字母。本文將介紹如何用JavaScript實現這一功能。

          檢查輸入值是否是數字或字母

          要判斷輸入值是數字還是字母,我們可以通過JavaScript獲取輸入框的值,然后使用isNaN函數來檢查輸入值是否為數字。

          例如,假設我們有如下表單:

          <form name="myForm">
            年齡: <input type="text" name="age">
            <input type="submit" value="提交">
          </form>

          我們可以通過以下JavaScript代碼來獲取表單,并檢查age字段中是否輸入了數字:

          const { myForm } = document.forms;
          myForm.addEventListener('submit', (e) => {
            e.preventDefault();
            const x = myForm.age.value;
            if (isNaN(x)) {
              alert("必須輸入數字");
            }
          });

          代碼詳解

          1. 獲取表單元素
          const { myForm } = document.forms;

          通過document.forms獲取表單,并使用解構賦值的方式獲取我們需要的myForm表單。

          1. 添加提交事件監聽器
          myForm.addEventListener('submit', (e) => {
              e.preventDefault();
          })

          使用addEventListener方法監聽表單的submit事件,并在事件觸發時執行回調函數。回調函數中,首先調用e.preventDefault()來阻止表單的默認提交行為。

          1. 獲取輸入框的值
          const x = myForm.age.value;

          從表單中獲取age輸入框的值。

          1. 檢查輸入值是否為數字
          if (isNaN(x)) {
            alert("必須輸入數字");
          }

          使用isNaN函數檢查輸入值是否為數字。如果isNaN返回true,說明輸入的不是數字,此時彈出警告框提示用戶“必須輸入數字”。

          結束

          通過以上步驟,我們可以輕松地用JavaScript判斷輸入值是數字還是字母。isNaN函數在這里起到了關鍵作用,它能夠有效地幫助我們識別非數字輸入。在實際開發中,這種驗證方式能夠提高表單數據的準確性,提升用戶體驗。

          希望這篇文章對你有所幫助,趕快試試在你的項目中實現這個功能吧!如果有任何問題或疑惑,歡迎在評論區留言討論。

          寫前準備

          下面是編寫該方法需要用到的關鍵知識點:

          1. charAt(index):可返回指定位置的字符。

          2. substr(start, length):返回從一個指定位置開始的指定長度的字符串。

          參數:

          • start: 必選項,所需截取字符串的起始位置;
          • length: 可選項,返回字符串包含的字符個數,當length<=0的時候,表示返回一個空的字符串;當length沒有指定的時候,表示截取的字符串從start延續到字符串的最后。

          3. substring(start, end): 返回指定字符串。

          參數:

          • start: 指明子字符串的起始位置,該索引從 0 開始起算;
          • end: 指明子字符串的結束位置,該索引從 0 開始起算。

          特殊情況:

          只包含一個參數,則默認將該參數設為起始位子,返回從該參數起到字符串末尾的字符;

          start和end兩者之間以較小的作為起始,較大的作為結束,比如a.substring(1, 5)和a.substring(5, 1)返回的字符串相同;

          如果start或end為NaN或者負數,則將其置為0。

          具體代碼

          function ToString(n) {
           if (!/^(0|[1-9]\d*)(\.\d+)?$/.test(n)){
           return "數據非法"; //判斷數據是否大于0
           }
           var unit = "千百拾億千百拾萬千百拾元角分", str = "";
           n += "00"; 
           var indexpoint = n.indexOf('.'); // 如果是小數,截取小數點前面的位數
           if (indexpoint >= 0){
           n = n.substring(0, indexpoint) + n.substr(indexpoint+1, 2); // 若為小數,截取需要使用的unit單位
           }
           unit = unit.substr(unit.length - n.length); // 若為整數,截取需要使用的unit單位
           for (var i=0; i < n.length; i++){
           str += "零壹貳叁肆伍陸柒捌玖".charAt(n.charAt(i)) + unit.charAt(i); //遍歷轉化為大寫的數字
           }
           return str.replace(/零(千|百|拾|角)/g, "零").replace(/(零)+/g, "零").replace(/零(萬|億|元)/g, "$1").replace(/(億)萬|壹(拾)/g, "$1$2").replace(/^元零?|零分/g, "").replace(/元$/g, "元整"); // 替換掉數字里面的零字符,得到結果
          }
          

          在線測試


          主站蜘蛛池模板: 夜夜爽一区二区三区精品| 国产色精品vr一区区三区| 波多野结衣一区二区免费视频 | 亚洲福利电影一区二区?| 亚洲成a人一区二区三区| 末成年女AV片一区二区| 国产伦精品一区二区三区视频金莲| 麻豆AV天堂一区二区香蕉| 青青青国产精品一区二区| 精品视频一区二区三区在线观看| 日韩一区二区三区免费播放| 国产精品一区二区四区| 亚洲高清毛片一区二区| 老熟女高潮一区二区三区| 久久精品中文字幕一区| 无码日韩人妻AV一区二区三区| 99偷拍视频精品一区二区| 亚欧在线精品免费观看一区| 真实国产乱子伦精品一区二区三区| 欧洲精品一区二区三区| 麻豆va一区二区三区久久浪| 人妻av综合天堂一区| 日本一区频道在线视频| 国产日韩一区二区三区在线播放| 亚洲福利视频一区二区三区| 91福利国产在线观一区二区| 久久99精品波多结衣一区| 亚洲制服中文字幕第一区| 日韩一区二区三区无码影院| 色欲AV蜜臀一区二区三区| 亚洲午夜精品一区二区公牛电影院| 亚洲av综合av一区| 精品亚洲AV无码一区二区| 亚洲色精品vr一区二区三区| 免费观看日本污污ww网站一区| 日韩精品无码久久一区二区三| 高清无码一区二区在线观看吞精| 波霸影院一区二区| 中文字幕乱码一区二区免费 | 少妇人妻精品一区二区| 波霸影院一区二区|