ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

数据类型

2022-04-19 00:00:08  阅读:148  来源: 互联网

标签:case console log 数据类型 运算符 true 表达式


1.原始类型

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

查看数据类型方法:typeof 变量名
1.1数值型

分为整型和浮点型

整形:

十进制整数:1  2  3  4  5  6  7   8  9  10  ...  15  16
8进制整数,8进制是以0开头的数字,例如012: 1  2  3  4  5  6  7  10  11  12
16进制整数,16进制以0x开头的数字,例如0xf, a~f代表10~15,不区分大小写:1  2  3  4  5  6  7   8  9   a  ...   f   10

浮点型

 指数型浮点型:3141.5e-1,==314.15, 31.415e+1,==314.15,3.1415e+2 ==314.15
正常的小数:314.15
1.2字符串型

被引号包含的数据就是字符串型,不区分单双引号

查看任意一个字符的Unicode码
 '涛'.charCodeAt()    ----查询unicode码的方法
1.3布尔型

只有两个值,分别是true和false,代表真和假

通常用于保存只要两个状态的数据,例如:是否登录、是否为会员...

1.4未定义型

只有一个值undefined,表示一个空值,例如声明了变量未赋值

1.5空

只有一个值null,表示一个空值,类型是object(对象),常和引用类型的数据一起使用

typeof  数据    检测数据类型'number' / 'string' / 'boolean' / 'undefined' / 'object'

2.数据类型转换

分为隐式转换和强制转换

2.1隐式转换(运算过程中自动转换)

①数值+字符串 数值转换为字符串

  1+'2'  // '12'

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

  3+true    //4,  3+false    //3 

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

'5'+true  //'5true'

*加号(**+)的作用*执行数值之间的加法运算执行字符串之间的拼接

 练习:查看以下程序的输出结果

 var a=2, b=true, c='tedu';   

 console.log(a+b+c);// '3tedu'

 console.log(b+c+a);//'truetedu2'

 console.log(c+a+b);//'tedu2true'

除了加号两端有一个是字符串会隐式转换为字符串,其它的(+ - * /)都是隐式转换为数值; 所有隐式转换为数值会自动的调用函数Number。

将运算符俩端的数据转为数值型,如果转换失败,返回NaN(Not a Number),不是一个数字,任何和NaN执行加减乘除都会返回NaN。

2.2 强制转换

①强制转换为数值

  Number()

  Number('4')  //4

  Number(true) //1

  Number(false) //0

  Number('2a') //NaN   

  Number(undefined) //NaN

  Number(null)  //0

NaN : Not a Number,不是一个数字,在转换为数值的时候,没有成功的得到一个数值则返回NaN,NaN和任何值执行加减乘除,结果还是NaN

②强制转换为整型

  parseInt()
  通常用于将字符串或者小数转换为整型,其它的(布尔型、未定义型、空)或者转换的字符串开头是非数字,则返   回NaN

  parseInt(3.94)  //3

  parseInt('5.18')  //5

  parseInt('4.7a')  //4

  parseInt('b5.3')  //NaN

③强制转换为浮点型

  parseFloat()

  通常用于将字符串转换为浮点型,和parseInt()用法一致

  parseFloat('3.14a')  //3.14

  parseFloat('4b')  //4

  parseFloat('c5.2')  //NaN

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

  toString()

  var num=2;

  var str=num.toString(); //'2'

3.运算符

表达式:由数据本身或者由运算符连接的操作数据组成的形式

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

3.1算术运算符

+ - * / %(取余) ++ (自增) --(自减)

 % 取余

 ++ 自增,一个变量在原来基础之上加1   如:var m2=m1--;

 -- 自减,一个变量在原来基础之上减1

 a=b++  先把b赋给a,然后b再执行自增  

 a=++b  先让b执行自增,然后再自增的结果赋给a  
3.2 比较运算符

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

== 等于,只是比较值是否相同

=== 全等于,先比较类型,再比较值

3>'10'  //false  字符串转为数值

'3'>'10'  //true  比较的是首个字符的Unicode码

3>'10a'

3<'10a'

3=='10a'

NaN和任何值比较(包含NaN本身) >  <  >=  <=  ==  === 结果都是false
3.3逻辑运算符
  && 逻辑与(并且),关联的两个条件都是true结果是true,否则是false

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

  !  逻辑非(取反)

*短路逻辑*

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

  ||  当第一个条件为true的时候,不再执行第二个条件

  短路逻辑重点是看第二个条件(表达式)是否执行,无需关注整体结果是true还是false。
3.4位运算符(了解)
先把数据转为2进制然后进行运算,最后将结果转回成10进制

 1   2  3   4   5   6   7

 1  10  11  100  101  110  111

 &  按位与,上下两位都是1结果是1,否则是0

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

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

 >>  按位右移,删除末尾的位数

 <<  按位左移,在末尾补0

 10>>2     5<<1

 1010      101

  101     1010

  10     10100

 3&5    5&7    7|10    9^13

 011    101    0111   1001

 101    111    1010   1101

———  ———   ————  ———

 001    101    1111   0100

​      5      15     4
3.5赋值运算符

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

运算赋值

3.6三目运算符

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

二目运算符:由一个运算符连接的两个操作数据或者表达式

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

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

如果条件表达式为true,执行表达式1,否则条件表达式为false,执行表达式2

 

4.浏览器端的函数

alert() 弹出警示框(消息框)

prompt() 弹出提示框(输入框),需要使用变量来保存输入的值,类型是字符串型,如果输入的内容为空得到的是空字符(''),如果点击取消返回null

练习:弹出两次提示框,分别输入数字,最后计算两个数字相加的和,将结果以警示框形式弹出。

程序 = 数据 + 算法

程序的执行方式:顺序执行、选择执行、循环执行

5.流程控制

5.1 if语句

满30减20

if(条件表达式){ 语句块}

 

如果语句块中只有一行代码,则大括号可以省略

以下作为条件表达式隐式转换为false:0 NaN '' undefined null

5.2 if-else语句

if(条件表达式){ 语句块1}else{ 语句块2}

 

//判断一个人是否为成年人
var age=11;
if(age>=18){
  console.log('成年人');
}else{
  console.log('未成年人');
}
5.3 if-else嵌套

if(条件表达式1){ 语句块1}else if(条件表达式n){ 语句块n}else{ 语句块n+1 //以上所有的条件都是false}

 

var n;
if(n===1){
  console.log('非洲');
}else if(n===2){
  console.log('日本');
}else if(n===3){
  console.log('印度');
}else{
  console.log('八宝山');
}
5.4 switch-case语句

switch(表达式){ case 值1: //如果表达式和case后的值相同,则执行对应语句块 语句块1 break; //跳出switch-case语句 case 值n: 语句块n break; default: 语句块n+1 //以上表达式和每个case后的值比较都是false}

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

//练习:声明变量保存任意一个城市,打印出这个城市对应的特色美食
var city='成都';
switch(city){
 case '北京':    #相当于执行条件判断 执行 city===“北京”:
console.log('烤鸭');
   break;
 case '重庆':
//console.log('火锅');
   //break;
 case '成都':
console.log('火锅');
   break;
 case '乌鲁木齐':
console.log('羊肉串');
   break;
 default:
console.log('面条');
}

*对比if**-**else嵌套和**s**witch-case*

相同点:都是多项分支语句

不同点:if-else嵌套可以进行各种情况的判断,switch-case只能使用全等于的比较;switch-case执行效率更高。if-else嵌套适用范围更广泛

 

 

 

 

 

 

 

 

 

 

 

 

标签:case,console,log,数据类型,运算符,true,表达式
来源: https://www.cnblogs.com/zouzhibin/p/16163467.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有