数据类型
数据类型分为五种
检测数据类型:使用typeof
语句:console.log(typeof 名称);
一、number 数字类型
var a = 值
这个值可以是二进制、八进制、十进制、十六进制,还可以用科学计数法来表示。
注意:计算机内部能显示的数字也是有范围的
①若var a = 一个很大的数字
console.log(a); // 输出Infinity - 无穷大
②若var a = 一个很小的数字
console.log(a); // 输出-Infinity - 无穷小
③能显示的最大数字:console.log( Number.MAX_VALUE );
④能显示的最小数字:console.log( Number.MIN_VALUE );
需要重点掌握的:
1.判定一个变量是否为数字类型:使用 isNaN()
var a = '你好'
console.log(a);
var b = 2
console.log(b);
var c = a - b
console.log(c); // 输出NaN - 不知道是多少的一个数字
NaN:not a number 首拼 - 含义,不是一个具体的数字,数据的类型是number
console.log( typeof c ); //输出number -因为NaN是一个不知道是多少的数字,类型为数字类型
如果在我们的代码中出现了NaN这个结果了,说明我们的运算有问题
js提供了一个用于检测数据是否是数字的工具: isNaN()
结果是true表示这不是一个数字,false表示是一个数字
①例如:var a = 12
console.log( isNaN(a) ); // 输出false -表示这是一个数字
②例如:var b = '你好'
console.log( isNaN(b) ); // 输出true -表示这不是一个数字
2.小数计算不精准
var a = 0.1
var b = 0.0002
var b = 0.2
var c = a + b
console.log(c);
解决思路:
(1)将所有小数乘以10的多少次方,得到一个整数,除以10的多少次方
var c = (a * 10000 + b * 10000) / 10000
console.log(c);
(2)利用js提供的工具:强制保留小数点后几位 - toFixed(要保留的位数)
要保留的数字.toFixed(要保留的位数)
var a = 0.1
var b = 0.2
var c = a + b
console.log(c);
console.log( c.toFixed(3) ); // 一旦强制保留小数点后位数时,结果默认就是字符串类型
二、字符串类型
字符串:若干个任意字符用引号引起来
例如:
①var a = 'asd点击★★★jkf"haj234768!#$%^&*(ksdf'
②var b = "asdjkfhjkalsdf"
注意:
1.引号嵌套问题:单引号不能嵌套单引号,双引号不能嵌套双引号 - 他们有特殊含义
若要嵌套,要将带有特殊含义的字符的特殊含义去掉,让他变成普通的字符。
方法:在特殊含义的字符前添加 转义符: \
2.document.write可以输出标签,但是标签必须是一个字符串,否则识别不了
document.write('<b>文本加粗</b>'); //可以识别
document.write(<b>文本加粗</b>); //不能识别(没有单双引号,判断不出为字符串类型)
3.将两个字符串放在一起输出时
+ :字符串拼接符,将两个字符串拼接在一起,组成一个更大的字符串
var a = '孙悟空'
var b = '紫霞仙子'
console.log(a);
console.log(b);
// 以下三种输出的结果相同
console.log( a + b );
console.log( a + '紫霞仙子' );
console.log( '孙悟空' + '紫霞仙子' );
总结:
1.引号不能嵌套自己,除非转义
2.document.write可以输出标签,但是标签必须是字符串
3.字符串和字符串之间可以使用 + 连接成一个更大的字符串