数据类型、对象、函数

数据类型

  • JavaScript数据类型

    • 值类型(基本类型)
      • 字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol
        • 注:Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值.
    • 引用数据类型
      • 对象(Object)、数组(Array)、函数(Function)
  • JavaScript拥有动态类型:

    • JavaScript 拥有动态类型。这意味着相同的变量可用作不同的类型:
      • var x; // x 为 undefined var x = 5; // 现在 x 为数字 var x = "John"; // 现在 x 为字符串
  • JavaScript字符串:

    • 字符串是存储字符(比如 “Bill Gates”)的变量
    • 字符串可以是引号中的任意文本。您可以使用单引号或双引号
      • var carname="Volvo XC60"; var carname='Volvo XC60';
    • 可以在字符串中使用引号,只要不匹配包围字符串的引号
      • var answer="It's alright"; var answer="He is called 'Johnny'"; var answer='He is called "Johnny"';
  • JavaScript数字:

    • JavaScript 只有一种数字类型。数字可以带小数点,也可以不带:
      • var x1=34.00; //使用小数点来写 var x2=34; //不使用小数点来写
    • 极大或极小的数字可以通过科学(指数)计数法来书写:
      • var y=123e5; // 12300000 var z=123e-5; // 0.00123
  • JavaScript布尔:

    • 布尔(逻辑)只能有两个值:true 或 false。

      var x=true; var y=false;

  • JavaScript数组

    • cars 的数组 : var cars=new Array(); cars[0]="Saab"; cars[1]="Volvo"; cars[2]="BMW";
    • (condensed array): var cars=new Array("Saab","Volvo","BMW");
    • (literal array): var cars=["Saab","Volvo","BMW"];
    • 注意 数组下标是基于零的,所以第一个项目是 [0],第二个是 [1]

对象

  • JavaScript对象:

    • 对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔:

      • var person={firstname:"John", lastname:"Doe", id:5566};

      • 空格和折行无关紧要。声明可横跨多行:

        var person={ firstname : "John", lastname : "Doe", id : 5566 };

    • 对象属性有两种寻址方式:

      • name=person.lastname; name=person["lastname"];
  • Undefined和Null

    • Undefined 这个值表示变量不含有值。
    • 可以通过将变量的值设置为 null 来清空变量
  • 声明变量类型

    • 声明新变量时,可以使用关键词 “new” 来声明其类型:

      var carname=new String; var x= new Number; var y= new Boolean; var cars= new Array; var person= new Object;

    • 注意: JavaScript 变量均为对象。当您声明一个变量时,就创建了一个新的对象。

  • 数组补充笔记

    • 数组有四种方式:

      var arr1 = new Array('a', 'b', 'c');    //这是一个预定义的数组,在创建时初始化
      var arr2 = ['a', 'b', 'c' ];       //同样是在创建时初始化,但是这种创建更为简洁直观
      var arr3 = new Array( );   var arr4 = [ ];     //这两种是创建空的数组
      
    • 对象的创建,一般推荐使用

      var people = {name : 'Tom', age : 21 , eat : function(){  }    }
      
    • 也可先创建对象再追加属性和方法

      var people = new Object();
      people.name = 'Tom';   
      people.age = 21;  
      people.eat = function(){  }
      
  • 最常用的对象创建方式:

    • 第一种:

      function Demo(){
          var obj=new Object();
          obj.name="张思";
          obj.age=12;
          obj.firstF=function(){
          }
          obj.secondF=function(){
          }
          return obj;
      }
      
      var one=Demo();
      // 调用输出
      document.write(one.age);
      
    • 第二种:

      function Demo(){
          this.name="张思";
          this.age=12;
          this.firstF=function(){
          }
          this.secondF=function(){
          }
      }
      
      var one=new Demo
      
      // 调用输出
      document.write(one.age);
      
  • 判断对象是不是数组

    • 1、使用 isArray 方法

      var cars=new Array();
      cars[0]="Saab";
      cars[1]="Volvo";
      cars[2]="BMW";
      // 判断是否支持该方法
      if (Array.isArray) {
          if(Array.isArray(cars)) {
              document.write("该对象是一个数组。") ;
          }
      }
      
    • 2、使用 instanceof 操作符

      var cars=new Array();
      cars[0]="Saab";
      cars[1]="Volvo";
      cars[2]="BMW";
      
      if (cars instanceof Array) {
          document.write("该对象是一个数组。") ;
      }
      
    • 就算变量定义的是数组格式,typeof 返回的数据类型还是 object :

      var cars=new Array();
      cars[0]="Saab";
      cars[1]="Volvo";
      cars[2]="BMW";
      document.write(typeof cars); // object
      
  • 注意 undefined 和 null 都是小写,并且。

    var x,y;
    if(x == null){
        document.write(x);
    }
    if(y == undefined){
        document.write(y);
    }
    

函数

  • 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块

  • JavaScript函数语法

    • 函数就是包裹在花括号中的代码块,前面使用了关键词 function
    • 可以在某事件发生时直接调用函数(比如当用户点击按钮时),并且可由 JavaScript 在任何位置进行调用
    • 注意: JavaScript 对大小写敏感。关键词 function 必须是小写的,并且必须以与函数名称相同的大小写来调用函数
  • 调用带参数的函数

    • 您可以发送任意多的参数,由逗号 (,) 分隔

    • <p>点击这个按钮,来调用带参数的函数。</p>

      <button "myFunction('Harry Potter','Wizard')">点击这里</button>

      <script> function myFunction(name,job){ alert("Welcome " + name + ", the " + job); } </script>

  • 带有返回值的函数

    • 使用 return 语句时,函数会停止执行,并返回指定的值

      • function myFunction() { var x=5; return x; }

      • function myFunction(a,b)
        { return a*b;
        }

        document.getElementById("demo").innerHTML=myFunction(4,3);

    • 仅仅希望退出函数时 ,也可使用 return 语句。返回值是可选的:

      • function myFunction(a,b) { if (a>b) { return; } x=a+b }
  • 局部JavaScript变量

    • 在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它。(该变量的作用域是局部的)
    • 只要函数运行完毕,本地变量就会被删除
  • 全局JavaScript变量

    • 在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它
  • JavaScript变量的生存期

    • JavaScript 变量的生命期从它们被声明的时间开始。

      局部变量会在函数运行以后被删除。

      全局变量会在页面关闭后被删除

  • 向未声明的JavaScript变量分配值

    • 如果您把值赋给尚未声明的变量,该变量将被自动作为 window 的一个属性。

    • carname="Volvo"; 将声明 window 的一个属性 carname。

    • 非严格模式下给未声明变量赋值创建的全局变量,是全局对象的可配置属性,可以删除。

      • var var1 = 1; // 不可配置全局属性
        var2 = 2; // 没有使用 var 声明,可配置全局属性
        
        console.log(this.var1); // 1
        console.log(window.var1); // 1
        
        delete var1; // false 无法删除
        console.log(var1); //1
        
        delete var2; 
        console.log(delete var2); // true
        console.log(var2); // 已经删除 报错变量未定义
        

笔记

  • 作为参数的的变量称为形参,带入的参数称为实参

    • function myFunction(a,b){ return a*b;} // 形参 document.getElementById("demo").innerHTML=myFunction(4,3); // 实参
  • 使用 return 语句时,函数会停止执行,并返回指定的值。

    	sayHi();
    	function sayHi(name,message){
        document.write("return 语句执行前。");
        return;
        alert("hello" + name +"," + message);//这一行永远不会被调用
    	}
    

猜你喜欢

转载自blog.csdn.net/Aqours/article/details/89468243