《JavaScript高级程序设计》阅读笔记(四):ECMAScript中的类型转换

简介:

2.7 类型转换

1、转换成字符串

  所有对象都有toString()方法可以转换成字符串,要注意的是Number类型的toString()方法,它有两种模式,即默认模式和基模式,采用默认模式toString()方法只是用相应的字符串输出对应的10进制数字值,用基模式可以用不同的基输出数字。示例:

1 var iNum1=10;
2 var iNum2=10.0;
3 var iNum3=10;
4
5 alert(iNum1.toString()); //outpus "10"
6 alert(iNum2.toString()); //outpus "10"
7 alert(iNum3.toString(2)); //outpus "1010"
8 alert(iNum3.toString(8)); //outpus "12"
9 alert(iNum3.toString(16)); //outpus "A"

2、转换成数字

  ECMAScript提供了两种把非数字的原始值转换成数字的方法:parseInt()和parseFloat(),需要注意的是parseInt()是逐个字符转换的,直到非数字字符为止。示例程序如下:

1 var iNum1=parseInt("1234blue"); //returns 1234
2 var iNum2=parseInt("0xA"); //returns 10
3 var iNum3=parseInt("22.5"); //returns 22
4 var iNum4=parseInt("blue"); //returns NaN

  parseInt()方法还有基模式,可以把二进制,八进制,十六进制或其他任何进制的字符串转换成整数。基是由parseInt()第二个参数指定的,示例如下:

1 var iNum1=parseInt("AF",16); //returns 175
2 var iNum2=parseInt("10",2); //returns 2
3 var iNum3=parseInt("10",8); //returns 8
4 var iNum4=parseInt("10",10); //returns 10
5 //注意:如果十进制数有前导0要用基数模式
6 var iNum5=parseInt("010"); //returns 8
7 var iNum6=parseInt("010",8); //returns 8
8 var iNum7=parseInt("010",10); //returns 10

  paraseFloat()没有基模式,其他与parseInt()大致相同,示例:

1 var fNum1=paraseFloat("1234blue"); //returns 1234.0
2 var fNum2=paraseFloat("0xA"); //returns NaN
3 var fNum3=paraseFloat("22.5"); //returns 22.5
4 var fNum4=paraseFloat("22.34.5"); //returns 22.34
5 var fNum5=paraseFloat("0908"); //returns 908
6 var fNum6=paraseFloat("blue"); //returns NaN

3、强制类型转换

  ECMAScript中可用的强制类型转换如下:

  Boolean(value)——把给定的值转换成Boolean型

  Number(value)——把给定的值转换成数字(可以是整数或浮点数)

  String(value)——把给定的值转换成字符串

  示例:

 1 var b1=Boolean(""); //false - empty string
2 var b2=Boolean("hi"); //true - not empty string
3 var b3=Boolean(100); //true - not zero number
4 var b4=Boolean(null); //false - null
5 var b5=Boolean(0); //false - zero
6 var b6=Boolean(new Object()); //true object
7
8 var i1=Number(false); //0
9 var i2=Number(true); //1
10 var i3=Number(undefined); //NaN
11 var i4=Number(null); //0
12 var f5=Number("5.5"); //5.5
13 var i6=Number("56"); //56
14 var i7=Number("5.6.7"); //NaN
15 var i8=Number(new Object()); //NaN
16 var i9=Number(100); //100




本文转自Artwl博客园博客,原文链接:http://www.cnblogs.com/artwl/,如需转载请自行联系原作者

相关文章
|
2月前
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
45 0
|
24天前
|
JavaScript 前端开发 安全
ECMAScript 6(以下简称 ES6)的出现为 JavaScript 带来了许多新的特性和改进,其中 let 和 const 是两个非常重要的关键字。
ES6 引入了 `let` 和 `const` 关键字,为 JavaScript 的变量管理带来了革新。`let` 提供了块级作用域和暂存死区特性,避免变量污染,增强代码可读性和安全性;`const` 用于声明不可重新赋值的常量,但允许对象和数组的内部修改。两者在循环、函数内部及复杂项目中广泛应用,有助于实现不可变数据结构,提升代码质量。
23 5
|
23天前
|
自然语言处理 JavaScript 前端开发
ECMAScript 6 的出现为 JavaScript 带来了许多新的特性和改进
这些只是ES6的一些主要特性,它们极大地增强了JavaScript的功能和表现力,使得JavaScript在大型应用开发、前端框架等领域能够更加高效地编写复杂的应用程序。
|
1月前
|
自然语言处理 JavaScript 前端开发
[JS]同事看了我做的this笔记,直摇头,坦言:我还是参考启发博文吧
本文介绍了JavaScript中`this`关键字的重要性和使用规则。作者回顾了早期笔记,总结了`this`指向的各种情况,并分享了最新的理解。文章强调了`this`在不同上下文中的指向,包括对象方法、全局函数、箭头函数等,并提供了改变`this`指向的方法。适合JavaScript开发者参考。
48 2
|
2月前
|
JavaScript 前端开发 编译器
掌握现代化JavaScript:ECMAScript提案与特性
【10月更文挑战第13天】本文介绍了ECMAScript(ES)的最新提案与特性,包括可选链、空值合并运算符、类字段和顶层Await等。通过跟踪TC39提案、使用Babel或TypeScript、测试兼容性以及逐步迁移,开发者可以高效地采用这些新特性,简化代码、提高开发效率并增强应用功能。文章还提供了实战技巧,帮助开发者在现代Web开发中充分利用这些现代化的特性。
|
3月前
|
JavaScript 前端开发 Java
JavaScript笔记(回顾一,基础知识篇)
JavaScript基础知识点回顾,包括语言定义、ECMAScript规范、字面量、变量声明、操作符、关键字、注释、流程控制语句、数据类型、类型转换和引用数据类型等。
JavaScript笔记(回顾一,基础知识篇)
|
2月前
|
JavaScript 前端开发 安全
如何处理 JavaScript 中的类型转换错误?
【10月更文挑战第9天】处理类型转换错误需要综合运用多种方法和策略,同时要保持对潜在问题的警惕性。通过合理的错误处理,可以提高程序的健壮性,减少因类型转换错误带来的负面影响。
33 0
|
2月前
|
JavaScript 前端开发
JS隐式类型转换规则
【10月更文挑战第9天】 不同的 JavaScript 引擎可能在隐式类型转换的具体实现上存在一些细微差别。理解这些隐式类型转换规则对于正确处理数据和避免错误非常重要。
19 0
|
3月前
|
Web App开发 JavaScript 前端开发
探索现代JavaScript开发:ECMAScript提案的未来
JavaScript是最受欢迎的编程语言之一,其发展迅速。ECMAScript(JS的标准化版本)的提案和更新为其带来了诸多新特性和改进。本文将介绍值得关注的ECMAScript提案,如可选链、空值合并运算符、逻辑赋值运算符、类字段和顶级Await,并展示如何利用这些新特性提升开发效率和代码质量。通过关注TC39提案流程、使用Babel和TypeScript等工具,开发者可以提前体验并利用这些新特性。随着JavaScript的不断进步,未来将有更多令人期待的功能加入。
|
3月前
|
JavaScript 前端开发
JavaScript 类型转换
JavaScript 类型转换
27 4