使弱类型的语言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 相关文章推荐
jQuery 入门级学习笔记及源码
Jan 22 Javascript
JQuery选择器、过滤器大整理
May 26 Javascript
JQuery控制Radio选中方法分析
May 29 Javascript
JavaScript严格模式详解
Jan 16 Javascript
socket.io学习教程之基础介绍(一)
Apr 29 Javascript
jquery实现下拉菜单的手风琴效果
Jul 23 jQuery
深入理解ES6学习笔记之块级作用域绑定
Aug 19 Javascript
JavaScript封装的常用工具类库bee.js用法详解【经典类库】
Sep 03 Javascript
微信小程序实现通过双向滑动缩放图片大小的方法
Dec 30 Javascript
微信小程序基于Taro的分享图片功能实践详解
Jul 12 Javascript
Vue实现简单的跑马灯
May 25 Javascript
详解Vue的列表渲染
Nov 20 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中in_array函数用法分析
2014/11/15 PHP
thinkphp文件引用与分支结构用法实例
2014/11/26 PHP
推荐一本PHP程序猿都应该拜读的书
2014/12/31 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
2016/08/29 PHP
javascript 有用的脚本函数
2009/05/07 Javascript
javascript for循环从入门到偏门(效率优化+奇特用法)
2012/08/01 Javascript
js+数组实现网页上显示时间/星期几的实用方法
2013/01/18 Javascript
js实现Select下拉框具有输入功能的方法
2015/02/06 Javascript
jQuery仿gmail实现fixed布局的方法
2015/05/27 Javascript
jQuery获取DOM节点实例分析(2种方式)
2015/12/15 Javascript
详解webpack 多页面/入口支持&公共组件单独打包
2017/06/29 Javascript
clipboard在vue中的使用的方法示例
2018/10/19 Javascript
微信小程序如何引用外部js,外部样式,公共页面模板
2019/07/23 Javascript
JS 自执行函数原理及用法
2019/08/05 Javascript
uniapp微信小程序:key失效的解决方法
2021/01/20 Javascript
python 图片验证码代码分享
2012/07/04 Python
Python基于TCP实现会聊天的小机器人功能示例
2018/04/09 Python
Pyqt实现无边框窗口拖动以及窗口大小改变
2018/04/19 Python
Django项目中包含多个应用时对url的配置方法
2018/05/30 Python
python 按不同维度求和,最值,均值的实例
2018/06/28 Python
Python实现的栈、队列、文件目录遍历操作示例
2019/05/06 Python
在PyCharm中控制台输出日志分层级分颜色显示的方法
2019/07/11 Python
Skyscanner加拿大:全球旅行搜索平台
2018/11/19 全球购物
Bibloo荷兰:女士、男士和儿童的服装、鞋子和配饰
2019/02/25 全球购物
市场营销大学生职业规划书
2014/02/25 职场文书
《李广射虎》教学反思
2014/04/27 职场文书
青年安全生产示范岗事迹材料
2014/05/04 职场文书
入职担保书范文
2014/05/21 职场文书
常务副县长“四风”个人对照检查材料思想汇报
2014/10/02 职场文书
2014幼儿园保育员工作总结
2014/11/10 职场文书
优秀大学生自荐信
2015/03/26 职场文书
个人工作违纪检讨书
2015/05/05 职场文书
2016公司中秋节寄语
2015/12/07 职场文书
高中信息技术教学反思
2016/02/16 职场文书
2019大学生实习报告
2019/06/21 职场文书
mysql序号rownum行号实现方式
2022/12/24 MySQL