js数据类型以及转换

js数据类型:数字(NaN)、字符串、布尔、函数、对象、数组、json、null、undefined(未定义)

  1. typeof判断数据类型

var i=100;

alert(typeof i);//number

var s=‘ miao’;

alert(typeof s);//string

alert(s.length);//5 空格也算一位

var obj=window;

alert(typeof obj); //object

obj.abc=123; //只要不是空的都可以添加自定义属性

alert(obj.abc);//123

?obj.fn1=function(){ alert(1);};

obj.fn1();//调用函数

⭐数组arr 也是个对象

alert(typeof arr);//object

var json={name:‘miaov’,age:5};

alert(json.name);// miaov

alert(typeof json);//object

var n=null;

alert(typeof n);//object 虽然是object,但是它不存在,无法添加函数属性等

var u;

alert(typeof u);//undefined
未定义

  1. charAt()//根据下标获取字符串中的元素

var s=‘ miao’;

alert(s.charAt(3));//a

  1. 数据类型转换Number()方法

法一:Number();//可以直接用的方法,使‘100‘、‘00100’、‘+100‘等的字符串转化为100。

Number(‘ ‘);//0

Number(true);//1

Number(false);//0

var a=[]; var a=[‘‘];

Number(a);//0

var a=[123]; var a=[‘123’];

Number(a);//123

但是var a=[1,2,3]; 转成NaN

Number·(null);//0

Number(undefined);//NaN

  1. parseInt与parseFloat

var b=’100px’;

alert(parseInt(b));//100

转换原理,从左到右识别数字,遇到非数字就从当前非数字处全部截断

var b=’+100px’;

alert(parseInt(b));//100

而且parseInt也认识一些简单的符号,例如+ - 空格等

var b=’12.34元’;

alert(parseInt(b));//12

⭐parseInt的完整写法:parseInt(b,10);默认按照十进制来转的,也可以写成parseInt(b,2)按照二进制来转,或者8、16进制等

var b=’12.34元’;

alert(parseFloat(b));//12.34

小技巧:

if(parseInt(num)==parseFloat(num)){

alert(num是整数);

}else{

alert(num是小数);

}

  1. 两种类型转换
    形如Number()、parseInt()、parseFloat()这些看得见摸得着的转换方式称为显示类型转换(强制类型转换),

?隐式类型转换:

+: 200+’3’ 变成字符串2003

-*/ %: ‘200‘-3 :可以将字符串变为数字

var a=‘10‘ a++; //a变为数字11

++ – 可以变为数字
< > <= >= 转法比较诡异
‘10‘ > 9 //true ‘10’会自动转为数字10

而 ‘10’ > ‘9’ 是字符串比较,一位一位比较ASC码,返回false

  1. 取反符号 !

alert(!100);//false

alert(!‘ok‘);// false

  1. == 与 ===
    ⭐==:两个等号判断值
    ===:三个等号,全等,先判断类型,再判断值

alert(‘2‘==2);//true

alert(‘2‘===2);//false

  1. NaN :not a number(不是数字)数字肯定是数字类型,但是数字类型不一定都是数字

var a=Number(‘abc’);// a是NaN

alert(typeof a);// NaN

说明NaN指一个不是数字的数字类型

一旦写程序中出现NaN,代表肯定进行了非法运算

NaN在布尔值中是false

alert(a===a);//false

NaN与自己都不相等

  1. isNaN();is not a number可以判断某些值是不是数字

不是返回true 是返回false

alert(isNaN(‘xssxs’));//true

alert(isNaN(123)); //false

⭐isNaN(),将括号内容交给Number,若Numver成功转为数字,则isNaN返回false,若Number转为NaN,则isNaN为true

应用:判断文本框内容是不是数字

if(isNaN(str)){

alert(‘不是数字’);

}else{

alert(‘是数字’);

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值