ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] * * * * * # 变量 ### 什么是变量 什么是变量? 从字面上看,变量是可变的量;从编程角度讲,变量是用于存储某种/某些数值的容器。我们可以把变量看做一个盒子,为了区分盒子,可以用BOX1,BOX2等名称代表不同盒子,BOX1就是盒子的名字(也就是变量的名字)。 ![](https://box.kancloud.cn/cd0fddab15664be9bc62034f600e43da_217x120.png) 定义变量使用关键字var,语法如下: ![](https://box.kancloud.cn/8cdf81cc23b717579c67577e1c8f0229_297x142.png) var就是一个关键字,所谓关键字,就是有特殊功能的小词语。 关键字后面一定要有空格隔开。 等号表示赋值,会将等号右边的值,赋给左边的变量。 ### 变量的命名规范 变量名可以任意取名,但要遵循命名规则: 只能由英语字母、数字、下划线、美元符号$构成,且不能以数字开头,并且不能是JavaScript保留字。 变量的命名规则! 1.变量命名JavaScript 变量名称不能以数字 (0-9) 开头,必须以字母或是下标符号”_”或者”$”为开头。 2.变量名长度不能超过255个字符。 3.变量名中不允许使用空格。 4.不用使用脚本语言中保留的关键字及保留符号作为变量名。比如 break 或 boolean,这些命名变量是无效的。 5.变量名区分大小写。(javascript是区分大小写的语言)比如,Name 和 name 是两个不同的变量。 **不能使用关键字定义变量** ![](https://box.kancloud.cn/48b1d545de3716f385ec7550fce125f1_527x170.png) **不推荐使用保留字定义变量** ![](https://box.kancloud.cn/0a34a1d83cd5aa34d209e8d5659a2795_581x173.png) 下列都是非常正确的变量命名: ~~~ var haha = 250; var xixi = 300; var a1 = 400; var a2 = 400; var abc_123 = 400; var $abc = 999; var $o0_0o$ = 888; var $ = 1000; var _ = 2000; var ________ = 3000; ~~~ 下列都是错误的命名: ~~~ var a-1 = 1000; //不能有怪异符号 var a@ = 2000; //不能有怪异符号 var 2year = 3000; //不能以数字开头 var a¥ = 4000; //不能有怪异符号 var a*#$#$@ = 5000; //不能有怪异符号 var a b =300; //不能有空格 ~~~ ### 变量的定义和赋值 变量用var来定义。只有定义之后,这个变量才能够使用。 比如,我们不设置变量,直接输出: ~~~ <script type="text/javascript"> console.log(a); </script> ~~~ ![](https://box.kancloud.cn/2798c8a57d662fa97309ba16d53b1989_278x126.png) 正确: ~~~ var a; // 定义 a = 100; //赋值 console.log(a); //输出100 ~~~ 有经验的程序员,会把定义和赋值写在一起: ~~~ var a = 100; //定义,并且赋值100 console.log(a); //输出100 ~~~ 注意: 在JavaScript中,永远都是用var来定义变量。 赋值用等于号,表示等号右边的值,赋给左边的变量。 在JS中区分大小写,如变量mychar与myChar是不一样的,表示是两个变量。 变量虽然也可以不声明,直接使用,但不规范,需要先声明,后使用。 ### JavaScript变量作用域 一个变量的作用域就是该变量定义后在程序中的作用范围。JavaScript 变量有两个变量作用域。 **全局变量:** 1. 在最外层声明的变量。 2. 在函数体内部,但是没有声明var 的变量也是全局变量 全局变量具有全部整体范围的作用域,这意味着它可以在 JavaScript 代码任何地方定义。 **局部变量:** 在函数体内部的 声明的变量 局部变量仅在定义它的函数体内可以访问到。函数参数对于函数来说就是局部变量 小知识点: 隐式的全局变量 1 在函数体内部,但是没有声明var 的变量也是全局变量。 ~~~ var a = 1 function func() { a = b = 2 } func() alert(a) alert(b) ~~~ ### 区分变量和字符串 ~~~ var a = 100; console.log("哥们,字母表里面第一个字母是啥?"); console.log("a"); //输出字母a ~~~ ![](https://box.kancloud.cn/e67f425e6f8719d02246906f47fac7c7_244x124.png) ~~~ <script type="text/javascript"> alert(123);//123是数字,所以不需要加引号 alert("重庆发展很快哟!");//重庆发展很快哟! 是字符串,必须加上引号 alert(1.22); //正确 alert(一二三);//错误 alert("123"); alert("重庆发展很快哟!"); </script> ~~~ 这个a在引号里面,所以就是一个字符串“a”了,而不是一个变量。换句话说,一个变量如果想输出保存的内容,那么就不能加引号。