JavaScript基础(11)_方法、枚举对象中的属性、作用域

news2025/7/7 8:38:13

函数可以成为对象的属性。如果一个函数作为一个对象的属性保存,那么我们称这个函数是这个对象的方法,调用这个函数就是调用对象的方法(method)

比如:console.log()调用console对象的log方法。document.write() 调用document对象的write方法。

注意:方法和函数只是名称上的区别,没有其他区别。

枚举对象中的属性
使用for...in 语句
语法:
for(var 变量 in 对象){
}

for in语句在对象中有几个属性,循环体就会执行几次。每次执行时,会将对象中的一个属性的名字赋值给变量。

for(var n in obj){
console.log("属性名:"+n);
console.log("属性值:"+obj[n]);
}

作用域
作用域指一个变量的作用范围,在js中一共有两种作用域:

1、全局作用域
直接编写在script标签中的js代码,都在全局作用域中。

特点:
1、全局作用域在页面打开时创建,在页面关闭时销毁
2、在全局作用域中有一个全局对象window,它代表的是一个浏览器的窗口,它由浏览器创建,我们所创建的变量都会作为window对象的属性保存,创建的函数都会作为window对象的方法保存。

全局作用域中的变量都是全局变量,在页面任意部分都能访问。

2、局部(函数)作用域
直接编写函数中的js代码,都在局部(函数)作用域中。

特点:
1、调用函数时创建函数作用域,函数执行完毕以后,函数作用域销毁。
2、全局作用域中无法访问到局部作用域中"定义"的变量。
3、在函数作用域中操作一个变量,它会在自身作用域中寻找,如果有就直接使用,如果没有就向上一级作用域中寻找,直到找到全局作用域。如果全局作用域都没找到,则报错referenceError(就近原则)。
4、函数中不使用var声明的变量都会成为全局变量。

变量、函数的声明提前

特点:
1、使用var关键字声明的变量、声明式创建的函数function,解析器会优先读取。
2、匿名式创建的函数(function)必须等到解析器执行到它所在的代码行才会真正被解释执行。

示例:

    <script>
        var a = 20;
        var identity = {
            name: "张三",
            age: 18,
            grade: 8,
        }
        for (var n in identity) {
            console.log("对象属性名为:" + n, "对象属性值为:" + identity[n]);
        }
        console.log(window.a);
        console.log(window.identity.name);

        var b = 18;
        function fun1() {
            // 预编译有变量b,但是没赋值,所以报undefined
            console.log("函数fun1作用域中b的值为:"+b);
            function fun2() {
                console.log("函数fun2作用域中b的值为:" + b);
                // 此时的b未定义,寻找上一级作用域,即外环函数1内的b,更改为14
                b = 14; 
            }
            // 预编译 var b,但是直到此行,b才赋值了16 
            var b = 16;       
            fun2();
            console.log("此时fun1函数作用域内b的值为:" + b);
        }
        fun1();
        console.log("函数执行完,全局变量b的值为:"+b);

        function fun3() {
            console.log("函数fun3作用域内b的值为:" + b);
            // 函数fun3内b未定义,寻找上一级作用域,即全局作用域中的b,等同 window.b,18变成12
            b = 12;
        }
        fun3();
        console.log("全局变量b的值为:" + b);
    </script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/9322.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RabbitMQ详解

RabbitMQ详解 文章目录RabbitMQ详解一、AMQP 和 JMS1.1 JMS1.2 AMQP1.3 两者对比二、RabbitMQ消息模型2.1 基本消息模型2.2 工作消息模型2.3 订阅模型2.3.1 Fanout 订阅模型2.3.2 Direct 订阅模型2.3.3 Topic 订阅模型三、消息持久化3.1 交换机持久化3.2 队列持久化3.3 签收机制…

玩推特营销必知的基础常识上篇

现如今&#xff0c;Twitter已从一个让人们分享其想法的地方变成了一个强大的营销&#xff0c;该可让品牌实时与受众交流。每月活跃用户超过3.21亿&#xff0c;很容易看出为什么公司在所有这些时间之后仍继续使用Twitter。但是&#xff0c;仅仅偶尔发出有关趋势的话题&#xff0…

S标签肽,H2N-KETAAAKFERQHMDS-OH

S Tag Peptide 是一种合成的多肽&#xff0c;由15个氨基酸残基构成。S Tag Peptide is a 15 amino acid peptide derived from RNase A. 编号: 188345中文名称: 多肽标签S-tag 、S标签肽英文名: S-tag peptide单字母: H2N-KETAAAKFERQHMDS-OH三字母: H2N-Lys-Glu-Thr-Ala-Ala-A…

mysql 从入门到放弃— 数据库设计

之前我们已经了解了 mysql 的基本增删改查 mysql 从入门到放弃——基本约束以及语法 现在我们系统的进行一遍数据库的设计&#xff0c;建议收藏 ~~ 直接进入主题 来个例子&#xff1a;下面我们将围绕这个例子来进行数据库的设计 我们就来简单的模拟 大学教务处的选课 系统 …

vue-生成二维码【生成、点击输入框内叉号移除生成的二维码、输入框聚焦】

博主介绍 &#x1f4e2;点击下列内容可跳转对应的界面&#xff0c;查看更多精彩内容&#xff01; &#x1f34e;主页&#xff1a;水香木鱼 &#x1f34d;专栏&#xff1a;后台管理系统 文章目录 简介&#xff1a;这是一篇有关【vue-生成二维码【生成、点击输入框内叉号移除生成…

Cortex-M架构MCU位带操作最详细解析(主要以STM32为例,包括判断哪些MCU可用)

Cortex-M架构MCU位带操作最详细解析&#xff08;主要以STM32为例&#xff0c;包括判断哪些MCU可用&#xff09; 代码实践部分直接跳转&#xff1a; https://blog.csdn.net/weixin_53403301/article/details/125543844 一、位带操作理论及实践 位带操作的概念其实30年前就有了…

FlutterWeb性能优化探索与实践

美团外卖商家端基于 FlutterWeb 的技术探索已久,目前在多个业务中落地了App、PC、H5的多端复用,有效提升了产研的整体效率。在这过程中,性能问题是我们面临的最大挑战,本文结合实际业务场景进行思考,介绍美团外卖商家端在 FlutterWeb 性能优化上所进行的探索和实践,希望对…

【原生Ajax】全面了解xhr的概念与使用。

✍️ 作者简介: 前端新手学习中。 &#x1f482; 作者主页: 作者主页查看更多前端教学 &#x1f393; 专栏分享&#xff1a;css重难点教学 Node.js教学 从头开始学习 ajax学习 文章目录XHR的基本使用  什么是XHR  使用xhr发起GET请求  了解xhr对象的readyState属性  使…

婴儿肠绞痛怎么办?

婴儿肠绞痛的原因婴儿绞痛是婴儿生活中最难解释的现象之一。没有人知道为什么有些婴儿比其他婴儿绞痛更严重&#xff0c;但有很多关于绞痛的理论。其中一个原因可能是一些婴儿的消化系统更不成熟或更敏感。婴儿消化道中用于分解食物的消化酶或消化液很少&#xff0c;尤其是淀粉…

图像锐化一:几个常见的滤波核

文章目录1.滤波核2.代码3. 效果分析示例1.示例2.图像锐化和图像平滑相对应&#xff0c;前者用于增强细节表现&#xff0c;后者一般用于降噪在图像锐化时&#xff0c;往往会 1. 放大 噪声&#xff0c;2. 引入aritfact, 3. 振铃效应 等负面效果 因此需要分析相关锐化方法的效果和…

计算机里一半的部件是什么

解码器 在下图中&#xff0c;“a”和“b”是来自左侧的输入。它们都连接到NOT门。NOT门产生与其输入相反的输入。页面上有四条垂直线&#xff0c;分别来自“a”和“b”以及“a”与“b”的反数&#xff0c;因此&#xff0c;对于每个“a”和“b”&#xff0c;页面上都有两条导线&…

Jira—使用 JMX 接口进行实时监控

使用 JMX 接口进行实时监控 什么是 JMX? JMX(Java Management Extensions) 是一种用于监视和管理 Java 应用程序的技术。JMX 使用称为 MBean(托管 Bean)的对象来公开应用程序中的数据和资源。 对于 Jira Server 或 Jira Data Center 的大型实例,启用 JMX 可以让您更轻松…

知识蒸馏算法汇总

知识蒸馏有两大类&#xff1a;一类是logits蒸馏&#xff0c;另一类是特征蒸馏。logits蒸馏指的是在softmax时使用较高的温度系数&#xff0c;提升负标签的信息&#xff0c;然后使用Student和Teacher在高温softmax下logits的KL散度作为loss。中间特征蒸馏就是强迫Student去学习T…

文件上传漏洞实验-通过截取http请求绕过前端javascript验证进行文件上传

1、什么是文件上传漏洞 文件上传漏洞是指网络攻击者上传了一个可执行的文件到服务器并执行。这里上传的文件可以是木马&#xff0c;病毒&#xff0c;恶意脚本或者WebShell等。这种攻击方式是最为直接和有效的&#xff0c;部分文件上传漏洞的利用技术门槛非常的低&#xff0c;对…

如何使用AI图片清晰度增强器软件增强和锐化图片、提高照片清晰度并去除噪点

通过使用深度学习AI算法对照片进行批量锐化、去噪和去模糊处理&#xff0c;该程序可以应用再大部分照片和图片&#xff0c;包括徽标、卡通和动漫 可能很多朋友都会遇到需要批量增强和锐化照片的情况&#xff1a;例如&#xff0c;如果拍摄过程中曝光不足、夜晚噪点多或者画面模…

基于蚁群算法的TPS问题求解策略研究(Matlab代码实现)

&#x1f352;&#x1f352;&#x1f352;欢迎关注&#x1f308;&#x1f308;&#x1f308; &#x1f4dd;个人主页&#xff1a;我爱Matlab &#x1f44d;点赞➕评论➕收藏 养成习惯&#xff08;一键三连&#xff09;&#x1f33b;&#x1f33b;&#x1f33b; &#x1f34c;希…

Java面试干货:关于数组查找的几个常用实现算法

查找算法在我们的面试和开发中&#xff0c;是很常见的一种算法&#xff0c;今天我就给大家介绍几个常用的查找算法。 一. 线性查找 1.概念 线性查找也叫顺序查找&#xff0c;这是最基本的一种查找方法。该算法是从给定的值中进行搜索&#xff0c;从一端开始逐一检查每个元素…

华为堆叠技术讲解

目录 为什么出现堆叠 什么是堆叠 堆叠的特征 堆叠的优缺点 华为堆叠技术 框式交换机堆叠技术CSS CSS堆叠涉及的相关基础概念 主交换机选举过程 堆叠系统主备倒换 CSS两种堆叠口 CSS堆叠方式 CSS以太网链路聚合 本地优先转发 CSS双主检测 CSS版本升级 CSS堆叠实…

java和vue车辆管理系统车管所系统

简介 车辆管理系统车管所系统&#xff0c;管理员添加车主信息&#xff0c;车主提交自己的车辆信息&#xff0c;管理员审核车辆&#xff0c;对车辆行进年检&#xff0c;统计&#xff0c;记录车辆违规信息。车主可以查看自己的车辆信息、投诉、查看自己的违规记录等。 演示视频…

【附源码】计算机毕业设计JAVA客户台账管理

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis Maven Vue 等等组成&#xff0c;B/…