使弱类型的语言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 相关文章推荐
多个datatable共存造成多个表格的checkbox都被选中
Jul 11 Javascript
再谈Jquery Ajax方法传递到action(补充)
May 12 Javascript
jQuery中;function($,undefined) 前面的分号的用处
Dec 17 Javascript
jQuery使用prepend()方法在元素前添加内容用法实例
Mar 26 Javascript
Javascript中replace()小结
Sep 30 Javascript
jquery ajax后台返回list,前台用jquery遍历list的实现
Oct 30 Javascript
JavaScript实现Fly Bird小游戏
Dec 15 Javascript
JS树形菜单组件Bootstrap TreeView使用方法详解
Dec 21 Javascript
通过BootStrap-select插件 js jQuery控制select属性变化
Jan 03 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
Mar 09 Javascript
Vue 创建组件的两种方法小结(必看)
Feb 23 Javascript
Vue select 绑定动态变量的实例讲解
Oct 22 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-accelerator网站加速PHP缓冲的方法
2008/07/30 PHP
简单的PHP多图上传小程序代码
2011/07/17 PHP
php时间戳转换的示例
2014/03/31 PHP
php禁止浏览器使用缓存页面的方法
2014/11/07 PHP
Smarty环境配置与使用入门教程
2016/05/11 PHP
PHP获取当前文件的父目录方法汇总
2016/07/21 PHP
详解php中空字符串和0之间的关系
2016/10/23 PHP
浅谈PHP的exec()函数无返回值排查方法(必看)
2017/03/31 PHP
在JavaScript中监听IME键盘输入事件
2011/05/29 Javascript
jQuery EasyUI API 中文文档 - ComboGrid 组合表格
2011/10/13 Javascript
JQuery事件e参数的方法preventDefault()取消默认行为
2013/09/26 Javascript
一个检测表单数据的JavaScript实例
2014/10/31 Javascript
jQuery插件slider实现拖动滑块选取价格范围
2015/04/30 Javascript
浅谈Javascript实现继承的方法
2015/07/06 Javascript
jQuery+php实时获取及响应文本框输入内容的方法
2016/05/24 Javascript
js记录点击某个按钮的次数-刷新次数为初始状态的实例
2017/02/15 Javascript
简单快速的实现js计算器功能
2017/08/17 Javascript
微信小程序使用二次贝塞尔曲线画波浪
2018/12/25 Javascript
JavaScript中this的学习笔记及用法整理
2020/02/17 Javascript
Django中利用filter与simple_tag为前端自定义函数的实现方法
2017/06/15 Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
2018/06/07 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
2019/04/23 Python
[机器视觉]使用python自动识别验证码详解
2019/05/16 Python
10行Python代码计算汽车数量的实现方法
2019/10/23 Python
tensorflow estimator 使用hook实现finetune方式
2020/01/21 Python
Python使用Excel将数据写入多个sheet
2020/05/16 Python
Python+unittest+requests 接口自动化测试框架搭建教程
2020/10/09 Python
美国从事品牌鞋类零售的连锁店:Famous Footwear
2016/08/25 全球购物
如何写好升职自荐信
2014/01/06 职场文书
革命先烈的英雄事迹材料
2014/02/15 职场文书
群教个人对照检查材料
2014/08/20 职场文书
春秋淹城导游词
2015/02/11 职场文书
文艺晚会开场白
2015/05/29 职场文书
外出学习心得体会范文
2016/01/18 职场文书
2016年少先队活动总结
2016/04/06 职场文书
详细聊聊MySQL中慢SQL优化的方向
2021/08/30 MySQL