变量的类型
为什么变量要区分类型?
因为不同的数据,占用的内存大小是不一样的比特位 01010101010101
8个比特 byte === 一个字节
1024字节 === 1kb
1024kb === 1mb
1024mb === 1gb
1024gb === 1tb
传统的编程语言,在定义变量的时候,需要我们先确定要保存什么数据
也就是确定变量的类型JS里定义变量,不区分类型
但是,变量如果保存了数据,它的类型会自动根据数据内容确定
程序如何存储数据?(变量)
- 程序中数据的存储,都是在内存里的
- 每当我们需要保存一份数据,都需要提前创建一个变量变量是什么?变量就是内存里一块被命名的内存空间
变量命名规则
- 基本原则: 见名知意
- 浏览器的命名规则:不能以数字开头,只能使用数字、字母、_、$符号变量不能重名不能和关键字冲突
进制的算法
//23715 十进制的算法
5*10^0 + 1*10^1 + 7*10^2 + 3*10^3 + 2*10^4
//0101 二进制的算法
1*2^0 + 0*2^1 + 1*2^2 + 0*2^3
//FF 十六进制的算法
15*16^0 + 15*16^1
变量数据类型
共6中数据类型
- Number
- String
- Boolean
- Undefined
- Object(对象类型)
- Function(函数类型)
变量数字运算符
如果所有的内容是纯数字,可以做减法、乘法、出发(不包含加法)
所有字符串都不能做加法运算,字符串遇见+号,表示拼接的意思
变量数据类型转换
Number(),强制转为数字类型,前提是变量是纯数字类型 //如:Number(“55”)
parseInt() ,转为整型,前提是前面有数字可提取 //如:ParseInt(“5a”)
parseFloat(),转为浮点型,前提是前面有数字可提取
何时出现NAN
- NaN 全称叫做 Not A Number (不是一个数字)当出现了无法计算结果的时候,就会出现 NaN,NaN 是number类型
- NaN == NaN 结果是false ,不相等NaN表示一个不确定的内容,所以两个NaN不能比较,比较也没有意义。
进制转换
-
从十进制转为其他进制
num.toString(16) //转为16进制
-
从其他进制转为十进制
parseInt(“100111”,“2”) // 将这个二进制转为10进制
变量的关系运算符
>、<、>= 、<= 、== 、=== 、!= 、!==
===比较变量时,类型也必须相同
==比较变量时,会做自动转换类型(也就是忽略类型)
变量的逻辑运算符
&&(与)、|| (或)、!(非)
变量的赋值运算符
- =
- +=
- -=
- *=
变量的位运算符
位运算,指的就是将变量以二进制位进行计算的一种方式
& 按位与
| 按位或
^ 按位异或
<< 左移位
>>右移位
var a=3&5;// 0000 0011 ===》3
0000 0101 ===》5
0000 0001 ===》1
alert(a);//输出a为1,按位或运算同理
var d=2<<3;//0000 0010移位后变为0001 0000===》16
alert(d);//输出16,相当于乘上2的3次方
打印语句
document.write("Hello World"); //将Hello World在文档里打印出来
console.log(a);//将变量a输出到控制台
alert(a);//将变量a以警告窗的形式弹出来
自增自减
- 当++写在前面的时候,先对变量+1,再参与运算
- 当++写在后面的时候,先参加运算,再+1;
var a = 1;
a++;
console.log(a); //2
console.log(a++); //2
console.log(++a); //4