使弱类型的语言JavaScript变强势


Posted in Javascript onJune 22, 2009

弱类型的Javascript不会按照程序员的愿望从实际的变量类型到所需要的数据类型转换,例如一个非常常见的错误,在浏览器脚本中,从表单控件中获取用户将要输入的一个数值类型的变量与另一个数值变量的和.因为变量类型在表单控件中是字符串类型(计时字符串序列包含一个数字)这种尝试将会添加那个字符串到变量,即使这些值碰巧是一些数字,结果在第二个变量将会被转换为字符串类型,在最后只会把从表单控件中得到的变量添加到第一个字符串末尾。

所以强制类型转换还是比较重要的,下面看一下它的几个强制转换的函数:

1. Boolean(value):把值转换成Boolean类型;

2. Nnumber(value):把值转换成数字(整型或浮点数);

3. String(value):把值转换成字符串。

我们先来看Boolean():在要转换的值为“至少有一字符的字符串”、“非0的数字”或“对象”,那么Boolean()将返回true,如果要转换的值为“空字符串”、“数字0”、“undefined”,“null”这些话,那么Boolean()会返回false。你可以用以下代码来测试

以下为引用的内容:   var t1 = Boolean("");//返回false,空字符串var t2 = Boolean("s");//返回true,非空字符串var t3 = Boolean(0);//返回false,数字0var t3 = Boolean(1),t4 = Boolean(-1);//返回true,非0数字var t5 = Boolean(null),t6 = Boolean(undefined);//返回falsevar t7 = Boolean(new Object());//返回true,对象

再来看看Number():Number()与parseInt()和parseFloat()类似,它们区别在于Number()转换是整个值,而parseInt()和parseFloat()则可以只转换开头的数字部分,例如:Number("1.2.3"),Number("123abc")会返回NaN,而parseInt("1.2.3")返回1、parseInt("123abc")返回123、parseFloat("1.2.3")返回1.2、parseFloat("123abc")返回123。Number()会先判断要转换的值能否被完整的转换,然后再判断是调用parseInt()或parseFloat()。下面列了一些值调用Number()之后的结果:

以下为引用的内容: Number(false)  0Number(true)  1Number(undefined)  NaNNumber(null)  0Number("1.2")  1.2 Number("12")  12Number("1.2.3")  NaNNumber(new Object())  NaNNumber(123)  123

最后是String():这个以比较简单了,它可以把所有类型的数据转换成字符串,如:String(false)---"false"、String(1)---"1"。它和toString()方法有些不同,区别在于:

以下为引用的内容:   var t1 = null;var t2 = String(t1);//t2的值 "null"var t3 = t1.toString();//这里会报错var t4;var t5 = String(t4);//t5的值 "undefined
Javascript 相关文章推荐
简单通用的JS滑动门代码
Dec 19 Javascript
js弹窗代码 可以指定弹出间隔
Jul 03 Javascript
fancybox1.3.1 基于Jquery的插件在IE中图片显示问题
Oct 01 Javascript
将input file的选择的文件清空的两种解决方案
Oct 21 Javascript
JS数组去重与取重的示例代码
Jan 24 Javascript
javascript定义类和类的实现实例详解
Dec 01 Javascript
Angular中$compile源码分析
Jan 28 Javascript
javascript宿主对象之window.navigator详解
Sep 07 Javascript
vue-router路由懒加载的实现(解决vue项目首次加载慢)
Aug 28 Javascript
JavaScript实现表单注册、表单验证、运算符功能
Oct 15 Javascript
vue在自定义组件中使用v-model进行数据绑定的方法
Mar 25 Javascript
vue.js 子组件无法获取父组件store值的解决方式
Nov 08 Javascript
Javascript 代码也可以变得优美的实现方法
Jun 22 #Javascript
PNG背景在不同浏览器下的应用
Jun 22 #Javascript
JavaScript 新手24条实用建议[TUTS+]
Jun 21 #Javascript
ExtJS扩展 垂直tabLayout实现代码
Jun 21 #Javascript
javascript 异常处理使用总结
Jun 21 #Javascript
js 匿名调用实现代码
Jun 19 #Javascript
JS 拼图游戏 面向对象,注释完整。
Jun 18 #Javascript
You might like
执行、获取远程代码返回:file_get_contents 超时处理的问题详解
2013/06/25 PHP
php单链表实现代码分享
2016/07/04 PHP
ThinkPHP发送邮件示例代码
2016/10/08 PHP
PHP文件上传、客户端和服务器端加限制、抓取错误信息、完整步骤解析
2017/01/12 PHP
js静态作用域的功能。
2006/12/25 Javascript
超简单的jquery的AJAX用法
2010/05/10 Javascript
基于Jquery的表格隔行换色,移动换色,点击换色插件
2010/12/22 Javascript
jquery图片放大镜功能的实例代码
2013/03/26 Javascript
js将json格式内容转换成对象的方法
2013/11/01 Javascript
JavaScript基本数据类型及值类型和引用类型
2015/08/25 Javascript
下一代Bootstrap的5个特点 超酷炫!
2016/06/17 Javascript
浅谈Node.js:fs文件系统模块
2016/12/08 Javascript
JavaScript数据结构与算法之二叉树添加/删除节点操作示例
2019/03/01 Javascript
小程序采集录音并上传到后台
2019/11/22 Javascript
vue+Element中table表格实现可编辑(select下拉框)
2020/05/21 Javascript
JavaScript实现简易计算器小功能
2020/10/22 Javascript
Python中if __name__ == "__main__"详细解释
2014/10/21 Python
matplotlib中legend位置调整解析
2017/12/19 Python
Python语言的变量认识及操作方法
2018/02/11 Python
python 实现数字字符串左侧补零的方法
2018/12/04 Python
windows下python安装pip方法详解
2020/02/10 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
2020/06/02 Python
什么是Python包的循环导入
2020/09/08 Python
香港士多网上超级市场:Ztore
2021/01/09 全球购物
财务经理岗位职责
2013/11/09 职场文书
大学自荐信
2013/12/12 职场文书
人力资源主管岗位职责
2014/01/29 职场文书
陈欧的广告词
2014/03/18 职场文书
学生请假条
2014/04/11 职场文书
院党委组织查摆问题对照检查材料思想汇报2014
2014/10/08 职场文书
2014小学一年级班主任工作总结
2014/12/05 职场文书
先进个人自荐书
2015/03/06 职场文书
民事申诉状范本
2015/05/20 职场文书
你真的了解redis为什么要提供pipeline功能
2021/06/22 Redis
mysql如何查询连续记录
2022/05/11 MySQL
关于mysql中string和number的转换问题
2022/06/14 MySQL