了解变量的概念、定义方式、命名规范
掌握变量提升、对作用域的理解
掌握6种常用数据类型的使用
掌握算术运算符、关系运算符、逻辑运算符
掌握null、undefined的区别
掌握++i和i++的区别
掌握==和===的区别
掌握&&和||的区别
掌握三目运算符
掌握数据类型转换
语法:var 变量名 = 变量值;
不能以数字开头
不能是关键字
见名知意
#### 2.3变量提升&作用域
var a = 10;
==> var a;
==> a = 10
作用域:
全局作用域
局部作用域
块作用域
undefined
null
number
string
boolean
symbol
var没有定义值的时候输出变量就是undefined
当定义变量的值为undefined的时候,该变量的数据类型就是undefined类型
null值表示一个空值、一个空对象
number的值可以是负整数、0、正整数也可以是小数
string的值可以是"" 也可以是‘‘
boolean的值只有true和false
常用做开关使用*
没多少场景
#### 4.1算术运算符
+ - * /
++i和i++的区别*
++i 先给i自加1,再计算表达式的值。
i++先计算表达式的值,再给i自加1
> < >= <= == === != !==
== 和 ===的区别*
`===` 严格相等,会比较两个值的类型和值
`==` 抽象相等,比较时,会先进行类型转换、然后再比较值
&&
结论:
只要都是true,结果就为true
只要有一个为false,结果就为false
||
结论:
只要都是false,结果就为false
只要有一个为true,结果就为true
max = 10 > 8 ? 'true' : 'false';
alert(max)
非0即true,0即false"true"&"false"空串即false,非空串true//方法 string -> number parseInt(字符串)
var str = 'abc';
*console*.log(parseInt(str)); //NaN 非数字字符所以结果是NaN
*console*.log(parseInt('123'));
*console*.log(parseInt('123.a6'));
// 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对小数运算会先转成二进制,运算完毕再转回十进制,过程中会有丢失,不过不是所有的小数间运算会有这个问题。
原文:https://www.cnblogs.com/Jasonpub/p/12390087.html