javascript typeof 类型转换

JavaScript有五个基本的值类型:number、string、boolean、null和undefined。

除了null和undefined以外,其他三个具有所谓的基本包装对象。可以使用内置构造函数Number()、String()、Boolean()创建包装对象

boolean是JS的6种数据类型(number,string,object,boolean,null,undefined)之一,有且只有两种值:true和false

一、六种数据类型

  1. number
    1. 练习:

       
      1. var num = 1 * "1";console.log(typeof(num) + " : " + num);---->number : 1
      2. var num = 1 - "1";console.log(typeof(num) + " : " + num);---->number : 0
      3. var num = "2" * "1";console.log(typeof(num) + " : " + num);---->number : 2
      4. var num = 1 * "1";console.log(typeof(num) + " : " + num);---->number : 1
  2. string
  3. boolean
  4. undefined
  5. object:范范的引用值,比如数字、json等等;还有特殊的null,作为历史遗留问题,是用于占位的对象
  6. function:函数

二、作用

 用于查看数据类型的

三、使用方法

  1. typeof(test)
  2. typeof test

四、显示类型转换和隐示类型转换

  1. 显示类型转换
    1. 分6种类型:
      1. Number(mix):
        1. 看起来不是数字的就不能转为数字,比如undefined,'abvc'
        2. null转为数字为0
        3. 练习:
          1. var num = Number('12');console.log(typeof(num) + " : " + num);---->number : 12
          2. var num = Number(true);console.log(typeof(num) + " : " + num);---->number : 1
          3. var num = Number(false);console.log(typeof(num) + " : " + num);---->number : 0
          4. var num = Number(null);console.log(typeof(num) + " : " + num);---->number : 0
          5. var num = Number(undefined);console.log(typeof(num) + " : " + num);---->number : NAN
          6. var num = Number('a');console.log(typeof(num) + " : " + num);---->number : NAN
          7. var num = Number('-12');console.log(typeof(num) + " : " + num);---->number : -12
          8. var num = Number('12abc');console.log(typeof(num) + " : " + num);---->number : NAN
      2. parseInt(string, radix):将目标进制radox为基底将string转换为十进制
        1. 转换为整型,其目的为把里面的东西转换为整型的数Z
        2. 从数字位开始往后看,看到非数字位截止,然后返回这段数字
          1. 练习:
            1. var num = parseInt('12');console.log(typeof(num) + " : " + num);---->number : 12
            2. var num = parseInt('12.3sdf');console.log(typeof(num) + " : " + num);---->number : 12
            3. var num = parseInt(true);console.log(typeof(num) + " : " + num);---->number : NAN
            4. var num = parseInt(false);console.log(typeof(num) + " : " + num);---->number : NAN
            5. var demo = '100px'; var num = parseInt(demo); console.log(num);---->100
        3. parseInt(test, radix):将test转化为radix的进制格式,redix取值范围为2-36
          1. 练习:
            1. var demo='a'; var num = parseInt(demo, 16); console.log(typeof(num) + ":" + num);--->number : 10
      3. parseFloat(string)
        1. 转换为浮点数字
        2. 从数字位开始往后看,看到包括点的非数字位截止,然后返回这段数字
          1. 练习:
            1. var num = parseFloat('12.3sdf');console.log(typeof(num) + " : " + num);---->number : 12.3
      4. String(mix):致力于将内容转为字符串
      5. Boolean(mix):致力于将内容转为boolean(true|false)
        1. 除了以下六个值,其他都是自动转为true:null,undefined,+0,-0,"",NAN
      6. toString():target.toString(),即某对象将自己转为字符串
        1. 除了以下两个不能转其他都可以:undefined,nul
        2. PS:一般转字符串,就直接用+""就可以了
        3. toString()有个比较好玩的用法:toString(radix),以十进制为基底转换为目标进制
          1. 练习:
            1. var demo = 10; var num = demo.toString(8); console.log(num);--->12
            2. 将二进制的10101010转换为十六进制:
              1. var demo = 10101010; var num = parseInt(demo,2); var target = num.toString(16);
  2. 隐式类型转换:其转换规则为,调用的也是显示转换的规则
    1. isNaN(content):
      1. 判断内容是否为NAN,并且将结果返回回来
      2. 判断规则是:将content放到Number中,即Number(content)并返回结果, 将结果再和NaN比对,即Number(content)==NaN
      3. 练习:
        1. console.log(isNaN(null));--->false
        2. console.log(isNaN(123));--->false
        3. console.log(isNaN("NaN"));--->true
        4. console.log(isNaN(undefined));--->true
        5. console.log(isNaN('1234abc'));--->true
    2. ++/--  +/-(一元正负):其隐式类型装换调用的是Number()
      1. ++/--:对象在调用之前,先调用了Number(content),然后再进行++/--
        1. var a = '123'; a ++; console.log(a);-->124
        2. var a = 'abc'; a ++; console.log(typeof(a) + ":" + a);--> number : NaN
      2. +/-: 对象在调用之前,先调用了Number(content)
        1. var content = + "abc"; console.log(typeof(content)+ ":" + content); --> number  : NaN
        2. var content = + "123"; console.log(typeof(content)+ ":" + content); --> number  : 123
    3. +:其隐式类型装换调用的是String(),当+两侧有一个是字符串时,就会将两个都转换为字符串,作为连接符
    4. -*/%:其隐式类型装换调用的是Number()
      1. 练习
        1. var content = "1" * 1;console.log(typeof(content) + ":" + content);--> number:1;
        2. var content = "1" - 1;console.log(typeof(content) + ":" + content);--> number:0;
        3. var content = "1" / 1;console.log(typeof(content) + ":" + content);--> number:1;
        4. var content = "1" % 1;console.log(typeof(content) + ":" + content);--> number:0;
        5. var content = "asdf1" * 1;console.log(typeof(content) + ":" + content);--> number:NaN;
    5. && || !
    6. < > <= >=
      1. 当比较符两侧有数字类型时,则转换为数字比较
      2. 当比较符两侧有字符串类型时,则转换为字符串对应的ASIC比较 
    7. == !=

补充:

console.log(a);--->报错:a is not defined

console.log(typeof(a));-->undefined

console.log(typeof(typeof(a)));-->string

不发生类型转换的

=== 和!==,比较符两侧必须完全相等才可以

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值