Js的数据类型以及相关函数

小编 2026-07-01 阅读:1073 评论:0
下图是js的数据类型导图,后面是重点类型的相关介绍: 上图中部分数据类型的说明 1. undefined:在使用var声明变量声明但未对其初始化时,这个变量的值就是undefined. v...

下图是js的数据类型导图,后面是重点类型的相关介绍:

上图中部分数据类型的说明

1. undefined:在使用var声明变量声明但未对其初始化时,这个变量的值就是undefined.

var msg;
alert(msg);//声明但未初始化,结果是undefined
alert(msg1);//既没有声明也没有初始化,也返回undefined

2. null:表示一个空对象指针。

alert(typeof null);//object

实际上,undefined是派生自null的,js规定它们两个值在相等性测试要返回true。

alert(undefined == null);//true

3. Number类型的相关函数:有3个函数可以把非数值转换成数值Number()parseInt()parseFloat()

  3.1 Number()

  • 如果是布尔值,true和false将被转换成1和0
  • 如果是数字,原样返回
  • 如果是null,返回0
  • 如果是undefined,返回0
  • 如果是数字字符串
    • 若字符串中只有数字,将会被转化成十进制数(如果包括0x开头的有效字符串,也会转为10进制),且去掉前导0,例如\"123\"转为123,\"0123\"转为123
    • 如果是空字符串,则返回0
    • 除了上面的两种字符串以外,其余字符串都是NaN
  • 如果是引用类型对象,则调用对象的valueOf()方法,然后按照上面的过程转换返回的值,如果转换的结果是NaN,则调用对象的toString()方法,然后按照上面字符串的转换方式转换。
        console.log(Number(true));//1
        console.log(Number(null));//0
        console.log(Number(undefined));//NaN
        console.log(Number(\"001111\"));//1111
        console.log(Number(\"\"));//0
        console.log(Number(\"你好\"));//NaN
        console.log(Number(new Object()));//NaN

  3.2 parseInt()

  • 如果parseInt转换的字符串第一个字符是数字字符,会继续解析第二个字符,直到遇到一个非数字字符。
  • 如果字符串以0x开头会按照十六进制来转换。
  • parseInt还有第二个参数,可以按照指定进制数去转换。
        console.log(parseInt(\"1234hello\"));//1234
        console.log(parseInt(\"\"));//NaN
        console.log(parseInt(\"0xa\"));//10
        console.log(parseInt(\"22.2\"));//22
        console.log(parseInt(\"070\"));//70
        console.log(parseInt(\"AF\"));//NaN
        console.log(parseInt(\"0xb\",16));//11
        console.log(parseInt(\"AF\",16));//175
        console.log(parseInt(\"10\",2));//2
        console.log(parseInt(\"10\",8));//8
        console.log(parseInt(\"10\",10));//10
        console.log(parseInt(\"10\",16));//16

  3.3 parseFloat()

  • parseFloat与parseInt的解析方式一致,只不过会多解析一个小数点,但是遇到第二个小数点就不会再解析了。
  • parseFloat转换16进制格式的字符串始终都会被转换成0.
        console.log(parseFloat(\"123hello\"));//123
        console.log(parseFloat(\"0xA\"));//0
        console.log(parseFloat(\"22.2\"));//22.2
        console.log(parseFloat(\"22.22.22\"));//22.22
        console.log(parseFloat(\"0201.2\"));//201.2
        console.log(parseFloat(\"3.1415e7\"));//31415000

4. String类型相关的toString()方法

  • 数值、布尔值、对象和字符串值都有一个toString()方法,但是null和undefined值没有这个方法。如果用undefined和null调用toString()方法,会报错Uncaught TypeError: Cannot read property \'toString\' of undefined或者Uncaught TypeError: Cannot read property \'toString\' of null
  • toString()还可以再传一个参数,可以通过这个参数控制toString方法以二进制、八进制、十六进制等方法表示字符串。
        console.log(num.toString());//10
        console.log(num.toString(2));//1010
        console.log(num.toString(8));//12
        console.log(num.toString(10));//10
        console.log(num.toString(16));//a
  • 当不知道一个值是不是null或者undefined的情况下,可以使用String()将这个值转换为字符串。String()会将null和undefined转成\"null\"和\"undefined\"。
        console.log(String(10));//10
        console.log(String(true));//true
        console.log(String(null));//null
        console.log(String(undefined));//undefined

5. Objecr类型相关方法

  • constructor:构造函数。用于创建当前对象的函数。
  • hasOwnProperty(propertyName):检查某个属性再当前对象实例(注意是实例不是原型)中是否存在。
  • isPrototypeOf(object):用于检查当前对象是否是当前对象的原型。
  • propertyIsEnumerable(propertyName):用于检查某个属性是否能用for-in语句来枚举。
  • toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应。
  • toString():返回对象的字符串表示。
  • valueOf():返回对象的字符串、数值或布尔值表示。

注意:toLocaleString()和toString()的区别:再打印一些信息的字符串上可能会收到地区的影响,例如打印时间:

        console.log(obj.toLocaleString());//2018/12/23 下午9:09:23
        console.log(obj.toString());//Sun Dec 23 2018 21:09:23 GMT+0800 (中国标准时间)
版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

热门文章
  • Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering

    Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering
    Problem Statement 我们考虑一个具有马尔可夫性质、非线性、非高斯的状态空间模型(State Space Model):对于一个时间序列上的观测结果{yt,t∈N}\\{ y_t , t \\in N \\}{yt​,t∈N},我们认为每个观测结果yty_tyt​的生成依赖于一个无法直接观察的隐变量xt∈{xt,t∈N}x_t \\in \\{x_t , t \\in N \\}xt​∈{xt​,t∈N},即:p(...
  • 机房智能化温湿度解决方式之POE供电以太网温湿度传感器

    机房智能化温湿度解决方式之POE供电以太网温湿度传感器
    机房智能化温湿度解决方式之POE供电以太网温湿度传感器 北京盈创力和电子科技有限公司 智能型TCP网口温湿度记录仪 北京IP网络温湿度记录仪厂家,北京盈创力和 北京智能型TCP网口温湿度记录仪IP网络温湿度记录仪是一种新型的基于TCP/IP协议双绞线以太网标准温湿度采集模块,利用它可以实现现场温度值、相对湿度值的采集,同时利用其自身的RJ45通信接口可以方便地和机房监控主机或交换机集线器进行联网。 工作于-40℃~85℃工业级带...
  • Hive 系统函数及示例

    Hive 系统函数及示例
    查看所有系统函数 show functions; 函数分类 内置函数【系统函数】 数学函数: floor、round、ceil、cos、log2等 字符串函数: length、reverse、trim、lower、get_json_object、repeat等 收集函数: size 转换函数: cast 日期函数: year、month、datediff、date、date_add等 条件函数: coalesce、case…w...
  • CSRF的原理和防范措施

    CSRF的原理和防范措施
    a)攻击原理:i.用户C访问正常网站A时进行登录,浏览器保存A的cookieii.用户C再访问攻击网站B,网站B上有某个隐藏的链接或者图片标签会自动请求网站A的URL地址,例如表单提交,传指定的参数iii.而攻击网站B在访问网站A的时候,浏览器会自动带上网站A的cookieiv.所以网站A在接收到请求之后可判断当前用户是登录状态,所以...
  • HTTP状态保持的原理

    HTTP状态保持的原理
    a)在用户登录之后,浏览器返回响应的时候会在响应中添加上cookieb)浏览器接收到cookie之后会自动保存c)当用户再次请求同一服务器中的其他网页的时候,浏览器会自动带上之前保存的cookied)服务接收到请求之后可以请 request 对象中取到cookie 判断当前用户是否登录  Http是无状态的,就是连接时数据互通,关闭后...
标签列表