1、隐式类型转换

  ①==  如果相等操作的两个变量不是同一类型,那么相等运算符会尝试进行一些类型转换:

  • 如果一个是null,一个是undefined,则他们相等;
  • 如果一个值是数字,另一个是字符串,先将字符串转换为数字,然后使用转换后的值进行比较;
  • 如果一个是再比较,如果其中一个是false,则将其转换为0再比较;
  • 如果一个值是对象,另一个值是数字或字符串,则将对象转换为原始值,再进行比较。对象通过toString()或者valueOf()方法转为原始值。JS语言核心的内置类首先尝试使用valueOf(),再尝试使用toString(),除了日期类,日期类只使用toString()转换。
  • 其他不同类型的比较均不相等。

  ②< > <= >=  比较运算符。操作数可以是任何类型,但是只有数字和字符串才能真正执行比较操作。

  • 如果操作数是对象,那么对象先转换为原始值:如果valueOf()返回一个原始值,那么直接使用这个原始值。否则使用toString()转换;
  • 对象转换为原始值之后,如果两个操作数都是字符串,那么按照字符串比较;
  • 对象转换为原始值后,如果至少有一个操作数不是字符串,那么两个都转换为数字进行比较。如果其中一个是NaN,那么结果是false。

  ③-   减操作符将两个操作数都转换为数字。

  ④+  加操作符,如果一个操作数是字符串,那么另外一个操作数也会转换为字符串。一元加会将其操作数转换为数字。

  ⑤!   转换为布尔值并取反。!!x等价于Boolean(x).

2、显式类型转换

  ①使用Boolean()/Number()/String()/Object()函数。除了null和undefined的任何值都具有toString()方法,这个方法的执行结果通常和String()方法的返回结果一致。

  ②数字转字符串

  • toString()方法,可接受参数,比较转成几进制。
  • toFixed(),参数表示保留几位小数。
  • toExponential(),参数表示保留几位小数点。
  • toPrecision(),参数表示有效数字位数。

  ③字符串转数字

  • parseInt()函数
  • parseFloat()函数,都是全局函数,不是任何类的方法。

  ④对象转为原始值

  • toString()方法。
  1. 数组类将每个元素转换为一个字符串,并在元素之间添加逗号合成字符串;
  2. 函数类返回这个函数的实现定义的表示方式。
  3. 日期类返回一个可读的日期和时间字符串。
  4. RegExp类转换为直接字面量。
  • valueOf()方法。如果对象存在任意原始值,他将默认将对象转换为表示它的原始值。但是对象是复合值,多数情况下valueOf()返回对象本身。
  • 对象到字符串的转换先使用toString()方法,对象到数字的转换先使用valueOf()方法。

JavaScript中的类型转换的更多相关文章

  1. JavaScript中数据类型转换总结

    JavaScript中数据类型转换总结 在js中,数据类型转换分为显式数据类型转换和隐式数据类型转换. 1, 显式数据类型转换 a:转数字: 1)Number转换: 代码: var a = " ...

  2. JavaScript中的类型转换(二)

    说明: 本篇主要讨论JavaScript中各运算符对运算数进行的类型转换的影响,本文中所提到的对象类型仅指JavaScript预定义的类型和程序员自己实现的对象,不包括宿主环境定义的特殊对象(比如浏览 ...

  3. JavaScript中的类型转换(一)

    前言 JavaScript是一种非常灵活的弱类型的语言,它的灵活性的一方面体现在其繁杂多样的类型转换.比如当JavaScript期望使用一个布尔值的时候(比如if语句中)你可以提供任一类型的值,Jav ...

  4. [翻译]解释JavaScript中的类型转换

    原文地址:JavaScript type coercion explained 类型转换是将值从一种类型转换为另一种类型的过程(比如字符串转换为数值,对象转换为布尔值,等等).任何类型,无论是原始类型 ...

  5. javascript中强制类型转换

    javascript开发过程中,强制类型转换一般发生在条件判断和==运算符.其他情况,发生的类型转换(与这两种情况也是基本类似,属于万变不离其宗的范畴),暂不讨论. == 双等运算符 考虑代码: a ...

  6. javascript中的类型转换,宽松相等于严格相等

    为了将值转换为基本类型值(string,number,boolean,null,undefined),抽象操作ToPrimitive会首先检查该值有没有valueOf()方法,如果有并且返回基本类型值 ...

  7. 【你不知道的javaScript 中卷 笔记2】javaScript中的类型转换

    1.1 对象内部属性 [[Class]] 常见的原生函数: String() Number() Boolean() Array() Object() Function() RegExp() Date( ...

  8. javascript中数据类型转换

    转换为数字: parseInt():转换为整数型数值:从下标0开始判断,若为数值型则继续直到遇到非数值,返回前面的整数值: 小数点无效,若0开始为非数值则返回NaN: 转换空字符串会返回NaN: 能转 ...

  9. javascript中的类型转换(进制转换|位运算)

    1:parseInt(string) : 这个函数的功能是从string的开头开始解析,返回一个整数 parseInt("123hua"); //输出 123 parseInt(& ...

  10. js | JavaScript中数据类型转换总结

    转载 在js中,数据类型转换分为显式数据类型转换和隐式数据类型转换. 1, 显式数据类型转换 a:转数字: 1)Number转换: 代码: var a = “123”; a = Number(a); ...

随机推荐

  1. getRequestDispatcher()与sendRedirect()的区别

    1.request.getRequestDispatcher()是请求转发,前后页面共享一个request ; response.sendRedirect()是重新定向,前后页面不是一个request ...

  2. Images.xcassets不能获取图片路径

    原文地址:http://www.jianshu.com/p/5358f587af38 Images.xcassets在app打包后,以Assets.car文件的形式出现在bundle中.其作用在于: ...

  3. RadioButton与CheckBox

    笔者长期从事于数据库的开发,算了,不提当年了,因为一直用的是小语种(PowerBuilder),还是来说说这两个最常见的控件吧! RadioButton(单选)和CheckBox(多选) 先来看看继承 ...

  4. Android 多个listview的实现

    正好,今天项目中需要,先写了个demo,给大家参考参考. 先上图,需要的自己,看看具体的代码实现步骤 大概说一下实现步骤: 1.布局中先用 scrollview 包裹 LinearLayout < ...

  5. 拥抱.NET Core,跨平台的轻量级RPC:Rabbit.Rpc

    不久前发布了一篇博文".NET轻量级RPC框架:Rabbit.Rpc",当初只实现了非常简单的功能,也罗列了之后的计划,经过几天的不断努力又为Rabbit.Rpc增加了一大波新特性 ...

  6. ASP.NET MVC 5 04 - 控制器

    PS: 唉.本来这一篇前几天早就应该发了的,可是谁每月没有那么几天啊... 呵呵.开个玩笑.反正就是各种烦气,所以也就一直没上来继续发了. 年底了,摆正一下心态吧.好好干,整点钱,过年回家能跟亲朋好友 ...

  7. 什么是JS事件冒泡?

    什么是JS事件冒泡?: 在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理 程序或者事件返回true,那么 ...

  8. archlinux 加载loop模块,且设定loop设备个数

    如果loop模块没有编译进内核就要先加载loop模块 modprobe loop 然后更改/etc/modprobe.d/modprobe.conf(有些文章写是在/etc/modprobe.conf ...

  9. 【Linux】重定向与管道

    重定向 redirection 每个命令有输入源和输出目的地,默认行为,是标准输入和标准输出.大多数情况,标准输入是键盘,标准输出是屏幕.可以为单独的操作修改输入和输出,这就是重定向.重定向可以使某个 ...

  10. WPF 自定义模板 Button闪亮效果

    Button的选中Effect,我们看下下面的效果: 让我们再放大一点: 怎么设置上面样式呢?直接设置Button的Effect,有点问题,因为Effect不是四周环绕的.那我们也只能重新定义Temp ...