使弱类型的语言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 Array(数组)相关方法简述
Jul 25 Javascript
使用EVAL处理jqchart jquery 折线图返回数据无效的解决办法
Nov 26 Javascript
js实现文字滚动效果
Mar 03 Javascript
BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页tabs、模态框、菜单定位)
Dec 01 Javascript
vue组件初学_弹射小球(实例讲解)
Sep 06 Javascript
angularjs实现猜大小功能
Oct 23 Javascript
基于JavaScript实现幸运抽奖页面
Jul 05 Javascript
vue: WebStorm设置快速编译运行的方法
Oct 18 Javascript
使用JS判断页面是首次被加载还是刷新
May 26 Javascript
微信内置开发 iOS修改键盘换行为搜索的解决方案
Nov 06 Javascript
vue自定义组件实现双向绑定
Jan 13 Vue.js
一起来看看Vue的核心原理剖析
Mar 24 Vue.js
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 && 逻辑与运算符使用说明
2010/03/04 PHP
PHP操作数组的一些函数整理介绍
2011/07/17 PHP
测试php函数的方法
2013/11/13 PHP
thinkPHP2.1自定义标签库的导入方法详解
2016/07/20 PHP
自定义一个jquery插件[鼠标悬浮时候 出现说明label]
2011/06/27 Javascript
利用webqq协议使用python登录qq发消息源码参考
2013/04/08 Javascript
jquery 添加节点的几种方法介绍
2013/09/04 Javascript
扩展JS Date对象时间格式化功能的小例子
2013/12/02 Javascript
js中传递特殊字符(+,&)的方法
2014/01/16 Javascript
原生js实现节日时间倒计时功能
2017/01/18 Javascript
vue引入axios同源跨域问题
2018/09/27 Javascript
vue+element-ui+axios实现图片上传
2019/08/20 Javascript
vue中如何添加百度统计代码
2020/12/19 Vue.js
[06:13]DOTA2进化论(修改版)
2013/10/08 DOTA
python 写入csv乱码问题解决方法
2016/10/23 Python
Python编程使用NLTK进行自然语言处理详解
2017/11/16 Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
2018/04/28 Python
详解用python写网络爬虫-爬取新浪微博评论
2019/05/10 Python
在cmd中查看python的安装路径方法
2019/07/03 Python
Python Django 页面上展示固定的页码数实现代码
2019/08/21 Python
python中shell执行知识点
2020/05/06 Python
浅析数据存储的三种方式 cookie sessionstorage localstorage 的异同
2020/06/04 HTML / CSS
护士自荐信怎么写
2013/10/18 职场文书
车间班组长的职责
2013/12/13 职场文书
高中毕业自我鉴定
2013/12/19 职场文书
学前教育毕业生自荐信范文
2013/12/24 职场文书
幼儿园庆六一游园活动方案
2014/01/29 职场文书
经典洗发水广告词
2014/03/13 职场文书
党员公开承诺事项
2014/03/25 职场文书
2015年幼儿园教研活动总结
2015/03/25 职场文书
装修公司工程部经理岗位职责
2015/04/09 职场文书
清明祭英烈活动总结
2015/05/11 职场文书
宾馆安全管理制度
2015/08/06 职场文书
2016年度创先争优活动总结
2016/04/05 职场文书
搞笑Gif:这么白这么长的腿像极了一楼的女朋友
2022/03/21 杂记
python3 字符串str和bytes相互转换
2022/03/23 Python