• JavaScript对象和函数——JavaScript筑基


    JavaScript对象拥有属性和方法的数据。


    生活中的对象、属性和方法

    生活中,一辆汽车就是一个对象。
    对象拥有属性,例如重量、颜色、尺寸等等。方法则有启动、加速、减速等等。
    在这里插入图片描述

    所有汽车拥有这些属性、虽然具体属性不同。
    所有汽车都拥有这些方法,方法具体实现、执行方式不一样。


    JavaScript对象

    在JavaScript中,几乎所有事物都是对象

    在 JavaScript 中,对象是非常重要的,当你理解了对象,就可以了解 JavaScript 。

    下面的代码给变量car,设置初始值:

    var car = "Fiat";
    
    • 1

    对象是一个变量,对象可以包含多个数值,多个变量,每一个数值以name:value形式存在。

    var car = {name:"Fiat", model:500, color:"white"}; 
    
    • 1

    通过上述代码,3个数值被赋予给了car变量。

    JavaScript 对象是变量的容器。


    对象的定义

    可以利用字符定义创建JavaScript对象:

    var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
    
    • 1

    定义JavaScript对象可以跨越多行,空格跟换行都不是必须的:

    var person = {
        firstName:"John",
        lastName:"Doe",
        age:50,
        eyeColor:"blue"
    }; 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    对象属性

    可以说JavaScript对象是变量的容器。但一般意义上都认为JavaScript对象是键值对的容器

    键值对通常写法name:value,键值对之间利用冒号分隔。

    键值对在JavaScript对象称之为对象的属性。

    JavaScript 对象是属性变量的容器。

    对象的键值对写法类似:

    • PHP的关联数组:$scoreArray 是变量的名称、[‘KeyName’] 是元素的索引键。
    
      $scoreArray = array(
        'Chandler' => 50, 
        'Monica' => 80, 
        'Ross' => 95
      ); 
    ?>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • Python 中的字典:
    users = ['user1','user2']
    passwds = ['123','456']
    print(zip(users,passwds))
    print(list(zip(users,passwds)))
    print(dict(zip(users,passwds)))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • Java的哈希映射

    访问对象的属性

    可以通过两种方式访问对象属性:

    person.lastName;
    
    • 1
    person["lastName"]; 
    
    • 1

    对象的方法

    对象的方法定义了一个函数,并且作为对象的属性存储。

    对象方法都是通过添加()调用作为一个函数。

    name = person.fullName();
    
    • 1

    如果你要访问 person 对象的 fullName 属性,它将作为一个定义函数的字符串返回:

    name = person.fullName;
    
    • 1

    JavaScript 对象是属性和方法的容器。


    JavaScript函数语法

    调用这个函数,执行相应的函数内代码。

    function name() {
    }
    
    • 1
    • 2

    JavaScript 对大小写敏感。关键词 function 必须是小写的,并且必须以与函数名称相同的大小写来调用函数。

    ***在这里插入代码片

    调用带参数的函数

    调用带参数的函数,可以向其传递数值,称之为参数。
    这些参数可以用在函数中;

    myFunction(argument1,argument2)
    
    • 1

    变量和参数必须一致顺序出现,第一个变量就是

    
    <p>点击这个按钮,来调用带参数的函数。</p>
    <button onclick="myFunction('Harry Potter','Wizard')">点击这里</button>
    <script>
    function myFunction(name,job){
        alert("Welcome " + name + ", the " + job);
    }
    </script>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    上面的函数在按钮被点击时会提示 “Welcome Harry Potter, the Wizard”。

    函数很灵活,您可以使用不同的参数来调用该函数,这样就会给出不同的消息:

    <!DOCTYPE html>
    <html>
    <head> 
    <meta charset="utf-8"> 
    <title>test</title> 
    </head>
    <body>
    <p>请点击其中的一个按钮,来调用带参数的函数。</p>
    <button onclick="myFunction('Harry Potter','Wizard')">点击这里</button>
    <button onclick="myFunction('Bob','Builder')">点击这里</button>
    <script>
    function myFunction(name,job)
    {
    	alert("Welcome " + name + ", the " + job);
    }
    </script>
    </body>
    </html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    局部JavaScript变量

    在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它。(该变量的作用域是局部的)。

    您可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数才能识别出该变量。

    只要函数运行完毕,本地变量就会被删除。


    JavaScript变量的生存期

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

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

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

    var var1 = 1; // 不可配置全局属性
    var2 = 2; // 没有使用 var 声明,可配置全局属性
    
    console.log(this.var1); // 1
    console.log(window.var1); // 1
    console.log(window.var2); // 2
    
    delete var1; // false 无法删除
    console.log(var1); //1
    
    delete var2; 
    console.log(delete var2); // true
    console.log(var2); // 已经删除 报错变量未定义
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
  • 相关阅读:
    Python 基础(二):搭建 Python 开发环境
    系统调用理论详解,Linux操作系统原理与应用
    Android项目升级到AndroidX
    栈的实现(c语言)
    java设计模式【单例模式】
    喜马拉雅后端一面
    AAAI 22: Orthogonal Graph Neural Networks
    04 Python MyQR 两行代码生成专属二维码自定义内容
    【DRAM存储器四】DRAM存储器的架构演进-part1
    无线射频芯片CC2540F256RHAR 中文资料介绍
  • 原文地址:https://blog.csdn.net/qq_42544728/article/details/126661081