JavaScript学习笔记

变量的概念

请看黑板:

40.1

黑板上的内容代表今天的排骨价格。
依据这个场景来深入探讨编程中的重要概念=》变量。

我们可以挖掘出的要素:

  • 黑板 ---------》容器(内存中变量的存储地址)
  • 当天价格 -----》 变量名
  • 40.1 -------》 变量值
  • 数值 -------》变量类型
var age = 22;
var price = 40.1;

当声明上述两个变量后,发生了什么?

file

  • 如上, 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.