JavaScript数据类型;属性,对象,方法;var,let,const,局部变量,全局变量

JavaScript数据类型:

值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、Symbol。

引用数据类型(对象类型):对象(Object)、数组(Array)、函数(Function),还有两个特殊的对象:正则(RegExp)和日期(Date)。

注:Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。


属性,对象和方法:

JavaScript是一种脚本语言,用于在网页上实现交互和动态效果。在JavaScript中,有三个主要的概念:属性,对象和方法。

1.属性(Property)是对象的特征,它保存了对象的状态和值。属性可以是基本数据类型(如字符串、数字、布尔值)或引用类型(如对象、数组、函数)。对象的属性可以通过点表示法(object.property)或括号表示法(object["property"])来访问。

例如:

var person = {name: "John",age: 30,gender: "male"
};console.log(person.name); // 输出 "John"
console.log(person["age"]); // 输出 30

2.对象(Object)是一种复合数据类型,它是属性的集合。在JavaScript中,几乎所有的东西都是对象,包括数组、函数和日期等。对象可以通过字面量({})或构造函数(new Object())来创建。

例如:

var person = {name: "John",age: 30,gender: "male"
};

3.方法(Method)是对象中的函数。方法是与对象相关联的函数,可以被调用来执行特定的操作。方法可以通过点表示法或括号表示法来调用。

例如:

var person = {name: "John",age: 30,gender: "male",sayHello: function() {console.log("Hello, my name is " + this.name);}
};person.sayHello(); // 输出 "Hello, my name is John"

在JavaScript中,对象中的方法可以访问对象的属性,并使用关键字this引用当前对象。方法可以用于修改对象的属性值、执行计算和与其他对象进行交互。


函数:

JavaScript函数是一段可重复使用的代码块,用于执行特定的任务或计算。函数使得我们可以将一段代码封装起来,通过给函数传递参数,执行代码并返回结果。

在JavaScript中,函数可以通过函数声明或函数表达式来创建。

  1. 函数声明(Function Declaration):
function functionName(parameters) {// 执行代码return result;
}

例如:

function addNumbers(a, b) {return a + b;
}console.log(addNumbers(5, 10)); // 输出 15

  1. 函数表达式(Function Expression):
var functionName = function(parameters) {// 执行代码return result;
};

例如:

var multiplyNumbers = function(a, b) {return a * b;
}console.log(multiplyNumbers(3, 4)); // 输出 12

函数可以接受任意数量的参数,可以执行一系列操作,并且可以返回一个值。函数也可以没有参数或返回值。

在函数中,我们可以使用局部变量,这些变量只在函数内部可见。我们还可以通过参数在函数内部接收外部传入的值。

JavaScript函数也可以作为参数传递给其他函数,或者作为对象的属性(方法)使用。

函数在JavaScript中是一等公民,这意味着它们可以被赋值给变量,存储在数组和对象中,以及作为返回值或参数传递给其他函数。


局部变量和全局变量:

在JavaScript中,var、let和const是用来声明变量的关键字。

  1. var:在ES5之前,使用var关键字声明变量是常见的方式。它具有函数作用域的特性,意味着变量在声明它的函数内部可见,并且在整个函数体中都可以访问到。
function example() {var x = 10;if (true) {var y = 20; // 在函数体内部可见console.log(x); // 10}console.log(y); // 20
}
example();
console.log(x); // 抛出 ReferenceError

在上述示例中,变量x在函数example内部声明,因此在整个函数体内可见。变量y在if语句块中声明,但由于var是函数作用域,所以if语句块内外都可以访问到。但在函数外部是无法访问x的。

  1. let:在ES6中引入了let关键字。与var不同,let声明的变量具有块级作用域的特性,意味着变量在声明它的块(花括号)内部可见,并且在该块的外部是不可访问的。
function example() {let x = 10;if (true) {let y = 20; // 在 if 块内部可见console.log(x); // 10}console.log(y); // 抛出 ReferenceError
}
example();
console.log(x); // 抛出 ReferenceError

在上述示例中,变量x和y都是用let关键字声明的。变量x在整个函数体中可见,而变量y仅在if块内部可见。在块的外部,无法访问变量y。

  1. const:const也是ES6中引入的关键字,用于声明常量。与let不同,const声明的变量是一个常量,一旦赋值后就不能再修改。
function example() {const x = 10;x = 20; // 抛出TypeErrorconsole.log(x);
}
example();

在上述示例中,变量x被声明为常量后,尝试修改其值将会导致TypeError错误。

全局变量和局部变量是基于作用域的概念。

  • 全局变量:在函数外部声明的变量是全局变量,它可以在整个代码中被访问到。
var globalVariable = 10;function example() {console.log(globalVariable);
}
example(); // 输出 10

在上述示例中,变量globalVariable是在函数外部声明的,因此它是一个全局变量,可以在函数内部访问到。

  • 局部变量:在函数内部声明的变量是局部变量,它只能在声明该变量的函数内部使用。
function example() {var localVariable = 20;console.log(localVariable);
}
example(); // 输出 20
console.log(localVariable); // 抛出 ReferenceError

在上述示例中,变量localVariable是在函数内部声明的,只能在函数内部使用。在函数外部访问局部变量将导致ReferenceError错误。

注:

局部变量:在函数中通过var声明的变量。

全局变量:在函数外通过var声明的变量。

没有声明就使用的变量,默认为全局变量,不论这个变量在哪被使用。

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

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

相关文章

PG主从切换

文章目录 一、 不再需要配置recovery.conf文件二、 备库执行基础备份时新的命令行选项-R三、 如何生成standby.signal文件四、初次主备切换流程1、主库停止2、备库提升为新主库,对外提供服务3、新主库修改pg_hba.conf文件4、原主库新建$PGDATA/standby.signal文件5、…

嵌入式进阶——HID协议

🎬 秋野酱:《个人主页》 🔥 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 USB烧录USB HID协议USB协议组成通讯流程 官方USB HID范例文件说明修改PC端的显示 兼容库函数HID键盘USB调试工具USB 描述符设备描述…

mysql登录报错 Client does not support authentication protocol requested by server

mysql登录报错 Client does not support authentication protocol requested by server 在使用 MySQL 数据库时,你可能会遇到以下错误消息: ERROR 1251 (08004): Client does not support authentication protocol requested by server; consider upgr…

【数据结构与算法 | 栈 + 队列篇】力扣232, 225

1. 力扣232 : 用栈实现队列 (1). 题 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移…

suse xen内核安装启动失败问题

Error 15 /boot/xen.gz not found Filesystem type is ext2fs, partition type 0x83 Error 15 原因: 除了安装以下三个安装包 -rw-r--r-- 1 root root 23362981 Jun 14 2013 kernel-xen-3.0.76-0.11.1.x86_64.rpm -rw-r--r-- 1 root root 14158930 Jun 14 20…

Anaconda -> Anaconda支持什么编程语言的环境配置

Anaconda是一个数据科学和机器学习的开发环境,它支持多种编程语言的环境配置,包括: Python:Anaconda默认安装了Python和必需的Python库,可以方便地进行Python编程和数据分析。 R:Anaconda也可以配置R语言环…

MFC工控项目实例之一主菜单制作

1、本项目用在WIN10下安装的vc6.0兼容版实现。创建项目名为SEAL_PRESSURE的MFC对话框。在项目res文件下添加相关256色ico格式图片。 2、项目名称:密封压力试验机 主菜单名称: 系统参数 SYS_DATA 系统测试 SYS_TEST 选择型号 TYP_CHOICE 开始试验 TES_STA…

【参会通知】第四届电子、信息与计算技术前沿国际会议

尊敬的学者/专家: 您好! 我们诚挚地邀请您参与2024年电子、信息与计算技术前沿国际会议(ICFEICT 2024)。会议将于2024年6月22日-6月25日在北京召开。ICFEICT 2024旨在为来自国内外高等院校、科研院所、企事业单位的专家、教授、…

SAP_SD模块 物料科目分配/成本简介

SAP系统各模块与财务都有个方面的集成。文本主要说明销售模块中的科目分配和成本的一个对应关系。 1、首先是在物料主数据上销售视图中的物料科目分配组,S1主营、S2材料等字段,物料销售的时候会将这个物料产生的记录到对应的科目中。 首先是物料主数据中…

pip更新网络问题:Exception: Traceback (most recent call last): File

报错:rootdebian01:~# pip3.9 install --upgrade pip Collecting pip Downloading pip-24.0-py3-none-any.whl (2.1 MB) |██████████████████▉ | 1.2 MB 5.5 kB/s eta 0:02:39ERROR: Exception: Traceback (most recent call last): File “/usr…

利用cython将.py文件编译为.pyd文件

文章目录 1. 引言2. py文件编译为pyd文件步骤2.1 环境准备2.2 准备setup.py文件2.3 进行编译 3. 测试代码 1. 引言 在实际的Python开发中,为了防止Python脚本源码暴露,常常需要对python源码文件进行加密保护,Python的原始文件格式为.py&…

在outlook的邮件中插入HTML;HTML模板获取;页面组态手动生成HTML

本文介绍如何在outlook发送邮件时,在邮件中插入HTML,此HTML可以从获取模板自行进行修改。 文章目录 一、下载HTML模板(或自己制作好HTML文件)二、outlook新增宏三、新建邮件,插入HTML四、通过图像化页面组态手动生成HT…

做场外个股期权怎么询价

做场外个股期权怎么询价?没有具体的哪家做市商是询价是最低的,个人投资者需要通过机构通道方询价进行对比,各券商的报价由询价机构方提供给到投资者,可以参考不同券商的报价进行比对,再决定是否进行投资。本文来自&…

操作系统复习-操作系统概述

操作系统概述 操作系统的基本功能 操作系统统一管理着计算机资源: 处理器资源IO设备资源存储器资源文件资源 操作系统实现了对计算机资源的抽象: 用户无需向硬件接口编程IO设备管理软件,提供读写接口文件管理软件,提供操作文…

关于验证码的那些漏洞

一、短信轰炸 这类漏洞存在的原因是没有对短信验证码的发送时间、用户及其IP作一些限制。 案例1、正常的短信轰炸 burp一直发包即可 案例2、并发绕过 做了限制咋办?可以试试并发(万物皆可并发) 使用turbo intruder插件进行并发。 并发次数越大是不是轰炸就越多。 …

宝塔安装java环境Jdk1.8

1.打开宝塔——选择“终端”——输入SSH的服务器IP和SSH账号,选择密码验证,输入密码 2。登录成功后,输入:yum list java-1.8*,用于列出所有与 “java-1.8” 相关的软件包 yum list java-1.8* 3.安装Jdk1.8: yum insta…

[leetcode hot150]第二百三十六题,二叉树的最近公共祖先

题目: 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个…

【C++】前缀和:一维前缀和

1.题目 2.算法思路 如果暴力求解的话,时间复杂度为O(n*q)。一定会超时。 优化的思路也很简单,就是得到一个求和数组arr,使arr[i]a1a2...ai。 然后每次求l到r之间的数时,直接arr[r]-arr[l-1]就可以得出! 这样&#…

在宝塔centos7中使用pyenv,配置虚拟环境

安装pyenv 首先确认你当前python版本 确保 yum 使用 Python 2 alternatives --set python /usr/bin/python2这个命令将系统默认的Python版本设置为Python 2 安装python3,venv sudo dnf install python3-venv如果没有dnf: yum install python3手动安装必要的软件包 curl …

从GPT-3.5到GPT-4O:探索AI的进化之旅,哪一版更懂你?

如何评价GPT-4o? 最新的GPT-4O,被誉为GPT-4的增强版。它在保持前代产品优秀性能的基础上,大幅降低了使用成本,使得更多的普通用户也能享受到顶尖AI的服务。GPT-4O在非英语语言处理上的强化,更是让其在全球范围内的适用性大大提高…