使弱类型的语言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 相关文章推荐
点击文章内容处弹出页面代码
Oct 01 Javascript
ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法
Jun 12 Javascript
深入理解JavaScript系列(8) S.O.L.I.D五大原则之里氏替换原则LSP
Jan 15 Javascript
通过JS自动隐藏手机浏览器的地址栏实现原理与代码
Jan 02 Javascript
让IE8浏览器支持function.bind()方法
Oct 16 Javascript
浅谈javascript中createElement事件
Dec 05 Javascript
jQuery动态添加及删除表单上传元素的方法(附demo源码下载)
Jan 15 Javascript
两种方法解决javascript url post 特殊字符转义 + & #
Apr 13 Javascript
Angularjs实现页面模板清除的方法
Jul 20 Javascript
JS面向对象编程实现的拖拽功能案例详解
Mar 03 Javascript
Vue中computed及watch区别实例解析
Aug 01 Javascript
JavaScript实现简单日历效果
Sep 11 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
《OVERLORD》手游英文版即将上线 手机上也能扮演骨王
2020/04/09 日漫
php数组去重复数据示例
2014/02/25 PHP
php遍历替换目录下文件指定内容的方法
2016/11/10 PHP
PHP asXML()函数讲解
2019/02/03 PHP
可缩放Reloaded-一个针对可缩放元素的复用组件
2007/03/10 Javascript
javascript预览上传图片发现的问题的解决方法
2010/11/25 Javascript
js动态在form上插入enctype=multipart/form-data的问题
2012/05/24 Javascript
通过pjax实现无刷新翻页(兼容新版jquery)
2014/01/31 Javascript
jQuery中siblings()方法用法实例
2015/01/08 Javascript
JavaScript、tab切换完整版(自动切换、鼠标移入停止、移开运行)
2016/01/05 Javascript
基于jQuery实现左侧菜单栏可折叠功能
2016/12/27 Javascript
ReactNative之FlatList的具体使用方法
2017/11/29 Javascript
vue vuex vue-rouert后台项目——权限路由(适合初学)
2017/12/29 Javascript
JavaScript实现计算多边形质心的方法示例
2018/01/31 Javascript
前端axios下载excel文件(二进制)的处理方法
2018/07/31 Javascript
通过微信公众平台获取公众号文章的方法示例
2019/12/25 Javascript
TensorFlow.js 微信小程序插件开始支持模型缓存的方法
2020/02/21 Javascript
JavaScript实现世界各地时间显示
2020/09/07 Javascript
编写Python的web框架中的Model的教程
2015/04/29 Python
在Django框架中编写Contact表单的教程
2015/07/17 Python
python虚拟环境virtualenv的安装与使用
2017/09/21 Python
python实现生成字符串大小写字母和数字的各种组合
2019/01/01 Python
Python列表与元组的异同详解
2019/07/02 Python
Python3.7 读取 mp3 音频文件生成波形图效果
2019/11/05 Python
Python while true实现爬虫定时任务
2020/06/08 Python
django form和field具体方法和属性说明
2020/07/09 Python
Python使用openpyxl复制整张sheet
2021/03/24 Python
教师实习自我鉴定
2013/12/14 职场文书
幼儿教师国培感言
2014/02/19 职场文书
电子商务专业应届生求职信
2014/05/28 职场文书
党风廉政建设调研报告
2015/01/01 职场文书
长辈生日祝福语大全(72句)
2019/08/09 职场文书
60句有关成长的名言
2019/09/04 职场文书
Python爬虫基础之初次使用scrapy爬虫实例
2021/06/26 Python
MySQL系列之二 多实例配置
2021/07/02 MySQL
Python OpenCV超详细讲解基本功能
2022/04/02 Python