zoukankan      html  css  js  c++  java
  • JavaScript的数据类型

           JavaScript的数据类型和Java还是有很大差别的,Java的数据类型分得比较细,而JavaScript只是大致分几个类,其中就有Undefined 、 Null 、Boolean、Number 、 String 、 Object类型。

     

    1、 typeof 操作符

      typeof 主要是为了检测给定变量的数据类型,如:

    1 var message = "string";
    2 alert(typeof message);  //"string"
    3 alert(typeof 89);  //"number"
    4 alert(typeof null);  //"object"

    注:特殊值null会被认为是一个空的object对象引用。

     

    2、Undefined  类型

      Undefined 类型只有一个值,即 undefined 。在使用var声明变量但未进行初始化,这个值就是 undefined。

    1 var message ;
    2 alert(message);  //undefined
    3 alert(age); //产生错误,因为age尚未声明

    但 typeof 用于未定义的变量不会产生错误,如

    1 var message;
    2 alert(typeof message); // "undefined"
    3 alert(typeof age); //"undefined"

     

    3、Null  类型

      null 类型也只有一个值,即null,其表示一个空对象指针。

    1 var message = null2 alert(typeof message); //"object"
    3 
    4 alert(null == undefined); //true
    5 alert(null === undefined); //false,因为数据类型不同

     

    4、Boolean 类型

      值为 true 或 false  , 但 true 不一定为1, false 也不一定为0。 

    1 var messege = "hello"; 
    2 var messageBoolean = Boolean(message); //可转化为对应的Boolean值

    各种数据类型的转化规则

     
    数据类型 转化为 true 转化为 false
    Boolean true false
    String 任何非空字符串 ""(空字符串)
    Number 任何非零数字值(包括无穷大) 0 和 NaN(Not a Nunber)
    Object 任何对象 null
    Undefined n/a (not application:不适用) undefined

     

     

     

     

     

     

     

     

     

     

     

    5、Number 类型

       先举些例子吧

    1 var num = 50 ; //十进制整数
    2 var num1 = 070 ; //八进制数值,解析为56
    3 var num2 = 079 ; // 无效的八进制数,解析为79
    4 var num3  = 0xA; //十六进制的10

    (1)浮点数值

    e或E表示10次幂的指数,如

    1 var floatNum = 3.12e2; //等于312
    2 var floatNum2 = 3.12e-1; //等于0.312

    注:不要用浮点数作为比较值!

    (2)数值范围

      在大多数浏览器中,Number.MIN_VALUE = 5e-324 , Number.MAX_VALUE = 1.79e+308  ,其中正无穷为 Infinity ,负无穷为 - Infinity

    可以用  isFinite() 函数 判断值是不是无穷值,参数位于最大值和最小值之间返回 true 。

    (3)NaN

      Not a Number , NaN与任何值都不相等 , 包括NaN本身。

    1 alert(NaN); //false

    isNaN() 函数 用来判断是否“不是数值”,如

    1 alert(isNaN(NaN)); //true
    2 alert(isNaN(19)); //false
    3 alert(isNaN("19")); //false,可转化为数值
    4 alert(isNaN(true)); //false, 可转化为数值1

    (4)数值转化

      1)Number():可用于任何数据类型

    1 var num1 = Number("hello world"); // NaN
    2 var num2 = Number(""); // 0
    3 var num3 = Number("00011"); // 11
    4 var num4 = Number(true); //1
    5 var num5 = Number(null); // 0

      2)parseInt():返回整数

    var num1 = parseInt("1223dsds"); //1223
    var num2 = parseInt("ere1223"); // NaN . 第一个字符不是整数
    var num3 = parseInt(""); //NaN
    var num4 = parseInt("070"); //56(八进制),ECMAScript 5 转化为 70
    var num5 = parseInt("0xf"); //15(十六进制)
    
    var num6 = parseInt("0xAF" , 16); //十六进制,175

      3)parseFloat ():返回浮点数

    1 var num1 = parseFloat("1234blue"); //1234
    2 var num2 = parseFloat("0xA"); //0
    3 var num3 = parseFloat("22.5"); //22.5
    4 var num4 = parseFloat("22.34.5"); //22.34
    5 var num5 = parseFloat("3.125e7"); //3120000

     

    6. String 类型

      1)特点

      字符串一旦创建,它的值就不可变,但可通过先销毁原来的字符串,再填充新值。

    1 var lang = java;
    2 lang = lang + "Script";
    3 alert(lang.length); //10

      2)转化为字符串

    var age = 11;
    alert(age.toString()); // "11"
    
    var num = 10;
    alert(age.toString(2)); //1010 ,二进制
    alert(age.toString(8)); //12 , 八进制
    
    var num1 = true;
    alert(num1); //"true"
    
    var num2 = null;
    alert(num2); //"null"
    
    var num3 ;
    alert(num3); //"undefined"

     

    7. Object 类型

    var ob = new Object();

    实例的属性和方法:

    (1)constructor: 用于创建当前对象的函数,上面例子的构造方法为Object()。

    (2)hasOwnPeoperty(propertyName):用于检查给定的属性在当前对象实例中(而不是在实例的原型中)是否存在,如:

    1 var bool = ob.hasOwnProperty("name");

    (3)isPrototypeOf(object):用于检查传入的对象是否是当前对象的原型。

    (4)propertyIsEnumerable(propertyName):用于检查属性是否能够使用for-in语句来枚举。

    (5)toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应。

    (6)toString():返回对象的字符串表示。

    (7)valueOf():返回对象的字符串、数值、或布尔值表示。通常与toString()返回值相同。

     

     

     

    参考《JavaScript高级程序设计》

     

  • 相关阅读:
    [微信篇]ESP8266-NonOS学习笔记(十一)之微信小程序控制LED灯 Part 1
    [外设篇]ESP8266-SDK教程(十)之DHT11、OLED1306
    [基础篇]ESP32-RTOS-SDK教程(一)之Windows环境搭建
    [网络篇]ESP8266-SDK教程(九)之物联网标配MQTT实际测试
    [网络篇]ESP8266-SDK教程(八)之物联网标配MQTT服务端软件
    [网络篇]ESP8266-SDK教程(七)之物联网标配MQTT初相识
    [网络篇]ESP8266-SDK教程(六)之网页配置Wi-Fi名称和密码
    [网络篇]ESP8266-SDK教程(五)之SmartConfig、Airkiss等多种配网方式
    [基础篇]ESP8266-SDK教程(四)之GPIO操作(按键、LED、中断、定时器)
    [网络篇]ESP8266-SDK教程(三)之TCP通信Server<->Client
  • 原文地址:https://www.cnblogs.com/daheiylx/p/8696728.html
Copyright © 2011-2022 走看看