`

JavaScript类型转换

阅读更多

作为动态语言,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语言是动态类型的,这意味着你可以在运行时改变变量所存储值的类型,而这正是类型转换的...

    Javascript的数据类型转换

    以下是对JavaScript中数据类型转换的详细说明: 1. `parseInt()` 函数:这个函数用于将字符串转化为整型。它会尝试解析字符串,从开头开始找到第一个数字,并将其转换为整数。如果字符串的第一位不是数字,`...

    一道面试题引发的对javascript类型转换的思考

    JavaScript中的类型转换是处理不同类型数据时需要进行的一种操作,它在编程中扮演着重要的角色。在JavaScript中,存在着多种类型,包括原始类型和对象类型。原始类型主要包括Number、String、Boolean、Undefined和...

    javascript类型转换使用方法

    JavaScript类型转换是一种编程技术,它涉及将变量从一种数据类型转换为另一种数据类型。这种技术在处理不同类型的数据时非常有用,尤其是在涉及到运算或比较操作的时候。在JavaScript中,类型转换可以分为显式转换和...

    Javascript 类型转换方法

    JavaScript 是一种动态类型语言,它的变量可以自由地转换成各种数据类型以适应不同的场景。由于JavaScript的弱类型特性,有时会导致意料之外的类型转换,尤其是涉及到数据类型的运算时。以下我们将详细介绍...

    javascript对象转换成json

    - `value`:要转换的JavaScript值,可以是对象、数组或其他基本类型。 - `replacer`(可选):一个函数或者一个数组,用来转换或过滤对象的属性值。如果函数被提供,对于每个对象的属性,都会调用这个函数,其返回值...

    javascript最常用数据类型转换(最全).doc

    JavaScript 数据类型转换详解 JavaScript 中有多种数据类型,包括数值类型、字符串类型、布尔类型等。这些类型之间可以进行转换,以下是 JavaScript 中最常用的数据类型转换方法。 一、转为字符串 在 JavaScript ...

    一篇文章搞定JavaScript类型转换(面试常见)

    其实啥类型转换啊,操作符优先级啊,这些东西都是最最基本的。犀牛书上有详细的介绍。但我很少去翻犀牛书的前5章。。。 比如说优先级那块儿,很多书都教育我们,“不用去背诵优先级顺序,不确定的话,加括号就行了。...

    Javascript 强制类型转换函数

    强制类型转换在JavaScript中是常见的,主要有三种主要的转换函数:`Boolean()`, `Number()`, 和 `String()`。 1. **Boolean(value)**: 这个函数将任何值转换为布尔类型(`true` 或 `false`)。通常,非零数字、非空...

    javascript类型转换示例

    在JavaScript中,类型转换是一项经常被用到的技术,它是将数据从一种类型转换为另一种类型的过程。这项技术对于数据的处理和展示有着重要的作用。在本示例中,我们将详细探讨JavaScript中的类型转换技术,主要包含将...

    Javascript 类型转换、封闭函数及常见内置对象操作示例

    本文实例讲述了Javascript 类型转换、封闭函数及常见内置对象。分享给大家供大家参考,具体如下: Javascript组成 1、ECMAscript javascript的语法(变量、函数、循环语句等语法) 2、DOM 文档对象模型 操作html和...

    javascript各种变量类型之间的转换

    javascript各种变量类型之间的转换

    纯javascript实现json与对象的互相转换项目

    本项目专注于纯JavaScript实现JSON(JavaScript Object Notation)与JavaScript对象之间的互相转换,这对于数据的存储、传输以及序列化至关重要。JSON作为一种轻量级的数据交换格式,因其易读易写、机器可读性高而被...

    C# to JavaScript转换器

    综上所述,C#到JavaScript转换器,特别是SharpKit,为Web开发提供了一种创新的方式,它结合了C#的强类型和高级特性与JavaScript的广泛浏览器支持。通过使用这种工具,开发团队可以提高代码的可维护性和效率,同时...

    JavaScript隐式类型转换_.docx

    JavaScript中的隐式类型转换是其弱类型特性的重要体现,它允许不同数据类型的值在运算时进行自动转换,但这也可能导致一些意料之外的结果。在JavaScript中,数据类型包括字符串(String)、数字(Number)、布尔(Boolean...

    javascript字符型转换成整型

    在JavaScript编程语言中,字符型数据(通常指字符串类型)转换为整型数据是一项常见的操作需求,尤其是在处理用户输入、解析数据或进行数值计算时。本文将深入探讨如何利用JavaScript来实现这一转换,并在此过程中...

Global site tag (gtag.js) - Google Analytics