JS_BASIC day02

1.数据类型

MySQL:数值/日期时间/字符串

JS中分为原始类型和引用类型

(1)原始类型

分为数值型、字符串型、布尔型、未定义型undefined、null(全部小写)

数值型又分为整数和浮点数

a.整数型

分为八进制(以0开头->010),十进制,十六进制(以0X开头->0XF)

b.浮点型

使用小数点记录的数据,还可以使用指数记录的数据

(2)字符串类型

常用于表示一些文本字符数据,例如:姓名、邮箱、电话、家庭住址

特点:使用引号(单引号或双引号)把数据包含

查看汉字的Unicode编码

‘一’.charCodeAt()

查看汉字的Unicode编码的十六进制形式

‘一’.charCodeAt().toString(16); //ue00

查看十六进制的Unicode编码对应的汉字

console.log('\u4e00');

检验汉字范围 4e00~9fa5

(3)布尔型

在程序中表示真或者假的结果   取值 TRUE/FALSE

常用于表示是否的结果

例如:是否登录,是否注册....

(4)未定义型

只有一个值 undefined

当声明一个变量,未赋值,此时变量的值undefined

(5)null

在JS中,null表示空,常用于释放一个对象。

检测数据类型

typeof(参数) 参数表示要检测的数据

结果有 number(数值),string(字符串型),boolean(布尔型),undefined(未定义型)

2.数据类型的转换

(1)隐式转换

①数字+字符串:数字会被转成字符串

②数字+布尔值true/false:布尔值会被转成数字 true->1 false->0

③布尔值+布尔值:布尔值会被转成数字 true->1/false->0     true+false//1

④布尔值+字符串:布尔值会被转成字符串  true+‘abc’  //'trueabc'

例:

var num1=3,num2='st',num3=true;

console.log(num1+num2+num3);  //'3sttrue'

console.log(num2+num3+num1);  //'sttrue3'

console.log(num3+num2+num1);  //'truest3'

console.log(num1+num3+num2);  //'4st'

(2)强制转换

①强制转换成整型

parseInt()

parseInt('23.55t');  //23

从第一位开始找数字,遇到非数字或者小数点,结束,如果第一位是非数字,返回NaN

NaN  ->  not a number

②强制转换成浮点型

parseFloat()

parseFloat('23.55t') //23.55

从第一位开始找数字,遇到数字继续往后找,遇到小数点继续往后找,直到遇到非数字就会终止。如果第一位是非数字返回NaN

③强制转换成数值型

Number()

Number('23.55t') //NaN

Number('23.55')  //23.55

如果被转换的值中有非数字,则结果为NaN

④转换成字符串型

toString()

20.toString()  //'20'

toString可以将数值型和布尔型的值转换为字符串型。

 

3.两个运行在客户端的函数

alert()   弹出警示窗口

prompt()   弹出提示窗口 

注意:prompt返回的结果是字符串类型

练习:弹出两次提示窗口,分别数字,最后打印出两数字相加的结果

var num1 = prompt('please input a number');

var num2 = prompt('please input a number');

var res = Number(num1)+Number(num2);

console.log(res);

 

4.运算符和表达式

var a = 1;

由运算符连接的操作的数据,这种形式就称为表达式。

(1)算术运算符

+ - * /  加减乘除 %   ++  --

%  取余

++ 自增,在原来的基础上加一

-- 自减,在原来的基础上减一

console.log(num++);  //先打印num的值,然后再执行加一

console.log(++num);  //先执行+1.再打印num值

练习:下面程序的结果是?

var a = 1;

console.log(a++ + ++a);     //4

console.log(a++ + ++a + a++);   //7

(2)比较(关系)运算符

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

产生的结果是一个布尔型的值(true/false)

等于(==):比较值是否相同

全等于(===):比较值和类型是否相同,两个都满足结果是true

 

‘3’>10    //false

比较运算符的两端,只要有一个是数值型,另一个会隐式转换为数值型

‘3’>'10'   //true

比较运算符的两端,都是字符串,比较的是Unicode码值

 

练习:比较两个中文大小

console.log('张三丰'>'张无忌');   //false

如果第一个字符相同,则继续比较第二个字符

 

'3m'>10  字符串3m会隐式转换为数值型,使用的是Number,结果NaN;NaN和任何的值比较结果都是false,即使和自身比较也是false。

(3)逻辑运算符

&& 并且  || 或者  !非  

&& 两个条件都满足结果是true

||   两个条件至少满足其一结果是true

!  反向,逆向;非真为假,非假为真

 

逻辑中断(短路逻辑)

&& 如果第一个条件为false,整个的结果就是false,第二个条件也没有继续执行的必要了

||   如果第一个条件为true,整个的结果就是true,第二个条件也没有继续执行的必要了

(4)位运算符(了解)

1  10  11  100  101  110  111  1000

在执行位运算的时候十进制的值会转成二进制

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

按位或(|) 上下两位只要有一个1,结果就是1,否则是0

按位异或(^) 上下两位相同为0,不同为1

按位右移(>>)删除最后的几位  例如3>>1   结果1 数字变小

按位左移(<<)在末尾添加0,例如3<<1 结果6 数字变大

练习: 10>>2  结果2

        5^8    结果1101  =13

(5)赋值运算符

=  +=(在原来基础之上加) -=  *=  /=  %=

 

练习:声明一个变量 var year=2014;

判断年份是否为闰年? 四年一闰(能被4整除),百年不闰(能被100整除不是),400年再闰

var year=2014;

console.log(year%4==0&&year%100!=0||year%400==0);

(6)三目(条件)运算符

一目运算符就是只有一个操作数或者表达式

a++  a--  !false

二目运算符就是含有两个操作数或者表达式

+  -  *  /  >  >=  <  <=  ==  !=  ===  !==  &&  ||

 

三目运算符是含有三个操作数或者表达式

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

如果条件表达式结果是true,执行表达式1,否则执行表达式2

 

猜你喜欢

转载自blog.csdn.net/zbw970802/article/details/81513960