zoukankan      html  css  js  c++  java
  • JavaScript数据类型之隐式类型转换

    JavaScript的数据类型分为七种,分别为null,undefined,boolean,string,number,object,symbol ( ECMAScript 2015新增)。object是引用类型,其它的六种是基本类型或者是原始类型

    ES5的对象属性名都是字符串,这容易造成属性名的冲突。比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法(mixin模式),新方法的名字就有可能与现有方法产生冲突。ES6引入了一种新的原始数据类型Symbol,表示独一无二的值。
    Symbol值通过`Symbol`函数生成。这就是说,对象的属性名现在可以有两种类型,一种是原来就有的字符串,另一种就是新增的Symbol类型。凡是属性名属于Symbol类型,就都是独一无二的,可以保证不会与其他属性名产生冲突。

    1.加法

    非字符串与字符串相加,会将非字符串转化为字符串。布尔值与数字相加,会转化为数字,同样适用于减乘除。例如:

    x = "The answer is " + 42 // "The answer is 42"
    y = 42 + " is the answer" // "42 is the answer"
    true+12 //13

    2.减法

    进行减法操作,那么两个操作数都会先被转换为数字,然后在进行算数运算。例如:

    "35" -5 // 30
    "35" + 5 // "355"
    var bool = true; var num = "8"; console.log(bool - num); // -7

    3.将string转化为number

    • parseInt()
    • parseFloat()
    • 用“+”号操作符
    "1.1" + "1.1" = "1.11.1"
    (+"1.1") + (+"1.1") = 2.2  

    4.==等号运算

    undefined和null比较特殊,它们两个使用==运算符返回值是true。

    其他值类型进行比较的时候都会将运算数转换为数字。

    console.log(undefined==null); //true
    console.log("3"==3); //true
    console.log("1"==true); //true

    上面的代码会将字符串"3"转换成数字,然后再进行比较,将"1"和true转换成数字,然后进行比较。

  • 相关阅读:
    并发编程(贰):线程池浅析
    并发编程(壹):创建线程的三种方式及其对比
    Spring Boot使用@Async实现异步调用:自定义线程池
    parallel stream-不能随便使用
    Java 8新特性(四):新的时间和日期API
    Java 8新特性(三):Optional类
    Java 8新特性(二):Stream API
    Java 8新特性(一):Lambda表达式
    ES日期存储
    String,StringBuffer,StringBuillder的底层结构
  • 原文地址:https://www.cnblogs.com/cheemon/p/6026028.html
Copyright © 2011-2022 走看看