javascript权威指南--类型转换

类型转换

类型转换的目的
计算机执行算术计算,要求操作数有相同的大小(位的数量相同),存储方式相同,因此需要转换类型
显式转换和隐式转换
隐式转换:编译器可以自动处理这些转换而不需要程序员介入
显示转换:程序员使用强制运算符执行转换
for example–隐式转换

10+"object"//=>"10 object"
"7"*"4"//=>28
var n=1-"X";//=>NaN
n+"object";//=>"NaN objects":NaN转换为字符串"NaN"

类型转换表

原始值转还原始值
原始值转换为布尔值
以下值被转换为false
- undefined
- null
- 0
- -0
- NaN
- “”//null string
原始值转换为对象
原始值通过调用String(),Number(),Boolen()构造为函数,转换为各自的包装对象
- null
- undefined
转换为TypeError(异常)

转换和相等性

  • ==相等运算符
  • ===恒等

相等运算符是数字的比较
- null=undefined//boolen 相等
- “0”==0//字符串转换为数字
- 0==false//比较之前布尔值转换为数字
- “0”==false//比较之前布尔值和字符串都转换为数字
注意值的转化不意味着相等,“==”运算符从不试图将两值进行相等

显式类型转换

javascript 会自动进行类型的转换,但仍需要显示转换
目的使代码的可读性增强
**方法**Boolen(),Number(),String(),Object() 不通过new运算符调用时,作为类型转换函数做类型转换:

Number("3")//=>3
String(false)//=>"false" 或使用false.toString()
Boolen(1)//=>true
Object(3)//=>new Number(3)

除null和undefined外的任何值都具有toString()方法,该方法与String()相同。

//显式转换
object(null)//return null object
object(undefined)//return null object
//隐式转换
Throws Error
X+""//等价于String(x)
+x//等价于Number(x)写成x-0
!!x//等价于Boolen(x)注意为双叹号

toString() 转换参数的可选基数

var n=17;
binary_String=n.toString(2)//转换为“10001”
octal_String=n.toString(8)//转换为“021”
hex_String=n.toString(16)//转换为“0x11

精确类型转换
Number 类中数字到字符串的类型场景定义了三个方法

  • toFixed()根据小数后的指定位数将数字转换为字符串
  • toExponential()根据指数记数法将数字转换为字符串
  • toPrecision()根据有效数字位数将数字转换为字符串
var n=1234567;
n.toFixed(0);//"123457"
n.toFixed(2);//"123456.79"
n.toFixed(5);//"123456.78900"
n.toExponential(1);//"1.2e+5"
n.toExponential(3);//"1.235e+5"
n.tpPrecision(7);//"123456.8"

parseInt(),parseFloat() 全局函数不从属于任何类 parse:理解,解析
灵活且不受限制,parseInt():解析整数
parseFloat()解析浮点数

字符串前缀为“ox”,parseInt()将其解析为十六进制数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值