使弱类型的语言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远程获取网页源代码实例
Sep 05 Javascript
jquery删除指定的html标签并保留标签内文本内容的方法
Apr 02 Javascript
javascript实现动态加载CSS
Jan 26 Javascript
js实现适用于素材网站的黑色多级菜单导航条效果
Aug 24 Javascript
jQuery 插件封装的方法
Nov 16 Javascript
jquery做个日期选择适用于手机端示例
Jan 10 Javascript
使用BootStrap实现标签切换原理解析
Mar 14 Javascript
基于rem的移动端响应式适配方案(详解)
Jul 07 Javascript
Vuejs 页面的区域化与组件封装的实现
Sep 11 Javascript
强大的JavaScript响应式图表Chartist.js的使用
Sep 13 Javascript
JS对象与json字符串相互转换实现方法示例
Jun 14 Javascript
vue中使用better-scroll实现滑动效果及注意事项
Nov 15 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安装全攻略:APACHE
2006/10/09 PHP
我的群发邮件程序
2006/10/09 PHP
用 PHP5 轻松解析 XML
2006/12/04 PHP
深入理解PHP JSON数组与对象
2016/07/19 PHP
对php 判断http还是https,以及获得当前url的方法详解
2019/01/15 PHP
php更新cookie内容的详细方法
2019/09/30 PHP
javascript object array方法使用详解
2012/12/03 Javascript
从数据结构的角度分析 for each in 比 for in 快的多
2013/07/07 Javascript
js面向对象之静态方法和静态属性实例分析
2015/01/10 Javascript
JavaScript制作简易的微信打飞机
2015/03/31 Javascript
js如何打印object对象
2015/10/16 Javascript
jQuery实现的AJAX简单弹出层效果代码
2015/11/26 Javascript
深入浅析JavaScript中数据共享和数据传递
2016/04/25 Javascript
Vue.js双向绑定实现原理详解
2016/12/22 Javascript
微信头像地址失效踩坑记附带解决方案
2019/09/23 Javascript
vue+vant使用图片预览功能ImagePreview的问题解决
2020/04/10 Javascript
vue将data恢复到初始状态 && 重新渲染组件实例
2020/09/04 Javascript
Python多线程实现同步的四种方式
2017/05/02 Python
python操作MySQL 模拟简单银行转账操作
2017/09/27 Python
Django Admin 实现外键过滤的方法
2017/09/29 Python
对Python Pexpect 模块的使用说明详解
2019/02/14 Python
Python读取配置文件(config.ini)以及写入配置文件
2020/04/08 Python
Python virtualenv虚拟环境实现过程解析
2020/04/18 Python
python golang中grpc 使用示例代码详解
2020/06/03 Python
python如何代码集体右移
2020/07/20 Python
python类共享变量操作
2020/09/03 Python
PyCharm2020.3.2安装超详细教程
2021/02/08 Python
Stefania Mode美国:奢华设计师和时尚服装
2018/01/07 全球购物
美国网上书店:Barnes & Noble
2018/08/15 全球购物
英国旅行箱包和行李箱购物网站:Travel Luggage & Cabin Bags
2019/08/26 全球购物
超市端午节活动方案
2014/01/23 职场文书
个人简历中的自我评价怎么写
2014/01/26 职场文书
2014年学生工作总结
2014/11/20 职场文书
毕业晚宴祝酒词
2015/08/11 职场文书
竞聘开场白方式有哪些?
2019/08/28 职场文书
Java 超详细讲解数据结构中的堆的应用
2022/04/02 Java/Android