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;   // 两个不同的变量

有一张 保留字列表,这张表中的保留字无法用作变量命名,因为它们被用于编程语言本身了。

比如,letclassreturnfunction 都被保留了

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声明的变量在作用域中不会被提升

变量应当以一种容易理解变量内部是什么的方式进行命名

posted @ 2021-08-09 17:31  天空之城906  阅读(41)  评论(0)    收藏  举报