检查文件类型
//可以使用一个运算符 typeof //来检查一个变量的类型 //语法: typeof 变量 console. log(typeof a);
字符串
//输出字面量字符串str alert("str") //输出变量str alert(str)
Number
在JS中所有的数值都是 Number类型,包括整数和浮点数(小数)
如果使用 Number表示的数字超过了最大值,则会返回ー个Infinity表示正无穷
NaN是一个特殊的数字,表示 Not A Number
如果使用JS进行浮点运算,可能得到一个不精确的结果:所以千万不要使用JS进行对精确度要求比较高的运算
console.log(Number.MAX_VALUE); //输出能显示的最大数值
Null和 Undefined
Null(空值)类型的值只有一个,就是null
Null这个值专门用来表示一个为空的对象
使用typeof检查一个null值时,会返回object
Undefined(未定义)类型的值只有一个,就undefind
当声明一个变量,但是并不给变量赋值时,它的值就是undefined
使用typeof检查一个undefined时也会返回undefined
强制类型转换
转字符串
方式一:
- 调用被转换数据类型的tostring()方法
- 该方法不会影响到原变量,它会将转换的结果返回
方法二:
使用String();
使用String()函数做强制类型转换时,
对于Number和Boolean实际上就是调用的toString()方法
但是对于null和undefined,就不会调用toString()方法
它会将null直接转换为"null"
将undefined直接转换为"undefined"
/*方法一: 调用a的tostring()方法 调用xxx的yyy()方法,就是xxx.yyy() */ <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> var a=123; /*var b=a.toString(); console.log(typeof a);//return number console.log(typeof b);//return string */ a=String(a);//注意S要大写 </script> </head> <body> </body> </html>
转Number
方式一:
使用Number() 函数 N要大写
字符串一>数字
如果是纯数字的字符串,则直接将其转换为数字
如果字符串中有非数字的内容,则转换为NaN
如果字符串是一个空串或者是一个全是空格的字符串,则转换为0
布尔一>数字
true转成1
fa1se转成0
Null 一>数字为0
Undefined一>数字为NaN
方式二:
- parseInt可以将一个字符串中的有效的整数内容去出来,然后转换为Number
- ParseFloat作用和parseInt类似,不同的是它可以获得有效的小数
- 如果对非String使用parseInt()或parseFloat()它会先将其转换为String,然后操作
其他进制的数字
表示16进制的数字,则需要以0X开头(x大写小写都可以)
表示8进制的数字,则需要以0开头
表示8进制的数字,则需要以0b开头(b大写小写都可以,不是所有浏览器都支持)
像a=“070”用parseInt后有的浏览器会解析成八进制,有的会输出70,这个时候使用parseInt(a,10)表示10进制解析字符串a
调用Boolean()函数将其他类型转为布尔值
数字返回除了0和NaN,其余都是true
字符串返回除了空字符串,其余都是true
null和undefined都是false
对象会转化为true
注意其输出结果是十进制形式
运算符
typeof他将该值的类型以字符串的形式返回(number、string、boolean、undefined、objected)
+、-、*、/、%(当对非number类型进行计算时,先转换为number再进行运算,true=1,false=0,null=0,任何值和NaN运算结果都为NaN,如果对两个字符串进行拼接并返回)
加法:任何数值和字符串进行基本运算,现将数值转换成字符串,然后进行拼接
其余的都是将,字符串变成数值再减(利用此性质可以让string-0变成number)
var a=123; a=a+""; console.log(typeof a); console.log("a = "+a);//输出"a=123" result = 1+2+"3" //输出“33” result = "1"+2+3 //输出“123” var a=100; a=a-'2' console.log(a); //输出98
- 对于非Number类型的值
- 它会将先转换为Number,然后再运算
- 可以对一个其他的数据类型使用+,来将其转换为number
- 它的原理和Number()函数一样
- 逻辑运算符
- 与 &&
- 或 ||
- 非 !
var a="hello"; a=!!a; //output true //&& 有短路性质 当第一个为false时 后面的被短路
自增自减
a++; //这里和C语言一样 ++a;