使弱类型的语言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 相关文章推荐
VBScript版代码高亮
Jun 26 Javascript
javascript记录文本框内文字个数检测文字个数变化
Oct 14 Javascript
JavaScript中对象property的读取和写入方法介绍
Dec 30 Javascript
IE6-IE9使用JSON、table.innerHTML所引发的问题
Dec 22 Javascript
网页中JS函数自动执行常用三种方法
Mar 30 Javascript
jQuery插入节点和移动节点用法示例(insertAfter、insertBefore方法)
Sep 08 Javascript
基于jquery实现弹幕效果
Sep 29 Javascript
详解webpack自动生成html页面
Jun 29 Javascript
js链表操作(实例讲解)
Aug 29 Javascript
vue router 通过路由来实现切换头部标题功能
Apr 24 Javascript
Vue项目中如何使用Axios封装http请求详解
Oct 23 Javascript
解决ant-design-vue中menu菜单无法默认展开的问题
Oct 31 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
CI映射(加载)数据到view层的方法
2016/03/28 PHP
详解PHP匿名函数与注意事项
2016/03/29 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
input、button的不同type值在ajax提交表单时导致的陷阱
2009/02/24 Javascript
JavaScript中SQL语句的应用实现
2010/05/04 Javascript
动态加载图片路径 保持JavaScript控件的相对独立性
2010/09/06 Javascript
腾讯UED 漂亮的提示信息效果代码
2011/09/12 Javascript
javascript陷阱 一不小心你就中招了(字符运算)
2013/11/10 Javascript
jQuery toggleClass应用实例(附效果图)
2014/04/06 Javascript
jQuery向后台传入json格式数据的方法
2015/02/13 Javascript
JavaScript验证Email(3种方法)
2015/09/21 Javascript
JavaScript中的splice方法用法详解
2016/07/20 Javascript
dul无法加载bootstrap实现unload table/user恢复
2016/09/29 Javascript
JavaScript重定向URL参数的两种方法小结
2016/10/19 Javascript
实例详解display:none与visible:hidden的区别
2017/03/30 Javascript
JavaScript基础之静态方法和实例方法分析
2018/12/26 Javascript
vue canvas绘制矩形并解决由clearRec带来的闪屏问题
2019/09/02 Javascript
js之切换全屏和退出全屏实现代码实例
2019/09/09 Javascript
JS实现进度条动态加载特效
2020/03/25 Javascript
利用原生JS实现欢乐水果机小游戏
2020/04/23 Javascript
python通过exifread模块获得图片exif信息的方法
2015/03/16 Python
Python利用字典将两个通讯录文本合并为一个文本实例
2018/01/16 Python
python批量从es取数据的方法(文档数超过10000)
2018/12/27 Python
在PyCharm导航区中打开多个Project的关闭方法
2019/01/17 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
2020/06/01 Python
Python通过getattr函数获取对象的属性值
2020/10/16 Python
python实现经纬度采样的示例代码
2020/12/10 Python
实例讲解CSS3中的box-flex弹性盒属性布局
2016/06/09 HTML / CSS
伯克斯奥特莱斯:Burkes Outlet
2019/03/30 全球购物
信息管理专业学生自荐信格式
2013/09/22 职场文书
联谊活动策划书
2014/01/26 职场文书
电大会计学自我鉴定
2014/02/06 职场文书
有限责任公司股东合作协议书范本
2014/10/30 职场文书
神农溪导游词
2015/02/11 职场文书
2015年度酒店客房部工作总结
2015/05/25 职场文书
大学生志愿者心得体会
2016/01/15 职场文书