使弱类型的语言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 相关文章推荐
Javascript 获取链接(url)参数的方法[正则与截取字符串]
Feb 09 Javascript
jquery实现固定顶部导航效果(仿蘑菇街)
Mar 21 Javascript
面向对象设计模式的核心法则
Nov 10 Javascript
JS实现自适应高度表单文本框的方法
Feb 25 Javascript
javascript实现鼠标放上后下边对应内容变换的效果
Aug 06 Javascript
jquery通过扩展select控件实现支持enter或focus选择的方法
Nov 19 Javascript
JavaScript File分段上传
Mar 10 Javascript
jQuery EasyUI封装简化操作
Sep 18 Javascript
Bootstrap图片轮播组件Carousel使用方法详解
Oct 20 Javascript
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
Nov 14 jQuery
使用vue2实现购物车和地址选配功能
Mar 29 Javascript
js实现div色块碰撞
Jan 16 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
PHP面向对象编程快速入门
2006/12/14 PHP
php日历[测试通过]
2008/03/27 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
2016/01/08 PHP
PHP使用反射机制实现查找类和方法的所在位置
2016/04/22 PHP
详解PHP处理字符串类似indexof的方法函数
2017/06/11 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
2017/08/01 PHP
学习JavaScript编程语言的8张思维导图分享
2015/03/27 Javascript
vue获取元素宽、高、距离左边距离,右,上距离等还有XY坐标轴的方法
2018/09/05 Javascript
NodeJs实现简单的爬虫功能案例分析
2018/12/05 NodeJs
微信小程序用户拒绝授权的处理方法详解
2019/09/20 Javascript
JS实现简单tab选项卡切换
2019/10/25 Javascript
python获得linux下所有挂载点(mount points)的方法
2015/04/29 Python
python操作MySQL 模拟简单银行转账操作
2017/09/27 Python
PyQt5每天必学之日历控件QCalendarWidget
2018/04/19 Python
python+selenium实现自动化百度搜索关键词
2019/06/03 Python
FFrpc python客户端lib使用解析
2019/08/24 Python
numpy np.newaxis 的实用分享
2019/11/30 Python
Python API 操作Hadoop hdfs详解
2020/06/06 Python
css3背景_动力节点Java学院整理
2017/07/11 HTML / CSS
CSS3实现10种Loading效果
2016/07/11 HTML / CSS
css3 clip实现圆环进度条的示例代码
2018/02/07 HTML / CSS
Ticketmaster德国票务网站:购买音乐会和体育等门票
2016/11/14 全球购物
Canon佳能美国官方商店:购买数码相机、数码单反相机、镜头和打印机
2016/11/15 全球购物
美国购买新书和二手书网站:Better World Books
2018/10/31 全球购物
abstract class和interface有什么区别
2013/08/04 面试题
农救科工作职责
2013/11/27 职场文书
学生自我评语大全
2014/04/18 职场文书
大学生新学期计划书
2014/04/28 职场文书
教书育人演讲稿
2014/09/11 职场文书
2014年9.18纪念日演讲稿
2014/09/14 职场文书
学校开除通知书
2015/04/25 职场文书
违纪开除通知书
2015/04/25 职场文书
2015年村党支部工作总结
2015/04/30 职场文书
百万英镑观后感
2015/06/09 职场文书
2016十一国庆节慰问信
2015/12/01 职场文书
vue3种table表格选项个数的控制方法
2022/04/14 Vue.js