JavaScript 类型转换

类型转换

— 类型转换包括饮食类型转换和显示类型转换

显示类型转换:

1.Number(mix)
2.parseInt(string.radix)
3.parseFloat(string)
4.toString(radix)
5.String(mix)
6.Boolean()

1.将内容转换成数字

经历number,不管能不能转换数字,数字类型都会变成number(例如会出现number:NaN).

2.将内容转换成整型

  • 小数点会变成整型
    true、false、null均转换成 number : NaN

  • 还可以转换成各个进制的数:
    var demo = “10”;
    var num = parseInt(demo,16);
    表示:以目标进制为基底转换为10进制。
    以16进制为基底,把它转换成10进制。

  • 从字符串首位开始看,截止到非数字停止

3.将内容转换成浮点类型

4.将十进制转换成目标进制

将现有内容的部分转换成字符串
想将哪个转换成字符串类型就把它写进demo

例题:

  • var demo = 123;
    var num = demo.toString();
    console.log(typeof(num)+ “:” + num);
    //string : 123
    但是undefined、null不能用toString ,会报错。
  • 以十进制为基底转换成目标进制
    var demo = 10;
    var num = demo.toString(8);
    console.log(typeof(num)+ “:” + num);
    以十进制为基底转换成八进制。
    // 12

5.将内容转换成字符串

不管是什么内容都会转换成字符串,包括undefined、true都会变成string:内容。

6.将内容转换成布尔值

除了前面提到的六个表示false的值都为: boolean:true

隐示类型转换:

1.isNaN()
2.++/– +/-
3.+
4.-*/%
5.&&||!
6.<> <= >=
7.== !=

1.步骤:函数会现将里面的数用转换Number()类型转换,再与NaN进行比对,一致则结果为true,不一致为false。
console.log(isNaN(“abc”));
//true

过程:Number(‘abc’)–>NaN
隐式地调用Number()。

console.log(isNaN(null));
//false

console.log(isNaN(undefined));
//true

2.++、–都是先转换成Number()类型,再进行计算。
var a = “abc”;
a ++ ;
//NaN 但此时typeof(a),它的类型是number型的。

+-(正负)
+a;
-a;
都会把它变换成数字。

3.+(加)
当加号两侧有一个字符串是string时,就会把加号两侧都转换成string。

4.-(减号)
还是将其先转换为Number()

5.与


均为boolean()转换

6.
var a = 1 > “2”
console.log(a + “:” + typeof(a) );
//false : boolean 有数字就均转换成数字比较。

var a = “3” > “2”
console.log(a + “:” + typeof(a) );
//true : boolean
没有类型转换,比较字符串的ascll码。

7.
var a = 1 == true;
console.log(a + “:” + typeof(a) );
有boolean()的隐式类型转换。
同理,!= 也有

几个特殊的:
(1)false > true
//false
转换成数字,0不大于1

(2)2 > 3 < 1
//true
2 > 3,为false(0),0 < 1 是正确的。

(3)undefined > 0
//false
undefined < 0
//false
undefined == 0
//false

null > 0
//false
null < 0
//false
null == 0
//false

undefined == null
//true

(4)NaN == NaN
//false

(5)不发生类型转换的绝对等于和绝对不等于: === !===

(6)变量定义完了才能访问
定义变量:var a = 123;
访问到123.

当变量没定义就使用,就会报错。
但有一种及其特殊的情况是不报错的:
当把未定义的数放到typeof()中,是不会报错的,并且还会打印出值来。

console.log(typeof(a));
//undefined

console.log(typeof (typeof(a)));
//string
第一个typeof()返回的是字符串的:“undefined”

返回的六种值(Undefined,null,NaN,“”,0,false
),均为字符串。

练习题:

var str = false + 1console.log(str);//1 false转换成number类型为0

var demo = false == 1console.log(demo);//false  false不等于1

iftypeof(a)&&-true + (undefined)+ ""){
    console.log('可以打印');   //undefined&&-1=undefined+"undefined"

if11 + "11" * 2 == 33){
    console.log ('可以打印');  //11 + "22"=11+22=33
}

!!" " + !!"" - !!false||document.write('不能打印'); //!!表示本身
                                                     //空字符串+空串=1+0
                                                     //原式=1+0-0=1
                                                     //1||...
                                                     //不能打印
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值