js--数据类型、类型转换(4)

ECMAScript:JS中的核心,标准;
规定了JS中的语法和数据类型;
--JS中的数据类型--:
typeof :判断数据类型;
1>数字;
  var i =100;
  alert(typeof i); //number

2>字符串;
  var s ='test'; //这里注意,引号中的空格也算一个字符;
  alert(typeof s); //string
  alert(s.length); //计算字符串中的长度
  alert(s.charAt(1)); // 't'
  //通过下标找字符串中指定的字符,从0开始计算;

3>布尔值(true false);
  var b =true;
  alert(typeof b); //boolean

4>函数;
  var fn =function (){alert(1);} //匿名函数
  fn(); //调用函数
  fn; //不写括号,代表的是等号右边的东西;

5>对象(window,document,数据([]),json,null);
  var obj = window;
  alert(typeof obj); // object 对象

  var arr = [1,2,3];
  alert(typeof arr); //object

  var json ={name:'lay',age:5};
  alert(typeof json); //object
  alert(json.name); // lay 通过'.'的方式找到对应的 属性值;

  var n = null;
  alert(typeof n); //object

6>undefined(未定义)
  var u;
  alert(typeof u); //undefined

--JS数据类型转换--:
强制类型转换(显式类型转换)
方法一:
1>字符串:
  var a ='100';
  alert(Number(a)); //100

  var b =''; //空字符串、空格
  alert(Number(b)); //0

2>布尔值
  var t = true; //true 1 false 0
  alert(Number(t)); //1

3>空数组
  var arr =[];
  alert(Number(arr)); //0
注:数组里面有一个数就可以转,多个话,会显示 NaN

4>NULL
  var n =null;
  alert(Number(n)); // 0

5>函数、对象、window、json、undefind强转后都是NaN
  var fn =function(){alert(1)};
  alert(Number(fn)); //NaN

方法二:
parseInt() 与 parseFloat()
  var b ='100px';
  alert(parseInt(b)); //100

  var b ='100px21321321';
  alert(parseInt(b)); //100 遇到p发现不是数字,停止转换;

  var b ='+100';
  alert(parseInt(b)) //100

  var b ='12.35''
  alert(parseInt(b)); //12 遇到点发现不是数字,停止转换;

  var c ='12.36元';
  alert(parseFloat(c)); //12.36

注:
1.parseInt()只转含有数字的字符,其它非数字的,都会返回NaN;
2.parseInt()遇到"+ - * / "和空格,会识别后,去转后面的数。不会直接返回NaN;
3.parseInt(a,b):括号中的参数是有两个的,a代表要转换的字符,b代表是按照几进制转,默认是10进制,比如输入2,就是2进制转换;

**转换步骤:

parseInt会从左到右一个字符一个字符的转,当遇到非数字的字符时,会停止转换,后面的那些全部舍去,即使后面还会有数字,也不会再检查去转了。

隐式类型转换
+ :数字+字符串,变成字符串
  例:200+'3' //2003

- * / % :使用字符串与数字可以相运算,变成数字
  例:'200' - 3 ; // 得197

++ -- :'10'++ '10'-- 变成数字
  例:var a ='10'; a++; //11

>< :注意是数字的比较,还是字符串的比较;


'10'>9 数字与字符串比较,会将字符串转换为数字
再进行比较;


字符串与字符串比较,是一位一位的比较;
  例:'10'>'9'
这里是第一位的1和9比,所以返回是false;

! : 取反

== :比较的是值;
===:先比较类型,再比较值;(这个比较严谨)

NsN:not a mumber 不是个数字的数字类型
alert(typeof NaN) ; // number 属于数字类型

注意:一旦写程序中出现:NaN肯定进行了非法的运算操作;

NaN的特性:
1.NaN属于数字类型,但不是数字;
2.NaN在布尔里面是false;
3.NaN===NaN是false; NaN与自己不相等;

isNaN():可以说成,确实不是一个数字;是js自带
的一个方法;

作用:可以判断某些值是不是数字;
返回的是布尔值,是数字返回false,不是数字返回true;

例子:alert(isNaN('250')); //false
内部判断步骤:
先调用Number('250') -->转换成250-->再判断是不是一个数字,最后返回;

说明:从HTML中拿到的内容,类型都是字符串;

转载于:https://www.cnblogs.com/nemoDuoo/p/4566425.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值