使弱类型的语言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 相关文章推荐
CSS JavaScript 实现菜单功能 改进版
Dec 09 Javascript
用JQuery调用Session的实现代码
Oct 29 Javascript
基于jquery的多功能软键盘插件
Jul 25 Javascript
JSON 数字排序多字段排序介绍
Sep 18 Javascript
JavaScript获取当前日期是星期几的方法
Apr 06 Javascript
微信JSSDK上传图片
Aug 23 Javascript
js和jq使用submit方法无法提交表单的快速解决方法
May 17 Javascript
js 打开新页面在屏幕中间的实现方法
Nov 02 Javascript
jQuery使用ajax_动力节点Java学院整理
Jul 05 jQuery
Vue多组件仓库开发与发布详解
Feb 28 Javascript
JavaScript实现栈结构Stack过程详解
Mar 07 Javascript
vue cli4下环境变量和模式示例详解
Apr 09 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
域名查询代码公布
2006/10/09 PHP
Laravel框架数据库CURD操作、连贯操作总结
2014/09/03 PHP
Yii配置文件用法详解
2014/12/04 PHP
PHP里的单例类写法实例
2015/06/25 PHP
php版微信公众平台回复中文出现乱码问题的解决方法
2016/09/22 PHP
解决thinkphp5未定义变量会抛出异常,页面错误,请稍后再试的问题
2019/10/16 PHP
jquery实现带二级菜单的导航示例
2014/04/28 Javascript
封装了jQuery的Ajax请求全局配置
2015/02/05 Javascript
Underscore.js 1.3.3 中文注释翻译说明
2015/06/25 Javascript
jQuery EasyUi实战教程之布局篇
2016/01/26 Javascript
Web开发必知Javascript技巧大全
2016/02/23 Javascript
Easyui Treegrid改变默认图标的方法
2016/04/29 Javascript
Bootstrap+jfinal实现省市级联下拉菜单
2016/05/30 Javascript
jQuery常见的选择器及用法介绍
2016/12/20 Javascript
JS正则表达式学习之贪婪和非贪婪模式实例总结
2016/12/26 Javascript
angular.js 路由及页面传参示例
2017/02/24 Javascript
js每隔两秒输出数组中的一项(实例)
2017/05/28 Javascript
深入解析nodejs HTTP服务
2017/07/25 NodeJs
JS库之Three.js 简易入门教程(详解之一)
2017/09/13 Javascript
使用Vue中 v-for循环列表控制按钮隐藏显示功能
2019/04/23 Javascript
详解element-ui表格中勾选checkbox,高亮当前行
2019/09/02 Javascript
Vue实现鼠标经过文字显示悬浮框效果的示例代码
2020/10/14 Javascript
布同 Python中文问题解决方法(总结了多位前人经验,初学者必看)
2011/03/13 Python
利用matplotlib+numpy绘制多种绘图的方法实例
2017/05/03 Python
Python的IDEL增加清屏功能实例
2017/06/19 Python
Python K最近邻从原理到实现的方法
2019/08/15 Python
python计算Content-MD5并获取文件的Content-MD5值方式
2020/04/03 Python
Maje德国官网:法国女性成衣品牌
2017/02/10 全球购物
乌克兰第一的珠宝网上商店:Gold.ua
2019/11/29 全球购物
私人房屋买卖协议书
2014/10/04 职场文书
政审证明范文
2015/06/19 职场文书
雨雪天气温馨提示
2015/07/15 职场文书
导游词之河北邯郸
2019/09/12 职场文书
Python OpenCV快速入门教程
2021/04/17 Python
解决ObjectMapper.convertValue() 遇到的一些问题
2021/06/30 Java/Android
python语言中pandas字符串分割str.split()函数
2022/08/05 Python