发表于: 2020-03-01 15:38:36
1 1379
今天快速的学习了ES5的变量、数据类型、以及运算符的简单使用:
下面是我做的一个markdown笔记、做了部分的详细介绍以及总结。
1.学习目标
了解变量的概念、定义方式、命名规范
掌握变量提升、对作用域的理解
掌握6种常用数据类型的使用
掌握算术运算符、关系运算符、逻辑运算符
掌握null、undefined的区别
掌握++i和i++的区别
掌握==和===的区别
掌握&&和||的区别
掌握三目运算符
掌握数据类型转换
2.变量
2.1变量的定义
语法:var 变量名 = 变量值;
2.2变量的命名规范
不能以数字开头
不能是关键字
见名知意
#### 2.3变量提升&作用域
var a = 10;
==> var a;
==> a = 10. 作用域:
全局作用域
局部作用域
块作用域
3.js数据类型
undefined
null
number
string
boolean
symbol
3.1undefined
var没有定义值的时候输出变量就是undefined
当定义变量的值为undefined的时候,该变量的数据类型就是undefined类型
3.2null
null值表示一个空值、一个空对象
3.3number
number的值可以是负整数、0、正整数也可以是小数
3.4string
string的值可以是"" 也可以是''
3.5boolean
boolean的值只有true和false
常用做开关使用
3.6symbol
没多少场景
4.运算符
#### 4.1算术运算符
+ - * /
4.2自增运算符&自减运算符
++i和i++的区别
++i 先给i自加1,再计算表达式的值。 i++先计算表达式的值,再给i自加1
4.3关系运算符**
> < >= <= == === != !==
== 和 ===的区别
`===` 严格相等,会比较两个值的类型和值 `==` 抽象相等,比较时,会先进行类型转换、然后再比较值
4.4逻辑运算符
&&
结论: 只要都是true,结果就为true 只要有一个为false,结果就为false
||
结论: 只要都是false,结果就为false 只要有一个为true,结果就为true
4.5三目运算符
max = 10 > 8 ? 'true' : 'false';
alert(max)
5.数据类型转换
- number <-> str
- 数值转字符串toString()
- 字符串转数值必须是数值字符'1024'
- number <-> boolean
- 数值转布尔值
非0即true,0即false
- 布尔值转数值都是NaN
- 数值转布尔值
- boolean <-> str
- 布尔值转字符串
"true"&"false"
- 字符串转布尔值
空串即false,非空串true
- 布尔值转字符串
//方法 string -> number parseInt(字符串)
var str = 'abc';
console.log(parseInt(str)); //NaN 非数字字符所以结果是NaN
console.log(parseInt('123')); //123
console.log(parseInt('123.a6'));//123
// number -> string
var num = 520;
var num_to_str = num.toString();
console.log(num_to_str, typeof num_to_str);
// boolean -> number
var flag = false;
var bool_to_number = parseInt(flag);
console.log(bool_to_number);//number -> boolean
if (0) {
console.log('true');
} else {
console.log('false');
}
//boolean -> string
var rest = flag.toString();
console.log(rest,typeof rest);
//string -> boolean
var empty_str = '';
var str_not_empty = 'abc';
result = str_not_empty ? 'true' : 'false';
console.log(result);
超市商品抹零案例:
//计算商品总金额
var money_all = 21.89 + 23.88 + 78.67 + 56.45 + 56.89;
money_all = money_all.toFixed(2);
console.log("总金额为:",money_all);
//对总金额进行抹零处理
money_real = parseInt(money_all);
console.log('实付金额为:', money_real);
在计算多位包含小数的数值类型(number)会出现小数位过多的情况
- 出现问题的原因:
JavaScript对小数运算会先转成二进制,运算完毕再转回十进制,过程中会有丢失,不过不是所有的小数间运算会有这个问题。
- 解决方法有两种:
- 先对每个小数乘以 100再除以100计算
- 使用toFixed(2)保留两位小数
评论