01.变量、数据类型、运算符

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'));

*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对小数运算会先转成二进制,运算完毕再转回十进制,过程中会有丢失,不过不是所有的小数间运算会有这个问题。
  • 解决方法有两种:
    1. 先对每个小数乘以 10再除以10计算
    2. 使用toFixed(2)保留两位小数

猜你喜欢

转载自www.cnblogs.com/Jasonpub/p/12390087.html