1.== 于 ===
== 是比较内容 而===既比较内容又比较类型
例如 1=="1"是true而 1==="1"是false
2.typeof
typeof(obj)能判断出各参数的类型
例如
typeof(1)=="number" 是true
typeof("1")=="string"是true
typeof(true)=="boolean"是true
var a=undefinedtypeof(a)=="undefined" 是true
var a=null typeof(a)=="object" 是true
3.isNaN()
该函数可以判断传递的参数是不是非数值类型如果是则是true 如果不是则是false
例如isNaN(1) 是flase 他是非数值类型
isNaN("1") 也是false 他虽然传递的是一个字符串类型,但内容却是数值类型
4.NaN
当在逻辑运算中,如果让两个无法相加的类型相加,可能会产生NaN类型,也就是非数值类型
但是NaN ===NaN为false,也就是NaN为不确定类型,比较为false
NaN == NaN 也是false ,内容也不确定,所以比较为false
NaN也是number类型
5.随机数,四舍五入,向上取整,向下取整
Math.random();产生一个0-1不包括1的随机数
Math.floor(1.2);向下取整 返回1
Math.ceil(1.2);向上取整 返回2
Math.round(1.2);四舍五入 返回1
参数一个随机整数的函数,参数min到max之间的函数,包括min和max
function getRandom(min,max){
var addNum = Math.random() * (max-min);
return Math.round(addNum + min);
}
6.!=和!==
!= 比较的是内容!==比较的是类型和类型
例如 "1"!= 1 为false
"1" !== 1 为true
7.string转number
使用Number()进行转换
var a = Number("150");a是数值的150
var b = Number("1.50")b是数值的1.50
var c = Number("")c是数值的0
当有空格的时候,会自动去掉kongge
当转成的内容不能转成数字的时候,返回的是NaN类型,既非数值的不确定类型
使用parseInt()转换
当转换整数的时候,返回的对应数值类型的整数
当前面存在空格的时候,会自动去掉空格
区别:
而传递的参数是小数的时候,返回向下取整的数值类型的整数
parsetInt可以转换类似("123123asd");返回123123 但是parseInt("asd123");不能转成123 而是返回NaN
而Number("123123asd");直接返回NaN
8.parseFloat
将一个字符型的浮点数转成数值型的浮点数
例如parseFloat("1.1")转成数值型的1.1
9.boolean和0和1
true实际上就是10实际上就是false
当我们使用Number(true),返回1
10.string转boolean
除了0 null NaN undefined转换成false之外其他都会转换成true
Boolean("true");返回boolean类型的true
Boolean("false");返回也是true
Boolean(0);返回false
Boolean(NaN);返回false
Boolean(undefined);返回false;
Boolean(null);返回false;
11.隐式转换
+ - * / %在运算时,都能自动转成int
值得注意的是 +不能直接string+number这样会拼接成string而需要 写一个+到该字符串的前面,例如
+"1" 会变成 数值类型的1
隐式转换成boolean
上面说了,可以将其他类型强制转换成boolean类型的时候,如果直接!"123"那么会返回 false
这也就相当于 !Boolean("123"); Boolean("123")返回true,那么!后变成了false
同样的如果 !NaN 那么就变成了true
12.实例
取得某个数的某位数是多少例如要取得123456的千位数字,那么getNumByte(123456,4);
function getNumByte(num,n){
int f = 1;
for(var i=0;i<n-1;i++){
f*=10;
}
return Math.floor(num %f/(f/10));
}