Javascript (ECMA Script)是一种弱类型的语言.这并不意味着它没有数据类型,只是变量或者Javascript对象属性不需要一个特定类型的值分配给它或者它始终使用相同的值.Javascript中的变量同样支持自由类型转换成为适用(或者要求)的内容以便于使用.
弱类型的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,数字0
var t3 = Boolean(1),t4 = Boolean(-1);//返回true,非0数字
var t5 = Boolean(null),t6 = Boolean(undefined);//返回false
var 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) 0
Number(true) 1
Number(undefined) NaN
Number(null) 0
Number("1.2") 1.2
Number("12") 12
Number("1.2.3") NaN
Number(new Object()) NaN
Number(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"
var t6 = t4.toString();//这里会报错
分享到:
相关推荐
javascript是弱类型的语言,所以强制类型转换还是比较重要的,下面看一下它的几个强制转换的函数
本文实例讲述了JavaScript强制类型转换和隐式类型转换。分享给大家供大家参考,具体如下: 在JavaScript中声明变量不需指定类型, 对变量赋值也没有类型检查,同时JavaScript允许隐式类型转换。这些特征说明...
类型转换是网页编程不可或缺的内容,本文先介绍自动类型转换,接着是强制性的显式类型转换,最后如何将基本数据类型提升为对象。 JavaScript的数据类型分为基本数据类型和复合数据类型。复合数据类型主要有对象、...
javascript函数的解释,解释了具体函数的功能,一、函数JavaScript函数集合 1.document.write(""); 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document->html->(head,body) 4.一个浏览器窗口中的DOM顺序是:...
最近群里有人发了下面这题: 实现一个函数,运算结果可以满足如下预期结果: ...在 javascript 中,函数是一等公民,允许函数作为参数或者返回值传递。 得到了下面这个解法: function add() { var args =
使用Number()函数来对string进行强制类型转换是最直接的做法。不过,这种做法有一个局限性:如果字符串截去开头和结尾的空白字符后,不是纯数字字符串,那么最终返回结果为NaN。David Flanagan的JavaScript – The ...
类型转换可以分为隐式转换和显式转换,所谓隐式转换即程序在运行时进行的自动转换,显式转换则是人为的对类型进行强制转换。Javascript的变量是松散类型的,它可以存储Javascript支持的任何数据类型,其变量的类型可以...
一、数据类型 5种基本数据类型:Null/Undefined/String/Boolean/Number 1种复杂数据类型:Object 二、数据类型检测 传送门《JS中检测数据类型的几种方式及优缺点小结》 ...1、强制类型转换 在了解隐式转换的规则前
避免使用隐式类型转换 使用parseInt()的数值约定 编码约定 命名约定 编写注释 编写API文档 编写可读性强的代码 同行互查 在正式发布时精简代码 运行JSLint 小结 第3章 字面量和构造函数 ...
5.7.3 强制类型转换及其例子 5.7.4 高级用法--一个自定义类型转换的例子 5.8 警惕数值陷阱 5.8.1 困惑--浮点数的精度问题 5.8.2 误差的修正及其例子 5.9 总结 第6章 函数 6.1 函数定义...
函数转换为字符串一般是将函数体输出,不过可以重写其toString方法 (二)转换为数字 代码如下:parseInt(),parseFloat() 使用Number(),前面不要加new,这样就转换成对象了。 参与数学运算(加法除外) + X :注意这...
整数,小数,布局,字符串,日期时间,数组 强制转换: parseInt() parseFloat() isNaN() (二)数组 var 数组名 = new Array([长度]); //“假冒”数组 a.length-长度 a[下标] = 值。 a[下标] (三)函数 代码如下:...
(3) 强制类型转换 20 Boolean() 函数 20 Number()函数 20 String() 函数 21 4. JavaScript常用对象 21 (1) 对象类型说明 21 本地对象 21 内置对象 21 宿主对象 21 (2) Object对象 21 Object...
不同类型的变量比较要先转类型,叫做类型转换,类型转换也叫隐式转换。隐式转换通常发生在运算符加减乘除,等于,还有小于,大于等。。 typeof '11' //string typeof(11) //number '11' < 4 //false 一、基本...
避免使用隐式类型转换 使用pa eInt()的数值约定 编码约定 命名约定 编写注释 编写API文档 编写可读性强的代码 同行互查 在正式发布时精简代码 运行JSLint 小结 第3章 字面量和构造函数 对象字面量 自定义构造函数 ...
之后,我将介绍提升、JavaScript 事件循环和类型强制转换。 最后,我将展示解构,这是 JavaScript 的另一个强大功能,它允许您以简洁易读的方式从数组和对象中提取值。 无论您是高级 JavaScript 开发人员还是刚刚...
1_3.htm JavaScript中的强制类型转换。 1_4.htm 在HTML中为JavaScript传递变量。 1_5.htm 在HTML中引用JavaScript的变量。 1_6.htm 比较undefined和"undefined"。 第2章(\2) 示例描述:客户端的流程控制...
1_3.htm JavaScript中的强制类型转换。 1_4.htm 在HTML中为JavaScript传递变量。 1_5.htm 在HTML中引用JavaScript的变量。 1_6.htm 比较undefined和"undefined"。 第2章(\2) 示例描述:客户端的流程控制...
类型转换和强制 命名约定 配件 活动 jQuery ECMAScript 5 兼容性 ECMAScript 6+ (ES 2015+) 样式 标准库 测试 表现 资源 在野外 翻译 JavaScript 风格指南 指南 与我们讨论 JavaScript 贡献者 执照 修正案