• JavaScript数据类型 —— 基础语法(2)


    JavaScript基础语法(2)

    数据类型

    js中有六种数据类型,包括五种基本数据类型(Number,String,Boolean,Undefined,Null),和一种复杂数据类型(Object)。在JS中,原始类型有6中:

    一、数字类型Number

    (1)、整数:

      可以是正数、0、负数,也可以是10进制、8进制、16进制等不同进制幂数的表示。

      八进制是0开头的,后面的每个数都不超过7,就是八进制,如果超过7就是十进制。

      十六进制是以0x开头的,后面可以是0-9, A-F。例如:

    <script type="text/javascript">    
        console. log(123) ;
        console. log(0123);//0123是8进制的数 ,不是10进制,值对应的10进制的数是:83
        console. log(0xabc);//0xabc是16进制表示的整数,对应10进制的值: 2748
    </script>

      浏览器显示为:

    (2)、浮点数:

      可以包含小数点,也可以包含e (表示10幕次方数),两个同时包含也可以,不能用8进制和16进制。例如:

    //这几种写法,它最终显示都为0.0001
    console. log( .0001);
    console. log(0.0001);
    console.1og(1e-4);
    console.1og(1.0e-4);

    浮点数将会自动转换为整数。

    var num = 1.00;
    console.log(num);//1,自动转换为整数

    浮点数的最高精确度是17位。

    浮点数做数学运算时偶尔有误差:https://www.cnblogs.com/beimingdaoren/p/12739470.html

    (3)、数字常量

    可以用math对象获得:

    数字常量     含义                   数字常量 含义                  
    Math.E 自然对数的低,即e Math.LOG10E  以10为底e的对数
    Math.LN2 2的自然对数 Math.PI 常数π(3.1415...)
    Math.LN10 10的自然对数 Math.SQRT1_2 0.5的平方根
    Math.LOG2E   以2为底e的对象 Math.SQRT2 2的平方根

     

    (4)、特殊值

    Number对象来获取:

    内容 含义     内容 含义
    Num.MAX_VALUE 可表示的最大值  Num.POSTIVE_INFINITY 正无穷大
    Num.NaN 非数学字符 Num.NEGATIVE_INFINIIY 负无穷小
    Num.MIN_VALUE 可表示的最小值    

    (5)、NaN:非数字类型。

     特点:

    • 涉及到的任何关于NaN的操作,都会返回NaN
    • NaN不等于自身。
    var ab= "a1";
    console.log(ab/10);// NaN
    console.log(NaN == NaN);// false;

    (6)、isNaN()函数

    用于判断是否是一个非数字类型。如果传入的参数是一个非数字类型,那么返回true;否则返回false;

    过程:isNaN()函数,传入一个参数,函数会先将参数转换为数值。如果参数类型为对象类型,会先调用对象的valueOf()方法, 再确定该方法返回的值 是否可以转换为数值类型。如果不能,再调用对象的toString()方法, 再确定返回值。

    (7)、数值转换

    • Number()转型函数,可以用于任何数据类型;
    • parselnt(),将值转换为整型,用的比较多;
    • parseFloat();将值转换为浮点型。

    二、字符串类型String

    字符串是以单引号’或双引号"括起来的任意文本,比如'abc', "xyz"等等。

    这里用的单引号与双引号的作用效果完全一样。但是要注意,' '或" "本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a, b, c这3个字符。

     字符串有length属性。可以取得字符串的长度:

    var str ="hello";
    console.log(str .length);//5

    字符串的值是不可变的。要改变一个字符串的值,先要销毁原来的字符串,再用另一个包含新值的字符串去填充该字符串。

    var lang = "java";
    lang =lang + "script"; 

    上面这段代码,先创建一个能容纳10个字符的字符串,然后在这个字符串中填充java和script字符串,最后销毁原来的字符串java和scrip字符串,因为这两个字符串此时已经没用了。
    这个过程是在后台发生的。可参照:详解字符串

    字符串转换:转型函数String(),适用于任何数据类型(null,undefined 转换后为null和undefined) ;toString()方法(null,defined没有toString()方法)。例如:

    var a = "beiming";
    var b = null;
    var c = undefined;
    
    console.log(a.toString());//beiming
    console.log(b.toString());//error报错
    console.log(c.toString());//error报错
    
    console.log(String(a));//beiming
    console.log(String(b));//null
    console.log(String(c));//undefined

    三、布尔值

    那么是true,要么是false,可以直接用true、false表示布尔值,也可以用表达式的结果表示布尔值。

    注意:在js中布尔值只能用true和false表示,不能用0和1。

    转化为boolean:转型函数Boolean();将某个值转化为Boolean类型,例如:console.log(Boolean(0));//false

    四、未定义数据类型

    表示在变量被创建后,没给该变量赋值之前所具有的值。

    var name = "beiming";
    var age;
    console.log(name)//beiming
    console.log(age);//undefined
    console.log(height);//error,变量height没有声明
    console.log(typeof name)//string
    console.log(typeof age);//undefined
    console.log(typeof height);//undefined,变量height没有声明
    1. 上面这段代码中,age虽然声明了,但是没有初始化值,所以,打印出来的是undefined.而变量height没有声明,故报错。
    2. 但是用typeof操作符去检测数据类型的时候,变量age没有初始化,结果是undefined,没有声明变量的height检测的类型也是undefined.

    五、空值

    • null类型被看做空对象指针, null类型也是空的对象引用。
    • 只有一个值,即null值,所以,在你用typeof操作符去检测null类型的值时,结果是object类型。
    • 如果你定义了一个变量,但是想在以后把这个变量当做一个对象来用,那么最好将该对象初始化为null值。

    六、Object类型

    js中对象是一组属性与方法的集合。

    具体的关于对象的创建方式以及对象的各种特性,会在后面的的章节中做详细介绍。这里就简单介绍一下六大数据类型中的Object.

    constructor属性:构造函数属性,可确定当前对象的构造函数。

    console.log(o.constructor == Object);//true
    var arr = new Array();
    console.log(arr.constructor == Object);//false
  • 相关阅读:
    android 网络 post get
    java 命名规范
    android 判断service是否开启
    android 无线连接eclipse
    eclipse jar java.lang.NoClassDefFoundError
    eclipse 默认 utf8
    timer timetask handler
    android 自定义动画按钮
    设计网站
    java 分解arraylist中单个对象 的属性名与值
  • 原文地址:https://www.cnblogs.com/beimingdaoren/p/12739798.html
Copyright © 2020-2023  润新知