how2j.cn


工具版本兼容问题
JavaScript中的对象是有着属性和方法的一种特殊数据类型。

常见的对象有数字Number,字符串String,日期Date,数组Array等。

本章节从数字对象开始讲起

注: 这里讲的Number是对象Number,基本数据类型中的基本类型Number是不一样的Number。


关键字 简介 示例代码
new Number
创建一个数字对象
示例代码
属性MIN_VALUE
属性MAX_VALUE
最小值 最大值
示例代码
属性NaN
表示不是数字
示例代码
方法toFixed
返回一个数字的小数表达
示例代码
方法toExponential
返回一个数字的科学计数法表达
示例代码
方法valueOf
返回一个数字对象的基本数字类型
示例代码
练习-乘法
示例代码
答案-乘法
示例代码
示例 1 : 创建一个数字对象   
示例 2 : 最小值 最大值   
示例 3 : 表示不是数字   
示例 4 : 返回一个数字的小数表达   
示例 5 : 返回一个数字的科学计数法表达   
示例 6 : 返回一个数字对象的基本数字类型   
示例 7 : 练习-乘法   
示例 8 : 答案-乘法   

示例 1 :

创建一个数字对象

edit
可以通过new Number()创建一个数字对象

与基本类型的数字不同,对象类型的数字,拥有更多的属性和方法
接下来就会讲解各种属性和方法
运行效果
<script> var x = new Number(123); document.write('数字对象x的值:'+x); document.write("<br>"); document.write('数字对象x的类型:'+typeof x); //通过typeof 获知这是一个object document.write("<br>"); var y = 123; document.write('基本类型y的值:'+y); document.write("<br>"); document.write('基本类型y的类型:'+typeof y); //通过typeof 获知这是一个number </script>
<script>

var x = new Number(123);
 document.write('数字对象x的值:'+x);
 document.write("<br>");
 document.write('数字对象x的类型:'+typeof x); //通过typeof 获知这是一个object
 document.write("<br>");
var y = 123;
 document.write('基本类型y的值:'+y);
 document.write("<br>");
 document.write('基本类型y的类型:'+typeof y); //通过typeof 获知这是一个number

</script>


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
示例 2 :

最小值 最大值

edit
Number对象能够取到的最大和最小边界
运行效果
<script> document.write('Number对象的最小值:'+Number.MIN_VALUE); document.write("<br>"); document.write('Number对象的最大值:'+Number.MAX_VALUE); </script>
<script>

 document.write('Number对象的最小值:'+Number.MIN_VALUE);

 document.write("<br>");

 document.write('Number对象的最大值:'+Number.MAX_VALUE);

</script>


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
示例 3 :

表示不是数字

edit
NaN(Not a Number),表示不是一个数字
当通过非数字创建Number的时候,就会得到NaN.
注意: 不能通过 是否等于Number.NaN来判断 是否 “不是一个数字”,应该使用函数 isNaN()
运行效果
<script> function p(s){ document.write(s); document.write("<br>"); } var a = new Number("123abc"); //通过非数字创建Number对象,得到的是一个NaN p('通过非数字字符串"123abc"创建出来的Number对象 a的值是:'+a); p('但是, a==Number.NaN会返回:'+(a==Number.NaN)); //即便是一个NaN 也"不等于" Number.NaN p('正确判断是否是NaN的方式是调用isNaN函数:'+isNaN(a)); //正确的方式是通过isNaN() 函数进行判断 </script>
<script>
function p(s){
  document.write(s);
  document.write("<br>");
}

var a = new Number("123abc"); //通过非数字创建Number对象,得到的是一个NaN
p('通过非数字字符串"123abc"创建出来的Number对象 a的值是:'+a);

p('但是, a==Number.NaN会返回:'+(a==Number.NaN)); //即便是一个NaN 也"不等于" Number.NaN

p('正确判断是否是NaN的方式是调用isNaN函数:'+isNaN(a)); //正确的方式是通过isNaN() 函数进行判断

</script>


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
示例 4 :

返回一个数字的小数表达

edit
toFixed返回一个数字的小数表达
运行效果
<script> function p(s){ document.write(s); document.write("<br>"); } var a = new Number("123"); p("数字对象123通过toFixed(2) 保留两位小数:"+a.toFixed(2)); //保留两位小数点 var b = new Number("3.1415926"); p("PI 通过toFixed(3) 保留三位小数:"+b.toFixed(3));//保留三位小数点 </script>
<script>
function p(s){
  document.write(s);
  document.write("<br>");
}

var a = new Number("123"); 

p("数字对象123通过toFixed(2) 保留两位小数:"+a.toFixed(2)); //保留两位小数点

var b = new Number("3.1415926"); 

p("PI 通过toFixed(3) 保留三位小数:"+b.toFixed(3));//保留三位小数点

</script>



源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
示例 5 :

返回一个数字的科学计数法表达

edit
返回一个Number对象的科学计数法表达
运行效果
<script> function p(s){ document.write(s); document.write("<br>"); } var a = new Number("123"); p("数字对象123通过toExponential 返回计数法表达 "+a.toExponential ()); var b = new Number("3.1415926"); p("数字对象3.1415926通过toExponential 返回计数法表达 "+b.toExponential ()); </script>
<script>
function p(s){
  document.write(s);
  document.write("<br>");
}
 
var a = new Number("123"); 
 
p("数字对象123通过toExponential 返回计数法表达 "+a.toExponential ()); 
 
var b = new Number("3.1415926"); 
 
p("数字对象3.1415926通过toExponential 返回计数法表达 "+b.toExponential ());
 
</script>


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
示例 6 :

返回一个数字对象的基本数字类型

edit
方法 valueOf() 返回一个基本类型的数字
通过typeof 判断数据类型可以发现,一种是object,一种是number
运行效果
<script> function p(s){ document.write(s); document.write("<br>"); } var a = new Number("123"); var b = a.valueOf(); p('数字对象a的类型是: '+typeof a); //返回object p('通过valueOf()返回的值的类型是'+typeof b); //返回number </script>
<script>
function p(s){
  document.write(s);
  document.write("<br>");
}

var a = new Number("123"); 

var b = a.valueOf();

p('数字对象a的类型是: '+typeof a); //返回object
p('通过valueOf()返回的值的类型是'+typeof b); //返回number

</script>



源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果
示例 7 :

练习-乘法

edit Or  姿势不对,事倍功半! 点击查看做练习的正确姿势
参考阶段性练习1的做法,做一个乘法计算器,但是要求输出结果是科学计数法表示
练习-乘法
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
查看本答案会花费3个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法
查看本答案会花费3个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法
账号未激活 账号未激活,功能受限。 请点击激活
运行效果
<head> <meta http-equiv="Content-Type" content="text/html; charset=GB2312"> </head> <style> input{ width:50px; } </style> <script> function calc(){ var num1= document.getElementById("num1").value; var num2= document.getElementById("num2").value; num1 = parseFloat(num1); num2 = parseFloat(num2); var result = num1*num2; var num = new Number(result); document.getElementById("result").value=num.toExponential(); } </script> <input type="text" id="num1"> * <input type="text" id="num2" > = <input type="text" id="result" > <input type="button" value="运算" onclick="calc()">


源代码
1. 双击选中单词 2. 三击选中整行 3. CTRL+F 查找 4. F8 全屏编辑,再次点击恢复
渲染中 渲染完成
效果


HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。


问答区域    
2020-10-21 写一个
心照不宣




噜啦噜啦嘞
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        function cal(){
            var n1=document.getElementById("n1").value;
            var n2=document.getElementById("n2").value;
            n1=parseFloat(n1);
            n2=parseFloat(n2);
            var res=n1*n2;
            document.getElementById("n3").value=res;
        }
    </script>
    <style>
        input{
            width: 80px;
            border: lightgray solid 1px;
        }
    </style>
</head>
<body>
    <input type="text" id="n1"> *
    <input type="text" id="n2"> =
    <input type="text" id="n3"> 
    <input type="button"  value="运算" id=res  onclick="cal()">
</body>
</html>

							





回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2020-10-21 我也来写一个
Carmine




我也来发一发我也的
加载中
<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #counter {
            width: auto;
            height: 290px;
            border: 2px cadetblue solid;
            padding-left: 150px;
            padding-right: 150px;
            padding-top: 20px;
        }
        #before {
            width: 25%;
            float: left;
            margin-right: 150px;
        }
        #after {
            width: 25%;
            float: left;
            padding-right: 150px;
        }
        .number {
            height: 60px;
            margin-bottom: 50px;
        }
        .rule {
            width: 40px;
        }
    </style>
</head>
<body>
<div id="counter">
    <form>
        <div id="before">
            <label for="one"></label><input type="text" id="one" class="number" placeholder="第一个数"><br>
            <label for="two"></label><input type="text" id="two" class="number" placeholder="第二个数"><br>
            <input type="button" id="plus" class="rule" name="plus" value="加">
            <input type="button" id="sub" class="rule" name="sub" value="减">
            <input type="button" id="mul" class="rule" name="mul" value="乘">
            <input type="button" id="div" class="rule" name="div" value="除">
        </div>
        <div id="after">
            <label for="result1"></label><input id="result1" type="text" class="number" placeholder="普通结果"
                                                readonly="readonly"><br>
            <label for="result2"></label><input id="result2" type="text" class="number" placeholder="科学结果"
                                                readonly="readonly"><br>
            <input type="reset" value="一键清除">
        </div>
    </form>
</div>
</body>
<script>
    document.getElementById("plus").onclick = function () {
        let one = parseFloat(document.getElementById("one").value);
        let two = parseFloat(document.getElementById("two").value);
        document.getElementById("result1").value = one + two;
        document.getElementById("result2").value = (one + two).toExponential();
    }
    document.getElementById("sub").onclick = function () {
        let one = parseFloat(document.getElementById("one").value);
        let two = parseFloat(document.getElementById("two").value);
        document.getElementById("result1").value = one - two;
        document.getElementById("result2").value = (one - two).toExponential();
    }
    document.getElementById("mul").onclick = function () {
        let one = parseFloat(document.getElementById("one").value);
        let two = parseFloat(document.getElementById("two").value);
        document.getElementById("result1").value = one * two;
        document.getElementById("result2").value = (one * two).toExponential();
    }
    document.getElementById("div").onclick = function () {
        let one = parseFloat(document.getElementById("one").value);
        let two = parseFloat(document.getElementById("two").value);
        document.getElementById("result1").value = one / two;
        document.getElementById("result2").value = (one / two).toExponential();
    }
</script>
</html>

							





回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2020-10-08 为什么修改文本框中的数字再点击运算就不成功了呢?
2020-06-25 加油
2020-05-22 做的很粗糙


提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 8 条以前的提问,请 点击查看

提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 前端部分-JavaScript-数字 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 635924385
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: https://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图