隐式类型转换

1.  

var  a = "123";
a++; 

  这时候会将调用Number("123")将"123"转换成数字类型,然后再自增。

var a = "abc";
a++;

  这时候,依然会调用Number("abc")将"abc"转换成数字类型,但是"abc"转不成数字,所以,转换之后的结果是NaN,Nan++还是NaN。

  -- 也一样,前自增,前自减也是一样的。先转换成数字类型。同时,正/负符号也会把变量变成数字类型。比如

var a = "abc";
+a;
-a;
a++;
a--;
++a;
--a;

2.  

  加号两边,只要有一个是字符串,都会转换成字符串再相加。

3.  - 减号,* 乘号,/ 除号,% 求模 都会将符号两边的数据转换成number类型,然后再进行运算。

4.     &&, ||, ! 都会转换成Boolean类型,再进行判断。

5.  >, <, <=, >=, 两边如果有一个是数字的话,就将这两边的数据都转换成数字类型,再进行比较。字符串和字符串相比较的话,就会直接比较ascll码。

6.  ==,  != ,  会将两边的数据转换成number类型,再进行比较。

7.  特殊:undefined == null, NaN != NaN; 非数不等于任何数,包括自己。

8.   但是有的时候,我们并不想要参与比较的两个式子进行隐式类型转换,这时候,我们就可以用后面这两个符号:=== 绝对等于,!== 绝对不等于。不发生类型转换,比如

1 === "1";  /* false */
1 === 1;     /*true*/
NaN === NaN  /*这个比较特殊,它就是不相等*/

  

JavaScript 类型转换(2)的更多相关文章

  1. JavaScript 类型转换

    在 JavaScript 中有 5 中不同的数据类型: string number boolean object function 3 种对象类型: Object Date Array 2 个不包含任 ...

  2. 松软科技Web课堂:JavaScript 类型转换

    Number() 转换数值,String() 转换字符串,Boolean() 转换布尔值. JavaScript 数据类型 JavaScript 中有五种可包含值的数据类型: 字符串(string) ...

  3. javascript 类型转换。

    学校js感觉好漫长,断断续续,要坚持每天都能学到点,总结了下数据类型的转换. Javascript的变量是松散类型的,它可以存储Javascript支持的任何数据类型,其变量的类型可以在运行时被动态改 ...

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

    最近群里有人发了下面这题:实现一个函数,运算结果可以满足如下预期结果: add(1)(2) // 3 add(1, 2, 3)(10) // 16 add(1)(2)(3)(4)(5) // 15 对 ...

  5. Javascript类型转换的规则

    Javascript的变量是松散类型的,它可以存储Javascript支持的任何数据类型,其变量的类型可以在运行时被动态改变.请看示例: 1 2 3 var n = 10; n = "hel ...

  6. javascript总结8:JavaScript 类型转换

    1 JavaScript 数据类型转换 1.1 数字类型转字符串 n1 = 10;var n2 =String(n1); 或者 var n3 = n1.toString(n1); 1.2 字符串转数字 ...

  7. Javascript类型转换的规则实例解析

    http://www.jb51.net/article/79916.htm 类型转换可以分为隐式转换和显式转换,所谓隐式转换即程序在运行时进行的自动转换,显式转换则是人为的对类型进行强制转换.Java ...

  8. Javascript类型转换的规则全面&附有实例

    Javascript的变量是松散类型的,它可以存储Javascript支持的任何数据类型,其变量的类型可以在运行时被动态改变.请看示例: 1 2 3 var n = 10; n = "hel ...

  9. javascript类型转换、运算符、语句

    1.类型转换: 分为自动转换和强制转换,一般用强制转换. 其他类型转换为整数:parseint(): 其他类型转换为小数:parsefloat(): 判断是否是一个合法的数字类型:isNaN(): 是 ...

随机推荐

  1. Python实践练习:口令保管箱

    缘由 做中学才是最好的方法,通过这些项目来加强自己的Python掌握程度. 所有练习目录地址 题目描述: 一个字典中存在着账户和密码,通过命令行参数直接执行,查看是否有这个账户. 若有,则复制账户的密 ...

  2. fileinput模块可以循环一个或多个文本文件的内容

    fileinput模块可以循环一个或多个文本文件的内容. [默认格式] fileinput.input (files=None, inplace=False, backup='', bufsize=0 ...

  3. Oracle11gR2导入导出实战之物化视图prebuilt

    源实例上创建表 物化视图 oracle@localhost admin]$ sqlplus system/oracle@orcl2 SQL*Plus: Release 11.2.0.4.0 Produ ...

  4. jaegeropentracing的Java-client

    关于jaegeropentracing的Java-client做记录如下: 1.依赖jar包 <!-- 以下jar包是jaegeropentracing依赖的日志jar -->slf4j- ...

  5. angular的service与factory

      angular里的service是一个单例对象,在应用生命周期结束的时候(关闭浏览器)才会被清除.而controllers在不需要的时候就会被销毁了. factory是angular里的一种ser ...

  6. Failed to start component [StandardEngine[Catalina].

    出现以下的错误的原因: 检查 web.xml文件,应该是<filter>和<filter-mapping>或者<servlet>和<servlet-mappi ...

  7. 免费视频教学:30天精通iPho…

    原文地址:免费视频教学:30天精通iPhone手机编程(全)作者:苹果iphone软件编程 土豆连接http://www.tudou.com/playlist/id12638619.html

  8. 高性能Web服务器Nginx的配置与部署研究(7)核心模块之主模块的非测试常用指令

    1. error_log 含义:指定存储错误日志的文件 语法:error_log <file> [debug|info|notice|warn|error|crit] 缺省:${prefi ...

  9. Unity3d 下websocket的使用

    今天介绍一下如何在Unity3D下使用WebSocket. 首先介绍一下什么是websocket,以及与socket,和http的区别与联系,然后介绍一下websocket的一些开源的项目. WebS ...

  10. 169. Majority Element 出现次数超过n/2的元素

    [抄题]: Given an array of size n, find the majority element. The majority element is the element that ...