使弱类型的语言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 css样式操作代码(批量操作)
Oct 09 Javascript
jquery validate使用攻略 第四步
Jul 01 Javascript
javascript预览上传图片发现的问题的解决方法
Nov 25 Javascript
改变隐藏的input中value值的方法
Mar 19 Javascript
JS中使用apply、bind实现为函数或者类传入动态个数的参数
Apr 26 Javascript
Ajax的概述与实现过程
Nov 18 Javascript
JavaScript之面向对象_动力节点Java学院整理
Jun 29 Javascript
JS库之Waypoints的用法详解
Sep 13 Javascript
限时抢购-倒计时的完整实例(分享)
Sep 17 Javascript
jQuery常见的遍历DOM操作详解
Sep 05 jQuery
将RGB值转换为灰度值的简单算法
Oct 09 Javascript
JavaScript实现简单的图片切换功能(实例代码)
Apr 10 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
Thinkphp将二维数组变为标签适用的一维数组方法总结
2014/10/30 PHP
php继承中方法重载(覆盖)的应用场合
2015/02/09 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
2019/03/21 PHP
laravel 实现划分admin和home 模块分组
2019/10/15 PHP
ASP Json Parser修正版
2009/12/06 Javascript
关于javascript function对象那些迷惑分析
2011/10/24 Javascript
原生js实现跨浏览器获取鼠标按键的值
2013/04/08 Javascript
jquery操作select大全
2014/04/25 Javascript
node.js中的fs.fstat方法使用说明
2014/12/15 Javascript
javascript基础语法——全面理解变量和标识符
2016/06/02 Javascript
JS+CSS3实现超炫的散列画廊特效
2016/07/16 Javascript
AngularJs表单校验功能实例代码
2017/02/09 Javascript
jQuery实现简单的滑动导航代码(移动端)
2017/05/22 jQuery
node.js+captchapng+jsonwebtoken实现登录验证示例
2017/08/17 Javascript
vue一个页面实现音乐播放器的示例
2018/02/06 Javascript
vue数据传递--我有特殊的实现技巧
2018/03/20 Javascript
怎样使你的 JavaScript 代码简单易读(推荐)
2019/04/16 Javascript
vue 中 beforeRouteEnter 死循环的问题
2019/04/23 Javascript
微信自定义分享链接信息(标题,图片和内容)实现过程详解
2019/09/04 Javascript
javascript读取本地文件和目录方法详解
2020/08/06 Javascript
[04:50]2019DOTA2高校联赛秋季赛四强集锦
2019/12/27 DOTA
巧用Python装饰器 免去调用父类构造函数的麻烦
2012/05/18 Python
python实现八大排序算法(2)
2017/09/14 Python
python unittest实现api自动化测试
2018/04/04 Python
python处理数据,存进hive表的方法
2018/07/04 Python
在Python中定义一个常量的方法
2018/11/10 Python
python+selenium 定位到元素,无法点击的解决方法
2019/01/30 Python
python关闭占用端口方式
2019/12/17 Python
关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题
2020/11/28 Python
lululemon美国官网:瑜伽服+跑步装备
2018/11/16 全球购物
迎七一演讲稿
2014/09/12 职场文书
质量保证书怎么写
2015/02/27 职场文书
2016大学生入党积极分子心得体会
2016/01/06 职场文书
Golang全局变量加锁的问题解决
2021/05/08 Golang
Python机器学习应用之工业蒸汽数据分析篇详解
2022/01/18 Python