练习
使用变量保存圆的半径, 常量保存圆周率, 计算圆的周长和面积
声明多组变量保存商品的单价和数量, 计算商品的总价
复习
-
开发环境 JS 引擎(JS解释器)
服务器端 NodeJs
浏览器 -
变量
var $a_1 = 2,
b = 5; -
常量
const PI = 3.14;
数据类型
//检测数据类型 typeof
数据分为两种类型
-
原始类型
1.1 数值型(Number)
整型 在内存中占用 4个字节
八进制特点 以 0 开头哦
十六进制 0X 开头 a ~ f 代表 10~15 不区分大小写
0XFF -> 255浮点型 占 8 个字节
分为定点小数和指数型小数
1.2 字符串型(String)
- 特点:数据被引号所包含就是字符串, 不区分单双引号
查看任意一个字符的 Unicode 码
"然".charCodeAt(); //28982
1.4 布尔型(Boolean)
true | false
在程序中表示 真 或者 假
用于一些 比较的结果, 还可以使用是否的情况
1.5 未定义型(Undefined)
未定义型就只有一个值 undefined
在声明了变量未赋值就是 undefined
1.6 空值(Null)
只有一个值是 null 将来会和引用类型一起使用
1.7 引用类型
Object
-
数据类型转换
2.1 隐式类型转换
在运算过程中, 会自动发生转换2.1.1 数字+字符串
数字被转为字符串2.1.2 数字+布尔值
布尔型转为数值
true -> 1
false -> 02.1.3 布尔型+字符串
布尔转字符串
“5” + true = “5true”JS 中加号(+)的作用
执行加法云算
执行字符串间的拼接
减法、乘法、除法隐式转换
将运算符两端的数据转为数值型, 如果转换失败, 返回NaN(Not a Number) 不是一个数字, 任何数值 与 NaN 做任何的算数运算 都会 为NaN; 自动的调用了 Number 转换成了数值型
练习: 查看以下的运行结果
var num1 = 1, num2 = true, num3 = "tedu";
console.log(num1 + num2 + num3);
console.log(num2 + num3 + num1);
console.log(num3 + num1 + num2);
强制转换
3.1 转为数值型
Number();
特殊的转换值
方法 | 结果 |
---|---|
Number(“2”) | 2 |
Number(“2a”) | NaN |
Number(undefined) | NaN |
Number(null) | 0 |
3.2 强制转换为整型
parseInt();
常用于将字符串或数字转为整型, 其他的数据返回 NaN, 如果要转为的字符串
开头为 非数字, 则返回 NaN
3.3 强制转换浮点型
和parseFloat的用法基本一致, 只是转换为浮点型数据
“2.5px” “m2.5”
3.4 将数值型和布尔型转换位 字符串型
toString();
var num = 10;
num.toString(); // “10”
运算符
表达式:由运算符连接的操作数据, 所组成的形式
运算符分为: 算术运算符 、 比较运算符 、 逻辑运算符 、 位运算符 、 赋值运算符 、 三目运算符
4.1 算术运算符
+ - * / % ++ –
% 取余
++ 自增, 在原来的基础上加一
– 自减, 在原来的基础上减一
console.log(a++); 先打印 a 的值, 然后执行自增
console.log(++a); 先自增, 然后在打印 a 的值
4.2 比较运算符
> < >= <= == != ===(全等) !==(不全等)
返回一个布尔型的值
== 比较两个值是否相等
=== 不仅比较值, 还会比较类型
- 如果数据类型不同和也会发生数据类型的转换
3 > "10" 字符串转为数值 "10" -> 10
3 > "10a" // false
3 < "10a" // false
3 == "10a"; // false
NaN == NaN; // false
NaN 与 任何值做比较, 包括自身 都返回 false
4.3 逻辑运算符
&& 并且 关联的两个条件都为 true, 否则为 false
|| 或者 关联的两个条件满足起一 true, 否则为 false
! 非 取反向 !true -> false !false -> true
逻辑短路
&& 当第一个条件为 false 时, 就不需要再执行第二个条件
|| 当第一个条件为 true 时, 就不需要执行第二个条件
注意事项: 逻辑短路无需关注整个逻辑运算的结果, 重点是否执行第二个条件
练习: 以下程序会不会报错
var num = 3;
num > 5 && console.log(a);
num > 1 || console.log(a);
练习: 声明变量保存年龄, 如果满 18 岁, 打印 "成年人"
4.4 位运算符(了解)
在执行运算时计算机会把数据转为 二进制 进行计算
1 10 11 100 101 110 111 1000 1001 1010
100101 -> 37
1010110 = 64 + 16 + 4 + 2 = 86
25 -> 11001
128 64 32 16 8 4 2 1
0 0 0 1 1 0 0 1
按位与(&)
上下两位都是 1 为 1 否则为 0
128 64 32 16 8 4 2 1
0 0 0 0 1 0 0 1
————————————————————
0 0 0 0 1 1 0 1
————————————————————
0 0 0 0 1 0 0 1
————————————————————
9
按位或:
上下两位含有 1, 结果是 1, 否则 是 0
5|7
10|19
128 64 32 16 8 4 2 1
0 0 0 0 0 1 0 1
————————————————————
0 0 0 0 0 1 1 1
————————————————————
0 0 0 0 0 1 1 1
————————————————————
7
按位异或(^)
上下两位不同为 1, 相同 0
5^7
10^19
按位右移(>>)删除二进制的最后一位
按位左移(<<)
课后任务
- 整理思维导图
- 练习:
声明变量保存一个年份, 判断这个年份是否为闰年, 结合逻辑短路, 如果是闰年, 打印闰年
// 判单标准: 4年一润, 100 不润, 400 再润