js数据类型的转换

js中数据类型转换

显示数据类型的转换

  1. typeof:能返回六中操作类型的数据:Number, String, Boolean, Objecet, undefined, function
        var a = 1;
        //conloe.log(typeof(a)) 值为Number
        var a = [];
        //conloe.log(typeof(a)) 值为Object
        var a = {};
        //conloe.log(typeof(a)) 值为Object
        var a = null;
        //conloe.log(typeof(a)) 值为Object
        var a = true;
        //conloe.log(typeof(a)) 值为Boolean
        var d;
        //conloe.log(typeof(b)) 值为Undefined
        var a = function(){};
        //conloe.log(typeof(a)) 值为function
  1. js中默认存在一定的类型装换, 默认情况下js会对字符串进行一些隐式转换
        console.log("1" + 1) //11
        console.log("1" + "1") //11
        console.log("1" * 1) //1
        console.log("1" -1) //0
        console.log("2" + 1) //21
        console.log("2"- 1) //1
  1. Number(‘number‘)//把里面的东西转换为数字
       var demo = '123'
       demo =  Number(demo) //把demo装换为数字
       console.log(typeof(demo)) //number
       var demoB = true
       console.log(Number(demoB)) //1 boolean值转为数字类型以后1为真, 0为假
       console.log(Number("sfjafja")) //NaN 不能转为为数字的值转换为数字后, 值为NaN
       var demoN = null
       console.log(Number(demoN)) //值为0
       var demoun = undefined
       console.log(Number(demoun)) //NaN
  • parseInt():
    parseInt(val, radix) 把里面的数字转换为整型, 第一个参数可以使字符串, Boolean, 甚至对象,函数,
    第二个参数为进制数,默认把该数值当成该进制的数,然后以该进制为基地转换为10进制的数
    重新理一下: 就是把传进来的val当成 radix进制, 然后把他转换为10进制,默认不传值的话是10进制
      var i = '123'
      console.log(parseInt(i), typeof(parseInt(i))) //123 number
      var i = "123.9"
      console.log(parseInt(i), typeof(parseInt(i))) //123 number
      var demoi = false
      console.log(parseInt(demoi), typeof(parseInt(demoi))) //NaN number
      var demor = 3
      console.log(parseInt(demor, 2)) // NaN , 默认把3当成2进制的数,由于2进制中不存在3, 所以输出为NaN
      var demorx = 'b'
      console.log(parseInt(demorx, 16)) //11 ,把b当成16进制数,然后把它转换为10进制数
      var demos = '100px'
      console.log(parseInt(demos)) //100 parseInt会从开头的数字开始看,看完不是数字为值
      var demols = "afaf100fafa"
      console.log(parseInt(demols)) // NaN 
  • parseFloat(): parseFloat(‘number‘) //用法和parseInt差不多,但是会把所有的数值都转换为浮点数
      console.log(parseFloat("100"))  //100 整数的时候parseFloat是不会添加.0 de
      console.log(parseFloat("100.1")) //100.1
      console.log(parseFloat('100.0.01')) //100 默认只会取一个小数点
      console.log(parseFloat('100.12raga')) //100.12
  • String(‘val‘) //把val转换为string
    var demostr = String(function (){
      console.log('I an String')
      })
    console.log(demostr) //function (){  console.log('I an String')}
  • toString(‘mix‘) //转换为字符串
      var demot = 1213
      var demots = toString(demot)
      var demounde = toString(undefined)
      console.log(typeof (demounde)) //string
      console.log(typeof(demots)) //string
  • .toString(radix)
    想把谁转换为字符串就后面.tostring undefined 和 null 不能用 toString
    可以把数字转换成该目标进制的字符串, 以十进制为基地转化成目标进制
    注意区别于parseInt(val, radix) 他是把val当成radix进制,然后转换为10进制
      console.log(typeof(demot.toString()))
      var demo = 123
      console.log(demo.toString(8), typeof demo.toString(8)) //173 string

隐式数据类型的转换

隐式数据类型的转换是在一定条件下,触发了JavaScript内部的转换机制,内部调用的是显示的数据类型转换
隐式数据类型的触发条件主要情况: isNaN(), +/-/*//, ++, --, >,>=,=<,> < ,%, !, &&, ||, ==, !=

  1. isNaN(val) // 判断val是不是一个非数,先调用Number函数,然后再执行判断
    console.log(isNaN('123')) //false
    console.log(isNaN('abc')) //true
    console.log(isNaN(null)) //false     Number(null) 是0 所以其值为false
    console.log(isNaN(undefined)) //true
  1. +/-, ++/-- */ %
    涉及到这些运算符的时候也会发现数据类型的隐式转换
    var abc = + "abc"
    console.log(typeof (abc), abc) //number NaN
    var abc = "abc" + 1
    console.log(typeof (abc), abc) //string abc1 当加号两侧有一个是字符串的时候就调用String()方法把它转换成String
    console.log(typeof ("1" * 1), 1 * "1") // numeber 1
    console.log(typeof (1 / "1"), 1 / 1) //number 1
    console.log(typeof (2 % "10"), 2 % "10") //numberi 2
  1. &gt &lt = &gt= &lt= == !=
    有数字参与比较会转换为数字类型,无数字类型比较会转换为ascall码比较, Boolean类型会转化为数字,数字优先原则
    console.log(1>= "2") //会转换成number型在进行比较
    console.log("1">"2") //会直接比ascall码值
    console.log(3 > true) //true
    console.log(1 == true) //true
    console.log(false == 1) //false
  1. 几个特殊的值
    null 和undefined在比较的时候不会发生隐式转换
    == != 会发生隐式转换, === !== 不会发生隐式转换
   console.log(Number(null)) //0
   console.log(null == 0)
   console.log(Number(null) == 0) //true
   console.log(1 == "1") //true
   console.log(1 ==="1") //false
   console.log(1 === true)  //false
   console.log(1 != "1") //false
   console.log(1 !== "1") //true

原文地址:https://www.cnblogs.com/ghostdot/p/11372466.html

时间: 2024-07-30 05:14:17

js数据类型的转换的相关文章

JS系列:js数据类型的转换

数据类型的转换[基本数据类型]数字 number字符串 string布尔 boolean空 null未定义 undefined[引用数据类型]对象 object普通对象 {}数组对象 [](Array)正则对象 (RegExp)日期对象 (Date)数学函数 (Math)…函数 function 真实项目中根据需求,我们徐亚进行对数据类型转换(规则和规则之间是相互独立的,千万不要混着记) 把其他数据类型转换为number类型1.发生的情况- isNaN检测的时候:当检测的值不是数字类型,浏览器会

js显示数据类型的转换

js中数据类型装换 ### 显示数据类型的转换 typeof:能防回六中操作类型的数据:Number, String, Boolean, Objecet, undefined, function ~JavaScript var a = 1; //conloe.log(typeof(a)) 值为Number var a = []; //conloe.log(typeof(a)) 值为Object var a = {}; //conloe.log(typeof(a)) 值为Object var a

JavaScript学习10 JS数据类型、强制类型转换和对象属性

JavaScript学习10 JS数据类型.强制类型转换和对象属性 JavaScript数据类型 JavaScript中有五种原始数据类型:Undefined.Null.Boolean.Number以及String. Undefined数据类型的值只有一个:undefined. 在JavaScript中,如果函数没有声明返回值,那么会返回undefined.(后面有实例). 如果typeof后面跟一个未定义的参数,也是返回undefined. Null数据类型的值只有一个:null. null与

web开发与设计--js数据类型,js运营商

1. js数据类型划分:号码值类型,布尔,串 由typeof能够看到什么类型的数据被详述. 举例: <span style="font-family:Microsoft YaHei;font-size:18px;"><html> <head> </head> <body> <script language="javascript"> //js中变量的定义(在js中,变量用var表示,无论实际类型

细说JavaScript数据类型及转换

细说JavaScript数据类型及转换 JavaScript数据类型 1.Boolean(布尔) 布尔:(值类型)var b1=true;//布尔类型 2.Number(数字) 数值:(值类型)var n1=3.1415926;//数值类型 n1.toFixed(3);//四舍五入保留3位小数. 3.String(字符串) var s1='hello';//字符串类型 字符串:(值类型,字符串不可变特性) 4.Undefined(未定义) undefined属于值类型,与其他值计算得到的结果不是

JS隐式转换

 首先,JS数据类型分为6种,分别是null.undefined.boolean.string.number.object.其中,object是引用类型,其余5种是基本类型或者叫做原始类型. 类型转换,就是隐式转换!不同类型的变量相比较时要先转换类型.隐式转换通常发生在运算符加.减.乘.除,以及大于.小于等等. typeof()方法用来打印判断某个元素是什么数据类型. 1.字符串和数字的相互转换: (1).字符串 加 数字 || 数字 加 字符串,数字 => 字符串 eg: typeof("

总结的JS数据类型判定(非常全面)

用typeof 来检测数据类型 Javascript自带两套类型:基本数据类型(undefined,string,null,boolean,function,object)和对象类型. 但是如果尝试用typeof 来检测对象类型都一律返回"object"并不能加以区分 typeof null // "object" typeof [] // "object" typeof document.childNodes //"object&qu

web开发设计--js数据类型,js运算符

1. js数据类型分为:数值型,布尔型,字符串 通过typeof可以看具体的数据类型是什么. 举例: <span style="font-family:Microsoft YaHei;font-size:18px;"><html> <head> </head> <body> <script language="javascript"> //js中变量的定义(在js中,变量用var表示,不管实际类

关于js数据类型的一些知识点(一)

学习js有接近3个月了,一直没有系统梳理过一些知识点,再翻看以前的学习笔记的时候,希望可以整理总结一下. 一·基本数据类型有: number,string,boolean,null,undefined,object.六种. Array(数组).Function(){}(函数)均为对象(引用)类型. 二.数据类型之间转换 1.转number(-------->number) Number()方法,parseInt( )取整数.parseFloat( )保留小数 注意:Number(null) //