作家
登录

JavaScript运算符规则与隐式类型转换详解

作者: 来源: 2017-09-06 09:51:17 阅读 我要评论

  • let str = "123"
  • console.log(typeof str); // string 
  •  
  • let num = Number(str); // becomes a number 123  
  • console.log(typeof num); // number  
  • let age = Number("an arbitrary string instead of a number");  
  • console.log(age); // NaN, conversion failed  
  • // Boolean 
  • console.log( Boolean(1) ); // true 
  • console.log( Boolean(0) ); // false  
  • console.log( Boolean("hello") ); // true 
  • console.log( Boolean("") ); // false 
  • 最终,我们可以获得如下的 JavaScript 原始类型转换表(包含复合类型向原始类型转换典范例):

    JavaScript 运算符规矩与隐式类型转换详解

    JavaScript 运算符规矩与隐式类型转换详解

    JavaScript 中我们常说的原始类型包含了数值类型、字符串类型、布尔类型与空类型这几种;而我们常用的原始类型之间的转换函数就是 String、Number 与 Boolean:

    比较运算

    在比较运算与加法运算中,都邑涉及到将运算符两侧的操尴尬刁难象转化为原始对象的步调;而 JavaScript 中这种转化实际上都是由 ToPrimitive 函数履行的。实际上,当某个对象涌如今了须要原始类型才能进行操作的高低文时,JavaScript 会主动调用 ToPrimitive 函数将对象转化为原始类型;譬如上文介绍的 alert 函数、数学运算符、作为对象的键都是典范场景,该函数的签名如下:

    1. ToPrimitive(input, PreferredType?) 
    1. var ToPrimitive = function(obj,preferredType){ 
    2.   var APIs = { 
    3.     typeOf: function(obj){ 
    4.       return Object.prototype.toString.call(obj).slice(8,-1); 
    5.     }, 
    6.     isPrimitive: function(obj){ 
    7.       var _this = this, 
    8.           types = ['Null','Undefined','String','Boolean','Number']; 
    9.       return types.indexOf(_this.typeOf(obj)) !== -1;  
    10.     } 
    11.   }; 
    12.   // 如不雅 obj 本身已经是原始对象,则直接返回 
    13.   if(APIs.isPrimitive(obj)) {return obj;} 
    14.    
    15.   // 对于 Date 类型,会优先应用其 toString 办法;不然优先应用 valueOf 办法 
    16.   preferredType = (preferredType === 'String' || APIs.typeOf(obj) === 

        推荐阅读

        CIO修炼之道第4讲!张明文谈六项能力打造IT数字神经网络

      《CIO修炼之道》第 4 讲制造业企业的核心竞争力表如今产品和办事上,展如今客户面前的竞争力就是“性价比高,交货快!”,这“一高、一快”是互相接洽关系的。比如,采取提前备货、扩大年夜产能等>>>详细阅读


      本文标题:JavaScript运算符规则与隐式类型转换详解

      地址:http://www.17bianji.com/lsqh/37165.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)