Web前端之JS概述、函数和数组(2)——数据转换和运算符

一、复习

1.复杂查询
2.聚合查询/分组查询
COUNT(*)/SUM()/AVG()/MAX()/MIN()
GROUP BY
YEAR()/MONTH()
3.子查询
多个SQL语句,一个SQL语句的结果作为另一个SQL语句的条件
4.多表查询
SELECT ename,dname FROM emp,dept WHERE deptId=did;
内连接 表1 INNER JOIN 表2 ON…
左外连接 表1 LEFT OUTER JOIN 表2 ON…
右外连接 表1 RIGHT OUTER JOIN 表2 ON…
全连接 UNION/UNION ALL
5. JS
var x; //undefined
x=1;
var x,y,z=3;
const pi=3.14;
6.学习一门编程语言的基本步骤
(1)了解背景知识:历史、现状、特点、应用场景
(2)搭建开发环境:编写hello world
(3)变量和常量
(4)数据类型
(5)运算符
(6)逻辑结构
(7)通用小程序
(8)函数和对象
(9)第三方库、框架
(10)实用的项目

二、JS数据类型和运算符

1.数据类型
分为原始类型和引用类型
原始类型分为数值型、字符串型、布尔型、未定义型(undefined)、null
(1)数值型
分为整型浮点型
整型在内存占4个字节,浮点型占8个字节
整型分为8进制(0开头)、10进制、16进制(0x开头)
浮点型分为指数型和普通
2.147e9

(2)字符串类型
数据被引号所包含就是字符串类型,不区分单双引号。
查看某一个字符的Unicode编码

 't'.charCodeAt()

(3)布尔型
在程序中表示真或者假
true/false
常用于一些是否的结果

  isVip、 isOnsale、isLogin

(4)未定义型
声明了一个变量,未赋值结果是undefined

(5)空(null)
用于引用数据类型

var person=null;
console.log(typeof(person));   //输出object

检测数据类型

 typeof()   
   number/string/boolean/undefined/object

2.数据类型转换
(1)隐式转换
①数字+字符串:数字转成字符串 number -> string

1+'a'  // '1a'  

②数字+布尔型:布尔型转成数字 true ->1 false -> 0 bool->number

   1+true  //2
   1+false  //1

③字符串+布尔型:布尔型转成字符串 bool -> string

 'a'+true  // 'atrue'

null的加法

 1+null    //1    null->0
 true+null //1     true->1  null->0
 'a'+null  //'anull'    null->'null'

undefined的加法

 1+undefined    //NAN ->  Not a  Number
 true+undefined   //NAN
 'a'+undefined    //aundefined

练习

 var num1=3,num2=true,num3='hello';
 console.log(num1+num2+num3); //'4hello'
 console.log(num2+num3+num1);//'truehello3'
 console.log(num3+num1+num2);//'hello3true'

- * / 执行运算
尝试将符号两端的数据转成数值型(自动调用Number转换),如果无法转换,返回NaN(Not a Number)
总结:加号的作用
①执行加法运算;②执行字符串的拼接。

(2)强制转换
①将数据转成数值型

 Number( ) 

将任意的数据转换成数值型,如果被转换的字符串中含有非数字,则返回NaN;布尔型会转成数值型。

②将数据转换成整型

 parseInt( )       // 强制转换——向下取整
 parseInt('1.5')   // 1 

查看数据的开始是否为数字,遇到非数字则返回前边的数字。
如果开头是非数字,则返回 NaN
练习:将以下数据转成整型 ‘3.5’, ’7a’, ’a2’

console.log(parseInt('3.5'));     //3 
console.log(parseInt('7a'));      //7   遇到a是非数字停止
console.log(parseInt('a2'));      //NaN

③将数据转成浮点型

 parseFloat()
 练习:'1.5a'  '7.1a'  'a2.3'
 返回 1.5 、 7.1   、 NaN  //同上遇到非数字停止

④将数据转换成字符串

 toString()
 var pi=3.14;
 pi.toString()

3.运算符和表达式
由运算符连接的操作数据,所组成的形式称为表达式
(1)算术运算符

  +  -  *  /  %  ++  --
  %   取余
  ++  自增,在原来的基础之上加1
  --   自减,在原来的基础之上减1
  console.log(a++)  先打印a的值,然后再自增
  console.log(++a)  先自增,然后再打印a的值

练习1:

var a=3;
console.log(a++  +  ++a);
a++先获取a的值(3),执行自增;
++a先让a执行自增(5),然后再获取a

练习2:

var b=5;
console.log(--b + b--);
--b 先让b执行自减(4),获取b的值(4)
b-- 先获取b的值(4), 然后执行自减

(2)比较运算符

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

返回的结果是布尔型的值
== 只是比较两个数据的值是否相同
=== 不仅比较数据的值,还比较两个数据的类型是否相同

1° 数字和字符串比较
3>'10' //flase
数字和字符串比较,字符串转成数值型,自动调用Number转换成数字,如果字符串出现非数字折返回NaN。

3>'10a'  //false
3<'10a'  //false
3=='10a'//false

NaN和任何的数字比较(> < >= <= == ===)返回false;

NaN==NaN   //返回false
NaN!=NaN   //true
3>true   //true      Number(true)->1

2°字符串和字符串比较

 '3'>'10' //true

两个字符串比较,比较的是Unicode码 首先比较首个字符的Unicode编0码

3->51   1->49

(3)逻辑运算符
|| 或者 && 并且 非 !
|| 关联的两个条件只需要满足其一,结果就是true,否则false
&& 关联的两个条件都满足,结果是true,否则false
! 取反
逻辑短路
|| 当第一个条件为true的时候,就不需要执行第二个条件
&& 当第一个条件为false的时候,就不需要执行第二个条件
练习:下边的代码是否会报错

 var a=3;
 a>5  &&  console.log(ename);                #不报错
 a<1  ||  console.log(ename);                #报错

(4)位运算符
将数据转成二进制然后执行运算

  1  10  11  100  101  110  111  1000  1001...10000
     2       4                   8             16
  101101=100000+1000+100+1
            32 + 8 +  4 +1
   56 =    32  +   16  +  8
        100000 + 10000 + 1000  = 111000

按位与(&) 上下两位都是1,结果是1,否则是0
按位或(|) 上下两位含有1,结果是1,否则是0
按位异或(^) 上下两位相同是0,不同是1
按位右移(>>) 删除二进制的最后n位,大概变小到原来一半
按位左移(<<) 在二进制的最后添加0,变大到原来一倍

 练习: 5&9=1    8|10=10    6^12=10
        0101     1000       0110
        1001     1010       1100
      ————————————————————————————
        0001     1010       1010

(5)赋值运算符

=   +=  -=  *=   /=   %=

在原来的基础之上进行加减乘除取余

  x+=3;

课后任务:
(1)复习今天内容,整理思维导图
(2)练习:
声明一个变量保存年份,如果是闰年,打印“是闰年”(逻辑短路)
闰年标准:4年一个闰年(能被4整除),并且不能100整除;或者能被400整除

 var year=2020;
((year%4==0 && year%100!=0)||year%400==0)&&console.log('是闰年' );

(3)预习逻辑结构(if if-else if-else 嵌套)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值