2021-04-16

##数据类型转换与表达式运算符

2.1 数值类型转换为字符串类型

转换为字符串类型:

toString(radix)、 String(mix) (强制转换为字符串类型)

基本类型:number,string,boolean,null,undefined,symbol
引用类型:也称复杂数据类型 Object,function

检测基本数据类型:typeof 变量名

toString(radix)方法。 除undefined和null之外的所有类型的值都具有toString()方法, 其作用是返回对象的字符串表示。

数组常用方法?
1. push()  //末尾添加
2. shift() //首部删除
3. unshift() //首部添加
4. pop()     //末尾删除
5. splice()  //插入,删除,替换 

​ 多数情况下,调用toString()不必传递参数。但是,在调用数值的toString()方法时,可以传递一个参数:输出数值的基数。默认情况下,toString()方法以十进制格式返回数值的字符串表示。而通过传递参数,toString()可以输出以二进制、八进制、十六进制、乃至其他任意有效进制格式表示的字符串值。

Eg:var num=10; 基数

alert(num.toString()); //”10”

alert(num.toString(2)); //”1010”

alert(num.toString(8)); //”12”

alert(num.toString(10)); //”10”

alert(num.toString(16)); //”a”

说明:通过指定基数,toString()方法会改变输出的值。而数值10根据基数的不同,可以在输出时被转换成不同的数值格式。注意,默认的(没有参数)输出值与指定基数10时的输出值相同。

String(mix)

将任何类型的值转换为字符串, 其规则为:

如果没有toString()方法, 则调用该方法( 传递mix参数) 并返回结果。

将mix转换成原始的字符串,并返回转换后的值。

Eg**:**

var age=11;

var ageString=age.toString(); //字符串”11”

var found=true;

var value1=null;

var value2;

var foundString=found.toString(); //字符串”true”

alert(String(age)); //“11”

alert(String(value1)) //“null”返回这两个值的字面量

alert(String(value2)) //“undefined”

如果是null, 返回” null”

如果是undefined, 返回” undefined”

“”+"" — 字符串连接符 可以进行 隐式转换

在 “”+“” 情况下 只要有一个数据是字符串 就默认 + 是字符串连接符
否侧 就是 数据类型的数学运算符 + 加号 可以进行 number 类型隐式转换

2.2 字符串类型转换为数值型

显示转换: 通过手动进行类型转换, Javascript提供了以下转型函数:

• 转换为数值类型:

Number(mix)、 parseInt(string,radix)、parseFloat(string)

​ 这三个函数可以把非数值转换为数值。第一个函数,即转型函数Number()可以用于任何数据类型,而另外两个函数则专门用于把字符串转换成数值。

Number(mix)

1.如果是布尔值, true和false分别被转换为1和0

2.如果是数字值, 返回本身。

3.如果是null, 返回0.

4.如果是undefined, 返回NaN。

5.如果是字符串, 遵循以下规则:

如果字符串中只包含数字, 则将其转换为十进制( 忽略前导0)

如果字符串中包含有效的浮点格式, 将其转换为浮点数值( 忽略前导0)

如果是空字符串, 将其转换为0

如果字符串中包含非以上格式, 则将其转换为NaN

6.如果是对象, 则调用对象的valueOf()方法, 然后依据前面的规则转换返回的值。 如果转换的结果是NaN, 则调用对象的toString()方法, 再次依照前面的规则转换返回的字符串值。

Eg:

var num1=Number(“hello word”);//NaN 因为其中不包含任何有意义的数字值。

var num1=Number(“”); //0

var num1=Number(“000011”); //11 忽略了前导的零

var num1=Number(true); //1

Number()函数转换字符串比较复杂而且不够合理

parseInt**(string,radix)**

• parseInt(string, radix)函数, 将字符串转换为整数类型的数值。它也有一定的规则:

1.忽略字符串前面的空格, 直至找到第一个非空字符 “ 12343”

2.如果第一个字符不是数字符号或者负号, 返回NaN “a12344”

3.如果第一个字符是数字, 则继续解析直至字符串解析完毕或者遇到一个非数字符号为止 “1234blue” 转换为1234,”blue”完全忽略

4.如果上步解析的结果以0开头, 则将其当作八进制来解析; 如果以0x开头, 则将其当作十六进制来解析

5.如果指定radix参数, 则以radix为基数进行解析

var numl=parseInt(“1234blue”);//1234

var numl=parseInt(“”);//NaN 因为第一个字符不是数字字符或者负号

var numl=parseInt(“0xA”);//10 (十六进制数)

var numl=parseInt(22.5);//22小数点不是有效数字字符

var numl=parseInt(“070”);//56(八进制数)

var numl=parseInt(“70”);//70(十进制数)

var numl=parseInt(“0xf”);//15(十六进制)

特点:直接查看是否符合数值模式,它会忽略字符串前面的空格,直至找到第一个非空格字符。如果第一个字符不是数字字符或者负号,**parseInt()就会返回NaN。也就是说,用parseInt()转换空字符串会返回NaN。

parseFloat**(string)**

• parseFloat(string)函数, 将字符串转换为浮点数类型的数值。

• 它的规则与parseInt基本相同, 但也有点区别: 字符串中第一个小数点符号是有效的, 另外parseFloat会忽略所有前导0, 如果字符串包含一个可解析为整数的数, 则返回整数值而不是浮点数值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值