Javascript是一种弱类型语言,JavaScript的变量类型由它的值来决定。与代数一样,JavaScript 变量可用于存放值(比如 x=5)和表达式(比如 z=x+y)。
定义变量的目的
在内存中分配一块存储空间给变量,方便以后存储数据。
怎么定义变量?
定义变量(声明变量),任何变量在使用之前,必须先进行定义。如果定义了多个变量,就会为这多个变量分别分配不同的存储空间。
在javascript中可以使用关键字:const,var,let来定义变量,语法:关键字 变量名称;
例:var name;
var name, age, sex;
1、使用var定义变量
var定义的变量可以修改,如果不初始化会输出undefined,不会报错。//未定义情况下
console.log(a); //打印undefined
//初始化
var a = "aaa";
console.log(a); //打印 aaa
//修改变量
var a = "bbb";
console.log(a); //打印bbb
//循环,检测块级作用域
for(i = 0; i < 5; i++) {
console.log(i); //依次打印0,1,2,3,4
setTimeout(function() {
//定义函数内部变量
console.log(i);
var d = "locald";
}, 1000); //依次打印0,1,2,3,4
}
//访问内部变量//设置定时器,因为要一秒后d才会被定义
setTimeout(function() {
console.log(d)
}, 1001); //报错,未被定义
2、使用const定义变量
const定义的变量不可以修改,而且必须初始化,const定义的是一个恒定的常量//未定义情况下
console.log(a); //报错。没有定义,所以需要先定义
//初始化
const a = "aaa";
console.log(a); //打印 aaa
//修改变量
const a = "bbb";
console.log(a); //报错,a早已赋值,无法修改
//循环,检测块级作用域
for(i = 0; i < 5; i++) {
console.log(i); //依次打印0,1,2,3,4
setTimeout(function() {
//定义函数内部变量
console.log(i);
const d = "locald";
}, 1000); //依次打印0,1,2,3,4
}
//访问内部变量//设置定时器,因为要一秒后d才会被定义
setTimeout(function() {
console.log(d)
}, 1001); //报错,未被定义
3、使用let定义变量
let是块级作用域,函数内部使用let定义后,对函数外部无影响。//未定义情况下
console.log(a); //报错,需要先定义
//初始化
let a = "aaa";
console.log(a); //打印aaa
//修改变量
let a = "bbb";
console.log(a); //打印a已经被声明了
//循环,检测块级作用域
for(i = 0; i < 5; i++) {
console.log(i); //依次打印0,1,2,3,4
setTimeout(function() {
//定义函数内部变量
console.log(i);
let d = "locald";
}, 1000); //依次打印0,1,2,3,4
}
//访问内部变量//设置定时器,因为要一秒后d才会被定义
setTimeout(function() {
console.log(d)
}, 1001); //报错,未被定义
注意一点,注意擦看for循环打印出来的,这与var有很大的区别
这里就突出了块级作用域的好处
如何使用变量?
使用变量就是往变量里面放入内容或者取出变量中存储的内容
往变量中存储内容var name;
name = "JiangNanMax";
注意:= 为赋值符号,不是我们理解的数学中的“等号”,它是JavaScript语言中的赋值运算符,作用是将右边的常量”JiangNanMax”赋值给左边的变量name
赋值的时候 = 号的左侧必须是变量
= 左右两边各加一个空格
如何进行变量初始化?
变量第一次赋值,可以称为“初始化”
先定义,后初始化var name;
name = "JiangNanMax";
定义的同时尽心初始化var name = "JiangNanMax";
其他表现形式// 部分初始化
var num1, num2, num3 = 100;
//完全初始化
var num1 = num2 = num3 = 100;
如果定义后没有初始化var num;
console.log(num); // undefined