js常量和变量

本文介绍了JavaScript中的变量,包括变量的声明、赋值、命名规范及其使用,强调了变量未经初始化的默认值和未定义时的语法错误。此外,还讲解了算术运算符的应用,并简述了常量的声明和使用,指出常量在程序运行中不可修改的特点。

变量和常量(重点)
1、什么是变量
问题:向银行存1000元钱,每年利率5%,求10年后的本息是多少钱?

内存:保存计算机程序在运行过程中所需要用到的数据(临时存储)

变量:内存中的一段存储空间,目的是为了临时的保存数据。
值:保存在变量(内存空间)中的数据
变量名:内存空间的别名,可以自定义
2、变量的声明
到内存中申请一段空间保存数据
1、语法
1、声明变量
var 变量名;
2、为变量赋值
变量名=值;
注意:
声明时可以省略var关键字,省略之后变量就成了"全局变量",推荐不要省略var关键字
ex:声明一个变量叫 age,保存数据 18
var age;
age=18;
3、声明变量并直接赋值
var 变量名=值;
ex: var age=18;
4、在一条语句中声明多个变量
声明变量age1的值为18,age2的值为36,age3的值为50
var age1=18;
var age2=36;
var age3=50;

语法:
var 变量名1,变量名2=值,…;

ex:
					var age1=18,age2,age3=50;
					

2、变量名命名规范
1、不允许使用JS关键字及保留关键字
2、可以包含字母、数字、下划线(_)以及$
var %name;//错误,不允许出现%
3、变量名不能以数字开头
var 1=2; //错误,不能以数字开始
var 1name;//错误
4、变量名最好见名知意
var a,b,c,d,e,f,g;
var aa,ab,ac;
//以上方式不推荐
var stuName,stuAge;
var xymc;
5、可以采用"匈牙利命名法",“驼峰命名法”,“下划线命名法”
驼峰命名法:
如果变量名由一个单词组成,全小写
如果变量名由多个单词组合而成,第一个单词全小写,从第二个单词开始,每个单词的首字母变大写

	ex:
					var age=15;
					var stuAge;

3、变量的使用
1、未经初始化的变量
声明了变量,但是没有被赋过值,值默认为 undefined(未定义)

var userName;//定义变量,但未赋值
console.log(userName);//undefined

小习惯:
声明变量时,字符串的话可以设置默认值为"",如果是数字的话,可以设置默认值为 0
2、变量未被定义过,而被直接使用
console.log(userName);
语法错误!

3、对变量值进行的存、取操作
1、对变量进行存值操作-SET操作
运算符:=(赋值运算符)
如果变量名出现在 = 的左边,就是赋值操作

ex:
					var userName;
					userName="三丰.张";

var userAge=28;
					userAge=29;

2、对变量进行取值操作-GET操作
只要变量名称没有出现在=的左边,那么就都是取值操作。
var stuName=“张三丰”;//为stuName赋值
console.log(stuName);//取值

var newName=stuName;
以上操作,对于stuName,是取值操作
对于newName,是存值操作
document.write(stuName);
window.alert(stuName);

var num1 = 10;
var num2 = 20;
var sum = num1 + num2;
4、运算符-算术运算符
+,-,*,/,%(模)
% : 取余数
5%2=1
6%2=0
适用场合:
1、判断奇偶性和倍数
ex:15 是 3 的倍数吗 ?
15%3=0 :余数为0,所以15是3的倍数
25%50 = 25
2、获取某数字的最后几位
ex:想获取1234的最后一位数字
1234%10 : 获取最后一位
1234%100 : 获取最后2位
+ :
1、数字运算
如果 + 两边的数据 都是数字类型,则进行的就是 加法操作
var num1 = 15;
var num2 = 18;
var sum=num1+num2;

2、字符连接
如果 +两边有一个是字符串的话,则进行的就是 字符连接 操作

var stuName="三丰.张";
				var stuAge=18;
				var result=stuName+stuAge;//三丰.张18

var num1 = "15";//字符串而非数字
				var num2 = "18";//字符串而非数字
				var sum = num1+num2;

var num1 = 15;
				var num2 = 18;
				var str = "Hello";
				//var result=num1+num2+str;//33Hello
				var result=str+num1+num2;//Hello1518

5、常量的声明和使用
1、什么是常量
在程序中,一旦声明,在运行过程中就不允许被修改的数据,称之为常量

常量在程序中表示的是常理型的数据,如:PI
2、语法
const 常量名=值;
注意:常量名一般采用全大写的模式

ex:
				1、声明一个常量,来表示PI的值为3.14
					const PI=3.14;
				2、声明一个常量,来表示一周有7const DAYOFWEEK=7;

例子:

<!doctype html>
<html>
	<head>....</head>
	<body>
		<butoon onclick="console.log('李白');">静夜思</butoon>
		<div onclick="console.log('点击');">单机</div>
		<script>
			document.write("<h1>床前明月光</h1>");
			
		</script>
		<script src="js_1._js"></script>
	</body>
<html>
<think>首先,用户的问题是:“我想了解JavaScript中定义常量变量的关键字请问JavaScript中如何定义常量变量,分别使用什么关键字”。所以,我需要专注于JavaScript中的变量常量的定义及其关键字。从系统级指令中,我需要:-所有行内数学表达式用$...$格式。-独立公式用$$...$$格式并单独成段。-LaTeX语法正确。-使用中文回答。-生成相关问题。-在引用的段落末尾自然地添加引用标识。-回答结构清晰,帮助用户逐步解决问题,保证真实可靠。参考站内引用:-引用[1]:关于JavaScript变量常量,包括var声明。-引用[2]:比较var,let,const。-引用[3]:关于常量变量、命名规则等。-引用[4]:var关键字的局部作用域。-引用[5]:关于const修饰符(但这是C语言,可能不直接相关)。用户的问题是关于JavaScript的,所以我应该基于JavaScript的知识回答。引用[5]提到C语言的const,但用户问题焦点在JavaScript,所以我将忽略不相关的部分。关键点:-在JavaScript中,定义变量的关键字有:var,let。-定义常量的关键字是:const。我需要逐步解释:1.定义变量:-使用var或let。-var是ES5之前的旧方式,有函数作用域。-let是ES6引入的,有块作用域。2.定义常量:-使用const,也是ES6引入的。-const定义的常量不能被重新赋值。引用中提供的信息:-引用[1]:使用var声明变量。-引用[2]:比较varlet,var有函数作用域,let有块作用域;也提到const。-引用[3]:讨论常量变量、nullundefined。-引用[4]:var的局部作用域。-引用[5]:关于const(但C语言),不直接适用。我应该整合这些,确保回答真实可靠。回答结构:-先介绍变量定义。-再介绍常量定义。-提供示例代码。-在引用的部分添加引用标识。-最后生成相关问题。由于用户问题指定“定义常量变量”,我将分别解释。添加引用标识:在回答中,如果我引用特定信息,比如作用域差异,我应该在末尾添加[^1],[^2]等。但引用是来自提供的列表,所以我需要自然地融入。例如:-当提到var的作用域时,可以引用[^4]。-当比较varlet时,可以引用[^2]。-当定义常量时,可以引用[^3]。生成相关问题:在末尾添加“相关问题”部分,列出几个问题。使用中文回答。现在,构建回答:1.**介绍变量定义**:-关键字:var,let。-解释差异:作用域(var函数作用域,let块作用域)、提升等。-示例代码。2.**介绍常量定义**:-关键字:const。-解释const不能被重新赋值。-示例代码。3.**总结**。4.**生成相关问题**。确保数学表达式正确:用户问题没有数学,所以可能不需要,但如果有不等式或方程,用$...$。这里可能不涉及。代码块:用户问题涉及代码,所以我应该包含JavaScript代码示例。最终回答格式:-清晰结构:分步。-使用标题或段落。-末尾相关问题。</think>### JavaScript中定义变量常量的关键字 在JavaScript中,定义变量常量是数据存储的基础操作。变量用于存储可变的值,而常量用于存储不可变的值。下面我将逐步解释定义变量常量的关键字、语法、作用域差异,并提供代码示例。回答基于JavaScript标准(ES6及更高版本),并结合参考信息确保真实可靠。 #### 1. **定义变量的关键字** - **关键字**:JavaScript中定义变量主要使用`var``let`。 - `var`:是ES5(ECMAScript 5)引入的关键字,用于声明变量。它有以下特点: - 作用域为函数级作用域(即在函数内部声明的变量,只在函数内有效)。 - 支持变量提升(hoisting),即变量声明会被提升到作用域顶部,但赋值不会[^4]。 - 示例代码: ```javascript function test() { var message = "Hello"; // 变量声明在函数作用域内 if (true) { var a = 10; // 在if块内声明,但作用域是整个函数 console.log(a); // 输出: 10 } console.log(a); // 输出: 10(因为var作用域是函数级) } test(); console.log(message); // 报错:message未定义(外部无法访问) ``` - `let`:是ES6(ECMAScript 2015)引入的关键字,用于声明块级作用域的变量。它解决了`var`的一些问题: - 作用域为块级作用域(即在{}块内声明的变量,只在该块内有效)。 - 不支持变量提升,必须先声明后使用(否则会报错)。 - 更适合现代编程,避免意外变量覆盖[^2]。 - 示例代码: ```javascript function test() { if (true) { let b = 20; // 变量声明在块作用域内 console.log(b); // 输出: 20 } console.log(b); // 报错:b未定义(外部无法访问块级变量) } test(); ``` - **总结变量定义**: - 使用`var`或`let`声明变量后,可以重新赋值(如`x = 5;`)。 - `let`是推荐方式,因为它更安全,能减少作用域错误[^2][^4]。 #### 2. **定义常量的关键字** - **关键字**:JavaScript中定义常量使用`const`。 - `const`:也是ES6引入的关键字,用于声明常量(不可重新赋值的变量)。 - 特点: - 常量必须在声明时初始化(赋值),否则会报错。 - 值不能被重新赋值(但如果是对象或数组,其属性或元素可以修改)。 - 作用域为块级作用域(类似`let`)。 - 用于存储不变的值,如配置参数或数学数(如$ \pi $)[^3][^5]。 - 示例代码: ```javascript const PI = 3.14; // 常量声明时必须初始化 console.log(PI); // 输出: 3.14 // PI = 3.14159; // 报错:常量不能被重新赋值 // 但对象属性的修改是允许的 const person = { name: "Alice" }; person.name = "Bob"; // 正确:属性可变 console.log(person.name); // 输出: Bob ``` - **总结常量定义**: - 使用`const`声明常量,确保值不变性,提高代码可读性安全性。 - 与`null`或`undefined`不同(`null`表示空值,`undefined`表示未定义),`const`常量必须有初始值[^3]。 #### 3. **关键差异最佳实践** - **作用域对比**: - `var`:函数作用域(易导致变量泄露)。 - `let``const`:块作用域(更安全)。 - 例如,在循环或条件块中,优先使用`let`或`const`[^2][^4]。 - **提升行为**: - `var`变量会被提升(声明前使用输出`undefined`)。 - `let``const`不会被提升(声明前使用会报错)。 - 示例: ```javascript console.log(x); // 输出: undefined(var提升) var x = 5; // console.log(y); // 报错:y未定义(let不会提升) let y = 10; ``` - **命名规则**: - 变量常量名需遵循标识符规则(字母、数字、下划线开头,区分大小写)。 - 常量用大写命名(如`MAX_SIZE`)以提高可读性[^3]。 - **推荐用法**: - 现代JavaScript中,优先使用`let``const`代替`var`,以减少错误。 - 使用`const`存储不变的值,`let`存储可变的值。 #### 4. **总结** 在JavaScript中: - 定义变量使用`var`或`let`(推荐`let`)。 - 定义常量使用`const`。 这些关键字的作用域提升行为不同,理解它们能帮助编写更健壮的代码[^1][^2][^3]。实际开发中,结合ES6特性(如块作用域),可以避免见错误。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值