zoukankan      html  css  js  c++  java
  • JS复习之数据类型

    在JavaScript中有5种(Undefined、Null、Boolean、Number、String)简单数据类型和1种(Object)复杂数据类型,用var声明变量

    可以使用typeof方法来检测数据类型

    下面来详细介绍6种数据类型

    1.Undefined类型

      未初始化与未声明的变量值都为undefined,未声明的变量直接使用会导致报错,但是可以用typeof操作符执行判断是可以执行的,也可以显示的声明一个变量值为undefined,但是这样意义不大。

    2.Null类型

      null值表示一个空对象的指针(有些早期浏览器执行typeof null会返回object),null派生自undefined,所以用相等符号(==)判断的时候回返回true,如果希望一个变量用来存储对象,应该在声明时显示的声明为null,表面它是一个指针

    3.Boolean

      boolean值的字面值只有两个,即为‘true’与‘false’,在ECMAScript中所有的值都可以与这两个字面值等价。String类型非空即为true,Number类型任何非零与NaN数字值为true,Object类型任何对象都为true,Undefined只能是false,Boolean是流程控制语句的重要数据类型

    4.Number类型

      最基础的字面量格式是十进制整数,八进制整数要在前面加0,十六进制要在前面加入0x,八进制字面量在严格模式是无效的,在进行计算时都会被化为十进制数

      Number类型的特点

      一.浮点数

        由于浮点数是整数的两倍,因此ECMAScript会不失时机的将浮点转为整数,浮点数可以用科学计数法表示,例如3.14e8就是3.14x10^8,不要测试某个特定的浮点数值

      二.数值范围

        当数值超过最大或最小值时就会被转化为±Infinity,可以用isFinity函数来检测是否超过界限

      三.NaN

        NaN即非数值,任何涉及NaN的操作都会返回NaN,NaN与任何值都不相等,包括自己在内,可以用isNaN来检测是否为非数值。

      四.数值转换

        有三种将其他类型转为Number的方法,Number、parseInt、parseFloat,Number方法可以将所有的非数值转化为数值,另外两个专门用于把字符串转换为数值。

        Number转换规则

          -如果是Boolean值,true和false分别转换为1与0

          -如果是数值只是简单传入返回

          -如果是null,返回0

          -如果是undefined返回NaN

          -如果是字符串,则将其转化为十进制数,如果其本身是十六进制则转成对应的十进制数值,如果是空的则转化为0,如果包含其他字符则转化为NaN

          -如果是对象则调用valueOf()方法,任何依照前面的规则转换返回值。如果转换的结果是NaN,则调用对象的toString方法,然后再次依照前面的规则转换

        parseInt与parseFloat(num,type)方法

          parseInt在解析八进制字面量的字符串时,ES5(十进制)与ES3(八进制)有分歧,好在它接受的第二个参数可以规定转换的进制格式。parseFloat没有这个问题,功能与parseInt基本一致

    5.String类型

      String类型由多个16位Unicode字符组成,里面包含了很多字面量例如: 、 、等等,在旧的浏览器中,字符串的长度改变时会销毁原来的字符串创建新的来填充,所以Ie6种拼接字符串时会明显感觉变慢,可以用自带的toString和String函数来将其他类型转化为字符串

    6.Object类型

      ECMAScript中的对象其实就是一组数据和功能集合,对象可以通过执行New操作符后跟要穿甲的对象类型名称来创建,而创建Object类型的实例并为其添加属性和方法就可以创建自定义对象。

    对对象的详细介绍放到后面的随笔里面再继续深入。

  • 相关阅读:
    【Blazor】在ASP.NET Core中使用Blazor组件
    Github和Azure DevOps的代码同步
    【.NET Core】在Win10中用VS Code debug
    【UWP】利用EF Core操作SQLite
    【ASP.NET Core】mdl conflicts with tinymce
    【Windows10】如何使用Segoe MDL2 Assets图标
    Docker安装及使用,Docker 安装MySQL、安装Tomcat、安装RabbitMQ
    Anaconda安装常用配置及命令
    MySQL获取周、月、天日期,生成排序号
    Linux常用查询命令
  • 原文地址:https://www.cnblogs.com/myzsy/p/7788478.html
Copyright © 2011-2022 走看看