
正文
javascript数值,javascript数值运算
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
"JavaScript中有哪些数值类型?如何处理数字与字符串相乘的情况?
你不用担心JavaScript中有哪些数值类型,因为JavaScript数值都为64位的浮点数,所以JavaScript的没有整型、浮点型、双精度等类型。如var i = 125;因为i存储值为数字,所以是以64位浮点数值存储的。
现在回答你的第二个问题:数字是不能与字符串相乘的,如果你非得这么做,那么你将得到一个NAN的值,表示结果不是一个数值。举例例子:
var m = 3;
var n = "b";
console.log(m * n); //输出为NaN,NaN在JavaScript中有特殊的含义,代表非数字
//值,用于指示某个值不是数字。
但是如果字符串中的内容是数值,JavaScript还是有方法使其进行乘法操作的。如下操作:
1、 使用Number方法,判断字符串中的内容是否为数值。如下示例:
var m = "3";
var num = Number(m);
Number方法是JavaScript内置的方法,它会尽量把变量转换为数值,若转换成功,则返回转换后的数值。但不是所有的字符串都能转换成数值,若不能转换为数字的情况,则返回值是NaN。
2、 使用isNaN方法,判断字符是不是NaN。如下示例
if ( isNaN( num)) { //isNaN方法可以判断传入的值是否是非数字值。
console.log('非数字值'); //返回true:传入的值是一个非数字值。
}
else {
console.log(m*num); //返回false:传入的值是一个数字值。可以相乘。
}
所以如果你要将数字与字符串相乘,你需要借助Number和isNaN方法。完整的示例如下:
var m = "b";
var n = 3;
var num = Number(m);
if ( isNaN( num)) {
console.log('非数字值');
}
else {
console.log(m*num);
}
关于JavaScript数据类型的知识,你可以参考下教程网站秒秒学的课程。
相关问答
Q1: javascript的数据类型有几种
在javascript中申明变量使用的关键字都是var,这点与其他的编程语言不尽相同,但是javascript亦含有五种基本的数据类型(也可以说是简单数据类型)和一种复杂数据类型,它们分别是:Undefined,Null,Boolean,Number和String。复杂数据类型—Object。
1、typeof
typeof这个关键字是一定要说的,因为javascript是松散类型的,在变量申明时并没有使用与之类型相对应的关键字,如果在代码中想要获知某个变量的基本数据量,就可以使用typeof。这里要注意的是typeof返回的是字符串类型。
(1)、"undefined"——未申明,或者变量的值即为undefined或者未初始化;
(2)、"boolean" ——如果这变量的值是布尔类型;
(3)、"string" ——值是字符串类型;
(4)、"number" ——值是数字类型;
(5)、"object" ——对象或者值为null;
(6)、"function" ——函数。
在js中函数也是对象,但是函数又要一些区别与其他对象的特定,所以ECMAScript在使用typeof的时候将其区分开来。
2、Undefined
这是一个很有意思的数据类型,因为它的值只有一个,那就是undefined。在申明变量时如果没有将变量赋值的话这个变量也是属于Undefined类型的。
如果一个变量没有申明就直接去访问解释器会报错误信息,但是这样的变量如果使用typeof返回的结果也是"undefined"。
3、Null
Null也是一个只有一个值得数据类型,它的值就是null,任何变量只要给其赋值为null的话这个变量的数据类型就是Null类型。null值表示控对象指针,所以申明的变量要是想用来保存对象并且在申明之初还不能确定具体保存哪个对象的时候就将其赋值为null,在使用的时候只要检查该变量是否为null就可以知道该变量是否保存了对象。
其实null和undefined还是有点微妙的关系的,在javascript中undefined值派生自null,因此ECMA-26规定了它们的相等性测试为true。
在实际的编程中我们没有必要将一个变量赋值为undefined,但是却有很多情况下要将变量赋值为null,将变量赋值为null可以便于我们将它与undefined区分也便于垃圾回收处理。
4、Boolean
在javascript中Boolean类型用还是比较多的一种简单数据类型,它有两个值,分别是true和false,因为在javascript中字母是区分大小写的,所以True和False不是Boolean的值。
调用Boolean()方法可以将任何类型的值转化成与之相对应的Boolean类型的值,也就是可以将其转化成true或者false。
5、Number
javascript为了支持各种数值类型,定义了不同数值字面量格式。
最基本的是字面量是十进制,此外还有八进制和十六进制数的字面量。八进制在js中表示是第一位一定要是0,后面就是八进制字数序列(0~7),如果字面量值超出了范围,前面的0会被忽略,后面的值会被当成十进制解析。十六进制字面量前两位必须是0x,后面跟十六进制数字(0~9及A~F)。字母A~F不区分大小写。
在进行数值计算时,不论是八进制还是十六进制最终都会被转化成十进制数值。
6、Object
Object类是所有JavaScript类的基类(父类),提供了一种创建自定义对象的简单方式,不再需要程序员定义构造函数。Object类主要属性:1.constructor:对象的构造函数。2.prototype:获得类的prototype对象,static性质。
Q2: js中的数字
/*
1.js中只有一种数据类型
2.js中的整数会被精确到15位(如果不使用科学计数法)
3.小数的最大位是17位
*/
var x = 10;
var y = 20;
var z = "The result is: " + x + y;
console.log('结果为',z)//The result is: 1020
var a =0.1 + 0.2
var b =0.3
console.log('浮点数的值',a,a == b) //0.30000000000000004 false
/*
js中数字相关的方法
*/
/*
返回字符串
*/
toString()
/*
返回指定位数的字符串值
不会改变原来数字
*/
var x = 9.656;
let x0 = x.toFixed(0); // 返回 10
let x2 = x.toFixed(2); // 返回 9.66
console.log('toFixed',x,x0,x2) //9.656 10 9.66
/*
返回指定长度的字符串值
不改变原来的数字
*/
var x = 9.656;
let xT0 = x.toPrecision(); // 返回 9.656
let xT2 = x.toPrecision(2); // 返回 9.7
console.log('toPrecision',x,xT0,xT2) //9.656 9.656 9.7
/*
以数值返回数值
*/
// valueOf()
/*
将js变量转换为数值
无法转换为数字返回 NaN
*/
let an = true
let ar = Number(an)
console.log('Number',ar)
/*
解析一段字符串返回数字
允许空格。只返回首个数字:
*/
parseInt("10"); // 返回 10
parseInt("10.33"); // 返回 10
parseInt("10 20 30"); // 返回 10
parseInt("10 years"); // 返回 10
parseInt("years 10"); // 返回 NaN
/*
解析一段字符串并返回数值。允许空格。只返回首个数字:
*/
parseFloat("10"); // 返回 10
parseFloat("10.33"); // 返回 10.33
parseFloat("10 20 30"); // 返回 10
parseFloat("10 years"); // 返回 10
parseFloat("years 10"); // 返回 NaN






![[网站公告]1月10日1:00-7:00阿里云RDS维护会造成30秒闪断 [网站公告]1月10日1:00-7:00阿里云RDS维护会造成30秒闪断](https://www.04ip.com/template/qe/style/noimg/2.jpg)
![【电子书】[合集/系列] 《晚清三部曲》[晚清有个曾国藩][晚清有个袁世凯][晚清有个李鸿章][赵焰] 【电子书】[合集/系列] 《晚清三部曲》[晚清有个曾国藩][晚清有个袁世凯][晚清有个李鸿章][赵焰]](https://www.04ip.com/template/qe/style/noimg/4.jpg)