使弱类型的语言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 相关文章推荐
屏蔽Flash右键信息的js代码
Jan 17 Javascript
jQueryUI如何自定义组件实现代码
Nov 14 Javascript
JsDom 编程小结
Aug 09 Javascript
script标签属性type与language使用选择
Dec 02 Javascript
图片无缝滚动代码(向左/向下/向上)
Apr 10 Javascript
JavaScript实现查找字符串中第一个不重复的字符
Dec 29 Javascript
JavaScript获取页面中第一个锚定文本的方法
Apr 03 Javascript
vue-router路由参数刷新消失的问题解决方法
Jun 17 Javascript
Angular.js ng-file-upload结合springMVC的使用教程
Jul 10 Javascript
bootstrap多层模态框滚动条消失的问题
Jul 21 Javascript
JS模拟超市简易收银台小程序代码解析
Aug 18 Javascript
vue element-ui table组件动态生成表头和数据并修改单元格格式 父子组件通信
Aug 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
超神学院:鹤熙已踏入神圣领域,实力不比凯莎弱
2020/03/02 国漫
php&java(三)
2006/10/09 PHP
PHP高级OOP技术演示
2009/08/27 PHP
php zip文件解压类代码
2009/12/02 PHP
PHP中实现汉字转区位码应用源码实例解析
2010/06/14 PHP
PHP写的资源下载防盗链类分享
2014/05/12 PHP
javascript 动态参数判空操作
2008/12/22 Javascript
Prototype 学习 工具函数学习($w,$F方法)
2009/07/12 Javascript
jquery 插件学习(六)
2012/08/06 Javascript
基于Jquery实现键盘按键监听
2014/05/11 Javascript
原生JavaScript实现滚动条效果
2020/03/24 Javascript
js友好的时间返回函数
2016/08/24 Javascript
详解NodeJS框架express的路径映射(路由)功能及控制
2017/03/24 NodeJs
浅谈ElementUI中switch回调函数change的参数问题
2018/08/24 Javascript
jQuery实现动态加载(按需加载)javascript文件的方法分析
2019/05/31 jQuery
Layui表格行工具事件与数据回填方法
2019/09/13 Javascript
Nest.js 授权验证的方法示例
2021/02/22 Javascript
python输出当前目录下index.html文件路径的方法
2015/04/28 Python
Python调用C语言的方法【基于ctypes模块】
2018/01/22 Python
python selenium自动上传有赞单号的操作方法
2018/07/05 Python
Python OpenCV读取png图像转成jpg图像存储的方法
2018/10/28 Python
Python 多线程不加锁分块读取文件的方法
2018/12/11 Python
浅谈Python3中strip()、lstrip()、rstrip()用法详解
2019/04/29 Python
基于python实现自动化办公学习笔记(CSV、word、Excel、PPT)
2019/08/06 Python
python打开使用的方法
2019/09/30 Python
flask框架渲染Jinja模板与传入模板变量操作详解
2020/01/25 Python
使用CSS3制作响应式导航菜单的方法
2015/07/12 HTML / CSS
HTML5 Canvas实现图片缩放、翻转、颜色渐变的代码示例
2016/02/28 HTML / CSS
英国露营设备和户外服装购物网站:Simply Hike
2019/05/05 全球购物
英国在线照明超市:Castlegate Lights
2019/10/30 全球购物
瑞典最大的儿童用品网上商店:pinkorblue.se
2021/03/09 全球购物
汇智创新科技发展有限公司
2015/12/06 面试题
标准毕业生自荐信范文
2013/11/04 职场文书
会计专业大学生职业生涯规划范文
2014/01/11 职场文书
2014基层党员干部学习全国两会心得体会
2014/03/17 职场文书
生育关怀行动实施方案
2014/03/26 职场文书