变量的概念
请看黑板:
40.1
黑板上的内容代表今天的排骨价格。
依据这个场景来深入探讨编程中的重要概念=》变量。
我们可以挖掘出的要素:
- 黑板 ---------》容器(内存中变量的存储地址)
- 当天价格 -----》 变量名
- 40.1 -------》 变量值
- 数值 -------》变量类型
var age = 22;
var price = 40.1;
当声明上述两个变量后,发生了什么?

- 如上, js解释引擎先创建2个变量名:Age、price.
- 再为此2个变量申请各自的空间,并获得地址然后age,price的地址属性的值就是内存中的地址。
- 也就是说,变量名,并不直接体现变量的值,只能体现该变量在内存中的位置.
变量传递赋值
var 变量名 = 初值;
//连续定义多个变量,用逗号隔开,只需要在最开头写var即可。
var a= 3;
// 建立变量,申请空间,变量指向该空间,并把3存储到相应内存空间.
Var b =a,
// 建立变量b,申请空间,变量指向该空间,并把a变量对应的内存中的值读出来,存储到b的相应空间
变量的赋值,b=a为例,可以把a的值读出来,存储储到b的相应空间.这样的话,a,b是相互独立的,修改时不影响对方。
这种情况叫“传递赋值”
变量引用赋值
var a = {age: 22,height: 175};
var b = a;
console.log(b.age); // 22
b.age=23;
console.log(a.age); //23
// 这就是JS的引用赋值
在JavaScript里,数组,对象,函数,这三者默认即是引用赋值的.
变量命名规范
变量名的命名规则:
a.由数字(0-9)字母(a-z,A-Z),下划线(_),美元符号($),Unicode字符(中文)组成 ,数字不能开头。
b.不同于系统的关键字重名(看颜色),
c.见名只意
d.驼峰命名法,帕斯卡命名法,匈牙利命名法
//驼峰法
var appleCount = 10;
//帕斯卡
var AppleCount = 20;
//匈牙利命名法
var iAppleCount = 30;
// 获取变量的类型 typeof
注意:如果使用typeof测试null类型,显示object
变量类型
// 数值类型
var salary = 99.21; // 这是一个数值型,而且是浮点型
var number = 5; // 这是数值型,而且是整型
var news = '阿里巴巴下市'; // 字符串类型,用单引号包起来的
var cont = "码云说,我不批准不准下市"; // 字符串类型,用双引号包起来的
var love = true; //布尔值,只有两种,true和false
var angry = false;
var shenma = null; // 这是变量是一个空壳,在内存里有地址,如信用卡没激活
var und = undefined; // undefined 和 null 不一样,undefined在内存里就没有。就像没有信用卡。
typeof nudefined; // "undefined"
typeof(typeof undefined) // "string"
// 变量也允许先申明,不赋值;
var a,b;
类型转换
显示转换
Number('12'); // 12
String(true); // 'true'
// 非0即为真
Boolean(-1); // true
隐式转换
当+号运算符两端,一个是数字,一个是字符串时,做的是字符串的拼接
var str = 10 + '123'; // '10123'
当-,*,/,%运算时,两端一个是数字,一个是字符串时,做的是算术运算。
var n = 12 - '3'; // 9
当除数为0时,执行除法得到的结果为无限大,执行取余得到的结果为NaN.