JavaScript 基础(2){数据类型、数据类型的转换、运算符、浏览器端函数、流程控制、循环}

一、数据类型

分为原始类型和引用类型

  原始类型分为数值型、字符串型、布尔型、未定义型、空

(1)数值型—— numbre

 整型

  •  1   2   3   4   5   6   7   8   9   10
  • 8进制
  • 1  2  3  ...  7   10  11  12
  • 16进制     a=10   f=15
  • 1   .....    9    a  ...  f   
  • 8进制以0开头的数字, 例如010
  • 16进制以0x开头的数字,例如0xf,不区分大小写
  • 浮点型
  •   3141.5e-1
  •   314.15
  •   31.415e+1
  •   3.1415e+2
  • (2)字符串型——string

    •           被引号包含的数据就是字符串型,不区分单双引号
      •           查看任意一个字符的,编码(Uincode)
        •           't'.charCodeAt()

3)布尔型——boolean

  •            只有两个值,分别是cruefalse ,代表真和假
  •            用于保存只有两个值的数据,一些运算符的结果也是布尔型的

4)未定义型

  •           只有一个值undefined
  •           声明了变量未赋值则为undefined,代表空值

5)空

  •           只有一个值 null 和引用类型数据一起使用

typeof 用于检测数据类型

数值型 / 字符串型/ 布尔型 /未定义型 /

'number' / 'string' /boolean' /undefaned' / 'object'

二、数据类型的转换

分为隐式转换和强制转换

  (1)隐式转换

    运算过程中自动产生的转换

    ①数字+字符串     数字会转换成字符串

   2+'3'   //'23'

    ②数值+布尔型    布尔型转为数字   true –>1     false->0

  2+true  //3

  2+false  //2

    ③字符串+布尔型 布尔型转为字符串

  '2'+true //'2true'

加号(+)的作用

数字之间的加法运算

字符串的拼接

  NaN Not a Numter , 不是一个数字,这个值是转数值失败的结果,NaN(非数值)和任何数值执行加减乘除(+-*/)结果还是NaN

  隐式转数值为数值自动的调用函数Number

(2)强制转换

  ①强制转换为数值

    Number();

var n1=Number('2');  //2

                   Number('2a'); //NaN

                Number(true);  //1

                  Number(false);//0

                    Number(undefined); //NaN

           Number(null);  //0

  ②强制转换为整型

    parseInt()

用于将字符串和小数强制转换为整型,其他类型转换结果为NaN

parseInt(3.94);  //3

parseInt('2.58');  //2

parseInt('6.18a');  //6

parseInt('a6.18');  //NaN

规律:将一个字符串转为整型的时候,如果是非数字返回NaN,否则返回开头的整数部分

③强制转换为浮点型

parseFloat()

将字符串转为浮点型

parseFloat('3a');   //3

parseFloat('3.14');  //3

parseFloat('a3.14');  //NaN

④将数值和布尔型强制转换为字符串(了解)

toString()

var num=2;

//将num保存的值转换为字符串

num.toString();  //2

三、运算符

表达式:由数据或者运算符连接的数据组成的格式称作表达式

运算符分为算术运算符、比较运算符、逻辑运算符、位运算符、赋值运算符、三木运算符

(1)算术运算符

+  -   *   /  %   ++   --    

%(取余)

++(自增) 让一个变量在原来的基础上加1

--(自减)  让一个变量在原来的基础上减1

自增

var b1=3;

//先把b1的值赋给b2,然后b1再自增

var b2=b1++;

console.log(b1,b2);

var b3=3;

//先让b3自增,然后再把结果赋值给b4

var b4=++b3;   //4 4

console.log(b3,b4);

(2)比较运算符

>   <   >=  <=   ==(等于)  !=   ===(全等于)  !==(不全等于)

== 等于: 比较值是否相同,可能会产生隐式转换

===(全等于)   先比较类型,再比较值,只有两个都相同才是true

3>'10' //false   字符串和数字比较,字符串会转为数字

'3'>'10' //true  字符串之间的比较,比较的是首个字符的Unicode(编码)

'3'->51   '1'->48

3>'10a' //false

3<'10a' //false

3=='10a' //false

NaN==NaN //false

NaN和任何值比较(> < >= <= == ===)结果都是false

3)逻辑运算符

and&&  逻辑与(并且),关联的两个条件都是true,结果是true,否则是false

or||    逻辑或(或者),关联的两个条件有一个true,结果是true,否则是false

     逻辑非(取反)

短路逻辑

&&:当第一个条件为false的时候,就不在执行第二个条件

||:当第一个条件为true,就不在执行第二个条件

短路逻辑主要是看第二个条件是否执行,无需关注结果是true还是false

(4)位运算符

  模拟计算机底层的运算,先把数字转成2进制再进行运算,运算完再把结果转成10进制

1   2   3   4   5   6   7

1  10  11  100  101  110  111  1000

& 按位于, 上下两位比较,两者都是1结果是1,否则为0

| 按位或, 上下两位比较,含有1结果是1,否则为0

^ 按位异或, 上下两位比较,不同是1,否则为0

>>按位右移,删除二进制下最后一位,每移动一位是原来的一半,如果是小数取整

<<按位左移,在末尾补0,每移动一位是原来的2倍

  7>>1  6>>2    6<<2

11 110     110

  11    1     11000

3&6     5&9   5|9  4|7    6^10

011     0101  0101  100    0110

110     1001  1001  111    1010

-----     ------  ------   ------   --------

110     0001  1101  111    1100

(5)赋值运算符

=  +=  -=  *=  /=  %=  ...

赋值    运算赋值:先执行运算,再执行赋值

练习:声明一个变量保存商品价格,让该商品的价格打九折,最后查看价格

(6)三目运算符

 一目运算符:由一个运算符连接的一个数据或者表达式  ++  --  !

 二目运算符:由一个运算符连接的两个数据或者表达式 除了上面三个其他全是二目运算符

 三目运算符:由两个运算符连接的三个数据或者表达式 

条件表达式 ? 表达式1 : 表达式2

如果条件表达式为true,执行表达式1

如果条件表达式为false,执行表达式2

四、浏览器端函数

alert() :弹出警示框

prompt()弹出提示框(输入),需要变量保存用户输入的值,类型字符串型,如果点击取消结果是null

  • 程序=数据+算法
  • 程序的执行方式:顺序执行、选择执行、循环执行

五、流程控制

  1. if语句    

if(条件表达式){

  语句块

}

以下情况隐式转换为布尔型结果是false;

 0  NaN undefines  null  '' (引号里面什么也不输入)

  1. if-eles语句

If(条件语句块){

  语句块1

}else{

  语句块2

}

(3)if-else嵌套

If(条件表达式1){

 语句块

}else if(条件表达式n){

语句块n

}else{

 语句块n+1   //以上所有条件都是false

}

(4)switch-case语句

是一种特殊的多项分支语句,只能进行全等于的比较

Switch(表达式){

  case 值1:  //如果表达式的值和case后的值比较相同

  语句块1

  break; //跳出switch-case语句,不再执行其他的比较

 case 值 n:

  语句块n

  Break;

 Default: // 表达式和每个case后的值比较都是false

  语句块n+1

}

六、循环:一遍又一遍执行相同或者相似的代码

  • 循环的两个要素
  •  循环条件:控制循环是否往后执行
  •  循环体:要重复执行的相同或者相似的代码while循环

1.while循环

  •  While(循环条件){

      循环体

    }

Break

  •  在循环体中使用

     用于跳出循环,结束循环的执行

2.do-while循环

  • Do{

     循环体

    }while(循环条件);

    3.for循环

    For(循环值;循环条件;增量){

      循环体

    }

    4.continue和break

    break  结束循环,不再执行任何循环中的代码

    continue  跳过后续循环体中的代码,还会继续执行下一次代码

    5.循环嵌套

    在一个循环体的内部又出现的其它的循环

     任意两个循环之间都可以相互嵌套

     *****

     *****

     *****

     *****

     *****

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值