作为动态语言,JavaScript的类型转换总是在默默地进行着,不为很多人所知。然而,理解好JavaScript的类型转换是理解JavaScript的基础课。其转换机制主要如下:
1)undefined
①转换成 字符串
undefined并不是javascript的保留字,它只是一个初始值为undefined的全局变量,你可以为它定义一个值(当然我不建议你这么做)在遇到字符串场合时,undefined会被自动转换成'undefined';
view plaincopy to clipboardprint?
var test = undefined + '';
alert(typeof test); //test的值为'undefined',类型为string
undefined = 'test';
alert(undefined); //undefined将被定义成字符串'test'
var test = undefined + '';
alert(typeof test); //test的值为'undefined',类型为string
undefined = 'test';
alert(undefined); //undefined将被定义成字符串'test'
②转换成 数字
undefined在数字场合将被转换成NaN
view plaincopy to clipboardprint?
var test = undefined - 0;
alert(test) //将打印出'NaN',其实这里数字NaN又被转换成了字符串'NaN'
var test = undefined - 0;
alert(test) //将打印出'NaN',其实这里数字NaN又被转换成了字符串'NaN'
③转换成布尔类型
undefined在布尔类型的场合将被转换成false,因此你可以用下面的语句判断一个对象是否存在
view plaincopy to clipboardprint?
var test;
if(!test){
test = 'test';
}
var test;
if(!test){
test = 'test';
}
当然,也许有人喜欢把让类型转换成为显示的,你可以用下面的方法把undefined转换成boolean类型
view plaincopy to clipboardprint?
var test;
alert(!!test); //这里也包含了布尔到字符串的转换(以下不再说明)
var test;
alert(!!test); //这里也包含了布尔到字符串的转换(以下不再说明)
④转换成 对象
undefined在对象场合会转换成Error对象
2)null
null基本与undefined相同,它是JavaScript的关键字,你可以把它理解成对象类型的一个特殊值,它是一个独一无二的值。很多人并不区分对象为undefined和null的区别,实际上他们是有本质的区别的。然而,
alert(null==undefined);
alert(null==undefined);
将打印出true,从实际应用中,两者都表示缺少值,这正是我们想要的。如果要区分它们,可以用 === 运算符或 typeof 运算符。
①转换成 字符串
null在字符串场合被转换成字符串'null'
alert(null); //将打印出'null'
alert(null); //将打印出'null'
②转换成 数字
null在数字场合被转换成 0,这样你便很容易发现,下面的语句将输出Infinity
var test = 2/null;
alert(test);
var test = 2/null;
alert(test);
③转换成 布尔型
null同undefined一样,在布尔环境下被转换成false
if(null || undefined){
alert("This will not be execute!");
}
if(null || undefined){
alert("This will not be execute!");
}
④转换成 对象
null在对象环境中被转换成 Error 对象。
3)非空字符串,如 'abc',"Test"
①转换成数字
非空字符串能被动态的转换成对应的数值或者NaN
var a = '1.23' - 0,
b = 'abc' - 0,
c = '12ab' - 0,
d = '-12' - 0,
e = '1.23.4' - 0;
alert(a); //结果: 1.23
alert(b); //结果: NaN
alert(c); //结果: NaN
alert(d); //结果: -12
alert(e); //结果: NaN
var a = '1.23' - 0,
b = 'abc' - 0,
c = '12ab' - 0,
d = '-12' - 0,
e = '1.23.4' - 0;
alert(a); //结果: 1.23
alert(b); //结果: NaN
alert(c); //结果: NaN
alert(d); //结果: -12
alert(e); //结果: NaN
②转换成布尔型
在布尔环境中,非空字符串会被自动转换成true
alert(!!'Test'); //打印的是true
alert(!!'Test'); //打印的是true
③转换成对象
字符串是JavaScript的基本类型,在对象场合时,其会被转换成String对象。
4)空字符串
空字符串只是在数字场合会被转换成 0 ,在布尔场合被转换成 false 。其它的处理与非空字符串没有什么区别。
5)数值 (包括 0 NaN 无穷 负无穷 任意其它数字)
①转换成 字符串
字符串场合它们将依次被转换成 '0' 'NaN' 'Infinity' '-Infinity' 数字的字符串值
②转换成 对象
数值会被转换成其对应的封装类型,也就是Number对象。
③转换成 布尔
只有 0 和 NaN 将被认为是false,其它值会被转换成true。因为有这种转换机制在,你可以像写C一样写下面的代码
var a,b;
if(a=1){
b = 2;
}
alert(b); //b的值为2 当条件里为 a=0 时b便成了undefined
var a,b;
if(a=1){
b = 2;
}
alert(b); //b的值为2 当条件里为 a=0 时b便成了undefined
但是这并不同于C,在C99标准前,是没有所谓boolean类型的。C中if语句里是直接接受int型的,而JavaScript则做了一次类型转换。
6)布尔类型 (true 和 false)
①转换成字符串
像很多语言比如java一样,它们会被转换成对应的字符串即'true'和'false'
②转换成数字
你可以像理解C语言一样记忆它,true是1,而false则是0。下面的例子可以帮你理解,但我保证,它们是没有太多实际意义的
alert(true-2); //没错,结果是-1
alert(null/true); //这个运算有意义吗?呵呵,但是它确实显示的是 0
alert(null-0==false-0); //很有趣吧,它打印出什么呢?
alert(true-2); //没错,结果是-1
alert(null/true); //这个运算有意义吗?呵呵,但是它确实显示的是 0
alert(null-0==false-0); //很有趣吧,它打印出什么呢?
③转换成对象
这个我想我不用说了,像字符串转换成String对象,数字转换成Number对象一样,布尔值会被转换成布尔对象,也就是Boolean对象
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ScAREcrOw_ss/archive/2010/06/08/5654391.aspx
分享到:
相关推荐
JavaScript类型转换是编程中非常重要的一个概念,它描述了在运算过程中,不同数据类型之间的自动或手动转换行为。JavaScript语言是动态类型的,这意味着你可以在运行时改变变量所存储值的类型,而这正是类型转换的...
以下是对JavaScript中数据类型转换的详细说明: 1. `parseInt()` 函数:这个函数用于将字符串转化为整型。它会尝试解析字符串,从开头开始找到第一个数字,并将其转换为整数。如果字符串的第一位不是数字,`...
JavaScript中的类型转换是处理不同类型数据时需要进行的一种操作,它在编程中扮演着重要的角色。在JavaScript中,存在着多种类型,包括原始类型和对象类型。原始类型主要包括Number、String、Boolean、Undefined和...
JavaScript类型转换是一种编程技术,它涉及将变量从一种数据类型转换为另一种数据类型。这种技术在处理不同类型的数据时非常有用,尤其是在涉及到运算或比较操作的时候。在JavaScript中,类型转换可以分为显式转换和...
JavaScript 是一种动态类型语言,它的变量可以自由地转换成各种数据类型以适应不同的场景。由于JavaScript的弱类型特性,有时会导致意料之外的类型转换,尤其是涉及到数据类型的运算时。以下我们将详细介绍...
- `value`:要转换的JavaScript值,可以是对象、数组或其他基本类型。 - `replacer`(可选):一个函数或者一个数组,用来转换或过滤对象的属性值。如果函数被提供,对于每个对象的属性,都会调用这个函数,其返回值...
JavaScript 数据类型转换详解 JavaScript 中有多种数据类型,包括数值类型、字符串类型、布尔类型等。这些类型之间可以进行转换,以下是 JavaScript 中最常用的数据类型转换方法。 一、转为字符串 在 JavaScript ...
其实啥类型转换啊,操作符优先级啊,这些东西都是最最基本的。犀牛书上有详细的介绍。但我很少去翻犀牛书的前5章。。。 比如说优先级那块儿,很多书都教育我们,“不用去背诵优先级顺序,不确定的话,加括号就行了。...
强制类型转换在JavaScript中是常见的,主要有三种主要的转换函数:`Boolean()`, `Number()`, 和 `String()`。 1. **Boolean(value)**: 这个函数将任何值转换为布尔类型(`true` 或 `false`)。通常,非零数字、非空...
在JavaScript中,类型转换是一项经常被用到的技术,它是将数据从一种类型转换为另一种类型的过程。这项技术对于数据的处理和展示有着重要的作用。在本示例中,我们将详细探讨JavaScript中的类型转换技术,主要包含将...
本文实例讲述了Javascript 类型转换、封闭函数及常见内置对象。分享给大家供大家参考,具体如下: Javascript组成 1、ECMAscript javascript的语法(变量、函数、循环语句等语法) 2、DOM 文档对象模型 操作html和...
javascript各种变量类型之间的转换
本项目专注于纯JavaScript实现JSON(JavaScript Object Notation)与JavaScript对象之间的互相转换,这对于数据的存储、传输以及序列化至关重要。JSON作为一种轻量级的数据交换格式,因其易读易写、机器可读性高而被...
综上所述,C#到JavaScript转换器,特别是SharpKit,为Web开发提供了一种创新的方式,它结合了C#的强类型和高级特性与JavaScript的广泛浏览器支持。通过使用这种工具,开发团队可以提高代码的可维护性和效率,同时...
JavaScript中的隐式类型转换是其弱类型特性的重要体现,它允许不同数据类型的值在运算时进行自动转换,但这也可能导致一些意料之外的结果。在JavaScript中,数据类型包括字符串(String)、数字(Number)、布尔(Boolean...
在JavaScript编程语言中,字符型数据(通常指字符串类型)转换为整型数据是一项常见的操作需求,尤其是在处理用户输入、解析数据或进行数值计算时。本文将深入探讨如何利用JavaScript来实现这一转换,并在此过程中...