Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 亚洲综合三区,国产九九精品,久青草国产在线

          整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          JavaScript 數(shù)字

          avaScript 數(shù)字

          • JS 字符串方法
          • JS 數(shù)字方法

          JavaScript 只有一種數(shù)值類型。

          書寫數(shù)值時(shí)帶不帶小數(shù)點(diǎn)均可。

          JavaScript 數(shù)值

          書寫 JavaScript 數(shù)值既可以帶小數(shù)點(diǎn),也可以不帶:

          實(shí)例

          var x = 3.14;    // 帶小數(shù)點(diǎn)的數(shù)值
          var y = 3;       // 不帶小數(shù)點(diǎn)的數(shù)值
          

          親自試一試

          超大或超小的數(shù)可通過(guò)科學(xué)計(jì)數(shù)法來(lái)寫:

          實(shí)例

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

          JavaScript 數(shù)值始終是 64 位的浮點(diǎn)數(shù)

          與許多其他編程語(yǔ)言不同,JavaScript 不會(huì)定義不同類型的數(shù),比如整數(shù)、短的、長(zhǎng)的、浮點(diǎn)的等等。

          JavaScript 數(shù)值始終以雙精度浮點(diǎn)數(shù)來(lái)存儲(chǔ),根據(jù)國(guó)際 IEEE 754 標(biāo)準(zhǔn)。

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

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

          精度

          整數(shù)(不使用指數(shù)或科學(xué)計(jì)數(shù)法)會(huì)被精確到 15 位。

          實(shí)例

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

          小數(shù)的最大數(shù)是 17 位,但是浮點(diǎn)的算數(shù)并不總是 100% 精準(zhǔn):

          實(shí)例

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

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

          實(shí)例

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

          親自試一試

          數(shù)字和字符串相加

          警告!!

          JavaScript 的加法和級(jí)聯(lián)(concatenation)都使用 + 運(yùn)算符。

          數(shù)字用加法。字符串用級(jí)聯(lián)。

          如果您對(duì)兩個(gè)數(shù)相加,結(jié)果將是一個(gè)數(shù):

          實(shí)例

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

          如果對(duì)兩個(gè)字符串相加,結(jié)果將是一個(gè)字符串的級(jí)聯(lián):

          實(shí)例

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

          如果您對(duì)一個(gè)數(shù)和一個(gè)字符串相加,結(jié)果也是字符串級(jí)聯(lián):

          實(shí)例

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

          如果您對(duì)一個(gè)字符串和一個(gè)數(shù)字相加,結(jié)果也是字符串級(jí)聯(lián):

          實(shí)例

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

          常見的錯(cuò)誤是認(rèn)為結(jié)果應(yīng)該是 30:

          實(shí)例

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

          親自試一試

          常見的錯(cuò)誤是認(rèn)為結(jié)果應(yīng)該是 102030:

          實(shí)例

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

          JavaScript 從左向右進(jìn)行編譯。

          因?yàn)?x 和 y 都是數(shù),10 + 20 將被相加。

          因?yàn)?z 是字符串,30 + "30" 被級(jí)聯(lián)。

          數(shù)字字符串

          JavaScript 字符串可以擁有數(shù)字內(nèi)容:

          var x = 100;         // x 是數(shù)字
          
          var y = "100";       // y 是字符串
          

          在所有數(shù)字運(yùn)算中,JavaScript 會(huì)嘗試將字符串轉(zhuǎn)換為數(shù)字:

          該例如此運(yùn)行:

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

          該例也將如此運(yùn)行:

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

          該例如此運(yùn)行:

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

          但是該例不會(huì)如上例般運(yùn)行:

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

          在最后一個(gè)例子中,JavaScript 用 + 運(yùn)算符對(duì)字符串進(jìn)行了級(jí)聯(lián)。

          NaN - 非數(shù)值

          NaN 屬于 JavaScript 保留詞,指示某個(gè)數(shù)不是合法數(shù)。

          嘗試用一個(gè)非數(shù)字字符串進(jìn)行除法會(huì)得到 NaN(Not a Number):

          實(shí)例

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

          不過(guò),假如字符串包含數(shù)值,則結(jié)果將是數(shù):

          實(shí)例

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

          您可使用全局 JavaScript 函數(shù) isNaN() 來(lái)確定某個(gè)值是否是數(shù):

          實(shí)例

          var x = 100 / "Apple";
          isNaN(x);               // 返回 true,因?yàn)?x 不是數(shù)
          

          要小心 NaN。假如您在數(shù)學(xué)運(yùn)算中使用了 NaN,則結(jié)果也將是 NaN:

          實(shí)例

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

          結(jié)果也許是串連接:

          實(shí)例

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

          NaN 是數(shù),typeof NaN 返回 number:

          實(shí)例

          typeof NaN;             // 返回 "number"

          親自試一試

          Infinity

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

          實(shí)例

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

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

          實(shí)例

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

          親自試一試

          Infinity 是數(shù):typeOf Infinity 返回 number。

          實(shí)例

          typeof Infinity;        // 返回 "number"

          十六進(jìn)制

          JavaScript 會(huì)把前綴為 0x 的數(shù)值常量解釋為十六進(jìn)制。

          實(shí)例

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

          絕不要用前導(dǎo)零寫數(shù)字(比如 07)。

          一些 JavaScript 版本會(huì)把帶有前導(dǎo)零的數(shù)解釋為八進(jìn)制。

          默認(rèn)地,Javascript 把數(shù)顯示為十進(jìn)制小數(shù)。

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

          實(shí)例

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

          數(shù)值可以是對(duì)象

          通常 JavaScript 數(shù)值是通過(guò)字面量創(chuàng)建的原始值:var x = 123

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

          實(shí)例

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

          請(qǐng)不要?jiǎng)?chuàng)建數(shù)值對(duì)象。這樣會(huì)拖慢執(zhí)行速度。

          new 關(guān)鍵詞使代碼復(fù)雜化,并產(chǎn)生某些無(wú)法預(yù)料的結(jié)果:

          當(dāng)使用 == 相等運(yùn)算符時(shí),相等的數(shù)看上去相等:

          實(shí)例

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

          親自試一試 當(dāng)使用 === 相等運(yùn)算符后,相等的數(shù)變?yōu)椴幌嗟龋驗(yàn)?=== 運(yùn)算符需要類型和值同時(shí)相等。

          實(shí)例

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

          甚至更糟。對(duì)象無(wú)法進(jìn)行對(duì)比:

          實(shí)例

          var x = new Number(500);             
          var y = new Number(500);
          
          // (x == y) 為 false,因?yàn)閷?duì)象無(wú)法比較
          

          JavaScript 對(duì)象無(wú)法進(jìn)行比較。

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

          檢查輸入值是否是數(shù)字或字母

          要判斷輸入值是數(shù)字還是字母,我們可以通過(guò)JavaScript獲取輸入框的值,然后使用isNaN函數(shù)來(lái)檢查輸入值是否為數(shù)字。

          例如,假設(shè)我們有如下表單:

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

          我們可以通過(guò)以下JavaScript代碼來(lái)獲取表單,并檢查age字段中是否輸入了數(shù)字:

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

          代碼詳解

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

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

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

          使用addEventListener方法監(jiān)聽表單的submit事件,并在事件觸發(fā)時(shí)執(zhí)行回調(diào)函數(shù)。回調(diào)函數(shù)中,首先調(diào)用e.preventDefault()來(lái)阻止表單的默認(rèn)提交行為。

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

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

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

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

          結(jié)束

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

          希望這篇文章對(duì)你有所幫助,趕快試試在你的項(xiàng)目中實(shí)現(xiàn)這個(gè)功能吧!如果有任何問題或疑惑,歡迎在評(píng)論區(qū)留言討論。

          寫前準(zhǔn)備

          下面是編寫該方法需要用到的關(guān)鍵知識(shí)點(diǎn):

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

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

          參數(shù):

          • start: 必選項(xiàng),所需截取字符串的起始位置;
          • length: 可選項(xiàng),返回字符串包含的字符個(gè)數(shù),當(dāng)length<=0的時(shí)候,表示返回一個(gè)空的字符串;當(dāng)length沒有指定的時(shí)候,表示截取的字符串從start延續(xù)到字符串的最后。

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

          參數(shù):

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

          特殊情況:

          只包含一個(gè)參數(shù),則默認(rèn)將該參數(shù)設(shè)為起始位子,返回從該參數(shù)起到字符串末尾的字符;

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

          如果start或end為NaN或者負(fù)數(shù),則將其置為0。

          具體代碼

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

          在線測(cè)試


          主站蜘蛛池模板: 成人免费视频一区二区三区| 国产一区二区三区乱码网站| 无码国产伦一区二区三区视频| AV鲁丝一区鲁丝二区鲁丝三区| 国产福利精品一区二区| 成人在线视频一区| 一区二区三区无码被窝影院| 亚洲国产日韩一区高清在线| 一区二区三区国模大胆| 国产一区中文字幕| 冲田杏梨AV一区二区三区| 人妖在线精品一区二区三区| 亚洲av无码一区二区三区乱子伦| 久久国产香蕉一区精品| 国产成人综合精品一区| 亚洲美女高清一区二区三区| 国产精品视频无圣光一区| 香蕉久久ac一区二区三区| 亚洲综合激情五月色一区| 中文字幕乱码一区久久麻豆樱花| 国产伦精品一区二区三区女| 91久久精品午夜一区二区| 亚洲一区二区三区在线观看蜜桃| 精品日韩亚洲AV无码一区二区三区 | 亚洲一区二区三区自拍公司| 国产午夜精品一区二区| 成人国内精品久久久久一区| 国产在线精品一区免费香蕉| 国产裸体歌舞一区二区| 日韩免费无码视频一区二区三区| 性色A码一区二区三区天美传媒 | 国产精品一区二区在线观看| 在线观看中文字幕一区| 午夜视频久久久久一区| 中文字幕在线精品视频入口一区| 亚洲AV无码一区二区三区DV| 中文激情在线一区二区| 国产在线一区视频| 中文字幕av无码一区二区三区电影 | 精品视频一区二区三区在线播放 | 99无码人妻一区二区三区免费|