javascript变量
1、变量的声明
let message; // 没有初始化的时候,默认是undefined
message = "Hello"; // 通过赋值运算符=为变量添加一些数据
message = 100; // 合法 但不推荐,
变量的初始化 不会为变量标识某个类型,只是简单的赋值而已,不仅可以改变保存的值,也可以改变值的类型
2、多个变量同时声明
let user = "John",age = 22,found = true;
let user = "John", age = 22, message = "Hello";
因为 ECMAScript 是松散类型的,所以使用不同数据类型初始化的变量可以用一条语句来声明
3、变量内容表更
let message; message = "Hello"; message = "World"; console.log(message); // 输入World
4、变量内容拷贝
let hello = "Hello World"; let message; message = hello; console.log(hello); // 输出Hello World console.log(message); // 输出Hello World
5、变量命名
变量名称必须仅包含字母、数字,符号$和_
首字符必须非数字
建议:变量名含有多个单词,采用驼峰式命名(camelCase)
let userName;
let $ = 1; // 使用 "$" 声明一个变量
let _ = 2; // 现在用 "_" 声明一个变量
alert($ + _); // 3
let test123;
以上命名都是合法有效的
不合法的命名如下:
let 1a; // 不能以数字开头 let my-name; // '-'不允许用在变量命名中
变量名区分大小写
let apple; let Apple; // 两个不同的变量
有一张 保留字列表,这张表中的保留字无法用作变量命名,因为它们被用于编程语言本身了。
比如,let、class、return、function 都被保留了
let let = 5; // 不能用 "let" 来命名一个变量,错误! let return = 5; // 同样,不能使用 "return",错误!
6、常量声明
声明一个常数(不变)变量,可以使用const而非let,且声明后不能被修改
const myBirthday = "2020.12.12"; myBirthday = "2018.09.12"; // Uncaught TypeError: Assignment to constant variable. alert(myBirthday);
7、变量的作用域
使用var在一个函数内部定义一个变量,意味着在函数调用结束后,该变量销毁。
如果省略掉var,此变量就是全局变量
function test(){ var message = "hello"; alert(message); } console.log(message); // 出错
8、var变量声明提升
function test(){ alert(message); // undefined var message = "hello"; }
以上代码等同于下面的代码
function test(){ var message; alert(message); // undefined message = "hello"; }
变量提升 会把函数内所有的变量声明拉到函数作用域顶部
let 跟 var 的作用差不多,但有着非常重要的区别。最明显的区别是,let 声明的范围是块作用域,而 var 声明的范围是函数作用域
let声明的变量在作用域中不会被提升
变量应当以一种容易理解变量内部是什么的方式进行命名

浙公网安备 33010602011771号