使弱类型的语言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 相关文章推荐
写了一个layout,拖动条连贯,内容区可为iframe
Aug 19 Javascript
浅析JavaScript中两种类型的全局对象/函数
Dec 05 Javascript
jQuery实现列表内容的动态载入特效
Aug 08 Javascript
AngularJS实现全选反选功能
Dec 08 Javascript
jquery仿苹果的时间/日期选择效果
Mar 08 Javascript
纯JS实现图片验证码功能并兼容IE6-8(推荐)
Apr 19 Javascript
分析JS中this引发的bug
Dec 12 Javascript
vue多页面开发和打包正确处理方法
Apr 20 Javascript
微信小程序实现红包雨功能
Jul 11 Javascript
基于Vue 服务端Cookies删除的问题
Sep 21 Javascript
微信小程序实现选项卡效果
Nov 06 Javascript
解决vue项目input输入框双向绑定数据不实时生效问题
Aug 05 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数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
2011/11/02 PHP
PHP编译安装中遇到的两个错误和解决方法
2014/08/20 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
php中输出json对象的值(实现方法)
2018/03/07 PHP
根据选择不同的下拉值出现相对应的文本输入框
2013/08/01 Javascript
jQuery大于号(>)选择器的作用解释
2015/01/13 Javascript
jquery实现动态改变div宽度和高度
2015/05/08 Javascript
JQuery节点元素属性操作方法
2015/06/11 Javascript
Vue.js一个文件对应一个组件实践
2016/10/27 Javascript
JS实现图片居中悬浮效果
2017/12/25 Javascript
webpack打包多页面的方法
2018/11/30 Javascript
Vue开发Html5微信公众号的步骤
2019/04/11 Javascript
JavaScript如何实现元素全排列实例代码
2019/05/14 Javascript
详解基于Vue/React项目的移动端适配方案
2019/08/23 Javascript
AI小程序之语音听写来了,十分钟掌握百度大脑语音听写全攻略
2020/03/13 Javascript
[04:52]第二届DOTA2亚洲邀请赛主赛事第一天比赛集锦:OG娜迦海妖放大配合谜团大中3人
2017/04/02 DOTA
Python中的jquery PyQuery库使用小结
2014/05/13 Python
python利用beautifulSoup实现爬虫
2014/09/29 Python
python中for语句简单遍历数据的方法
2015/05/07 Python
Python连接mysql数据库的正确姿势
2016/02/03 Python
Python3实现二叉树的最大深度
2019/09/30 Python
Django 简单实现分页与搜索功能的示例代码
2019/11/07 Python
Django模板获取field的verbose_name实例
2020/05/19 Python
Django框架实现在线考试系统的示例代码
2020/11/30 Python
英国时尚饰品和发饰购物网站:Claire’s
2017/07/04 全球购物
西班牙在线光学:Visual-Click
2020/06/22 全球购物
新西兰最大、占有率最高的综合性药房:PharmacyDirect药房中文网
2020/11/03 全球购物
PHP中如何创建和修改数组
2012/05/02 面试题
shell程序中如何注释
2012/01/28 面试题
业务主管岗位职责
2013/11/20 职场文书
销售业务员岗位职责
2015/02/13 职场文书
医院办公室主任岗位职责
2015/04/01 职场文书
2015年志愿者服务工作总结
2015/04/20 职场文书
作息时间调整通知
2015/04/22 职场文书
python字典进行运算原理及实例分享
2021/08/02 Python
分析SQL窗口函数之排名窗口函数
2022/04/21 Oracle