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

    JavaScript中数据类型分为两种:

    1、基本数据类型

    string number boolean null undefined

    2、引用类型

    数组、Object、function

    一、基本数据类型

    二、引用类型

    1、Array

    Array类型有两种定义方式:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>数组</title>
        <script>
           window.onload=function(){
               //Array类型
               //第一种使用Array构造函数
               var arr=new Array();
               arr[0]="1";// 数组默认索引从0开始
               arr[1]="2";
               //
               var arr1=new Array("a","b","c");
               // 使用字面量的表示法
               var arr2=[1,2,3,4,5];
               // 数组里面可以包含各种数据类型
               var arr3=[1,"2",true,[1,2],{id:1}];
               // 访问数组元素
               console.log(arr3[4].id);
           };
        </script>
    </head>
    <body>
        
    </body>
    </html>

     把代码复制到浏览器里面运行结果:

    2、object类型

    2.1 使用构造函数的方式创建对象

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>对象</title>
        <script>
           window.onload=function(){
               // object类型
               // 第一种object构造函数
               var obj=new Object();
               // 属性
               obj.name="tom";
               obj.age=24;
               // 方法
               obj.action=function(){
                    console.log("我的名字是:"+this.name+",年龄是:"+this.age);
               };
               // 输出name属性的值
               console.log("姓名:"+obj.name);
               // 执行方法
               obj.action();
           };
        </script>
    </head>
    <body>
        
    </body>
    </html>

    执行结果:

    2.2  使用字面量的方式创建对象

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>对象</title>
        <script>
           window.onload=function(){
               // object类型
               // 第一种object构造函数
          /*      var obj=new Object();
               // 属性
               obj.name="tom";
               obj.age=24;
               // 方法
               obj.action=function(){
                    console.log("我的名字是:"+this.name+",年龄是:"+this.age);
               };
               // 输出name属性的值
               console.log("姓名:"+obj.name);
               // 执行方法
               obj.action(); */
    
               // 第二种字面量
               // 1、简单字面量
               var obj1={};
               obj1.name="tom";
               obj1.age=24;
               obj1.action=function(){
                   console.log("我是简单字面量")
               };
               // 属性
               console.log(obj1.name);
               // 方法
               obj1.action();
               // 2、嵌套字面量
               var obj2={
                   name:"jack",
                   age:25,
                   action:function(){
                       console.log("我是嵌套字面量");
                   }
               };
               // 属性
               console.log(obj2.age);
               // 方法
               obj2.action(); 
           };
        </script>
    </head>
    <body>
        
    </body>
    </html>

    运行结果:

    2.3 使用工厂方式创建对象

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>对象</title>
        <script>
           window.onload=function(){
               // object类型
               // 第一种object构造函数
          /*      var obj=new Object();
               // 属性
               obj.name="tom";
               obj.age=24;
               // 方法
               obj.action=function(){
                    console.log("我的名字是:"+this.name+",年龄是:"+this.age);
               };
               // 输出name属性的值
               console.log("姓名:"+obj.name);
               // 执行方法
               obj.action(); */
    
               // 第二种字面量
               /* // 1、简单字面量
               var obj1={};
               obj1.name="tom";
               obj1.age=24;
               obj1.action=function(){
                   console.log("我是简单字面量")
               };
               // 属性
               console.log(obj1.name);
               // 方法
               obj1.action();
               // 2、嵌套字面量
               var obj2={
                   name:"jack",
                   age:25,
                   action:function(){
                       console.log("我是嵌套字面量");
                   }
               };
               // 属性
               console.log(obj2.age);
               // 方法
               obj2.action();  */
    
                  // 第三种工厂方式
                  function createObj(){
                    var obj3=new Object();
                    obj3.name="kevin";
                    obj3.action=function(){
                         console.log("我是通过工厂方式创建的对象");
                    };
                    // 返回创建的对象
                    return obj3;
               };
               // 引用
               var obj4=createObj();
               // 输出属性
               console.log(obj4.name);
               // 调用方法
               obj4.action();
               // 工厂方式也可以使用传递参数的方式
               function createObjWithPara(name,age){
                   var obj5={
                       name:name,
                       age:age,
                       action:function(){
                           console.log("我是调用参数的工厂方式创建的对象");
                       }
                   };
                   //
                   return obj5;
               };
    
               var obj6=createObjWithPara("jon",30);
               // 输出属性
               console.log("姓名:"+obj6.name+",年龄:"+obj6.age);
               // 调用方法
               obj6.action();
           };
        </script>
    </head>
    <body>
        
    </body>
    </html>

    执行结果:

    2.4  使用构造函数的方式

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>对象</title>
        <script>
           window.onload=function(){
               // object类型
               // 第一种object构造函数
          /*      var obj=new Object();
               // 属性
               obj.name="tom";
               obj.age=24;
               // 方法
               obj.action=function(){
                    console.log("我的名字是:"+this.name+",年龄是:"+this.age);
               };
               // 输出name属性的值
               console.log("姓名:"+obj.name);
               // 执行方法
               obj.action(); */
    
               // 第二种字面量
               /* // 1、简单字面量
               var obj1={};
               obj1.name="tom";
               obj1.age=24;
               obj1.action=function(){
                   console.log("我是简单字面量")
               };
               // 属性
               console.log(obj1.name);
               // 方法
               obj1.action();
               // 2、嵌套字面量
               var obj2={
                   name:"jack",
                   age:25,
                   action:function(){
                       console.log("我是嵌套字面量");
                   }
               };
               // 属性
               console.log(obj2.age);
               // 方法
               obj2.action();  */
    
          /*         // 第三种工厂方式
                  function createObj(){
                    var obj3=new Object();
                    obj3.name="kevin";
                    obj3.action=function(){
                         console.log("我是通过工厂方式创建的对象");
                    };
                    // 返回创建的对象
                    return obj3;
               };
               // 引用
               var obj4=createObj();
               // 输出属性
               console.log(obj4.name);
               // 调用方法
               obj4.action();
               // 工厂方式也可以使用传递参数的方式
               function createObjWithPara(name,age){
                   var obj5={
                       name:name,
                       age:age,
                       action:function(){
                           console.log("我是调用参数的工厂方式创建的对象");
                       }
                   };
                   //
                   return obj5;
               };
    
               var obj6=createObjWithPara("jon",30);
               // 输出属性
               console.log("姓名:"+obj6.name+",年龄:"+obj6.age);
               // 调用方法
               obj6.action(); */
    
               // 第四种构造函数 首字母大写,使用驼峰命名方式 相当于一个公共的方法
               function CreateObj(){
                      this.name="tom";
                      this.action=function(){
                          console.log(this.name);
                      }
               };
               // 实例化
               var obj7=new CreateObj();
               // 输出属性
               console.log(obj7.name);
               // 调用方法
               obj7.action();
    
           };
        </script>
    </head>
    <body>
        
    </body>
    </html>

     运行结果:

    注意:构造函数的方式也可以传递参数。

    3、function

    function创建函数有以下两种方式:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>function类型</title>
        <script>
           window.onload=function(){
               // function 类型 创建函数
               // 函数声明
               function fun(name){
                   return name;
               };
               // 函数表达式
               var fun2=function(name){
                   return name;
               };
           };
        </script>
    </head>
    <body>
        
    </body>
    </html>

    两种方式的区别:

    两种创建函数的执行顺序不同,解析器会先读取函数声明,函数表达式必须要等待解析器执行到相应的代码才会执行。看下面的代码

    1、函数声明的方式创建函数,创建的函数可以在函数声明前或者函数声明后调用:

    函数声明前调用:

    函数声明后调用:

    2、函数表达式只能在其之后调用

    如果在前面调用会直接报错:

     

  • 相关阅读:
    MD支持新标签跳转
    线上问题cpu100处理记录
    OpenShift 4.6方式下OperatorHub的变化
    OpenShift 4.5.7 版本基础镜像下载
    GLPI企业使用(一),连接AD域,LDAP登录。
    GLPI配置文件说明:默认权限组
    企业服务器规划
    港股通转托管
    mui实现下拉刷新以及click事件无法响应问题
    asp.net core+websocket实现实时通信
  • 原文地址:https://www.cnblogs.com/dotnet261010/p/9795052.html
Copyright © 2011-2022 走看看